開発中の機能
コード管理
設定ファイル

設定ファイル

コード管理では、TypeScriptで設定を記述します。SDK(@basemachina/sdk/oac)が提供する関数を使うことで、型安全に設定を定義できます。

現在のコード管理では、gRPCアクションとJavaScriptアクションのみを設定ファイルで管理できます。ビューの設定は管理対象外ですが、ビュー内のコードはコード取得設定との組み合わせで同じリポジトリに同居させられます。

ダウンロードされるファイル

始め方でダウンロードしたZIP(oac-project.zip)には、以下のファイルが含まれます。

my-project/
├── basemachina.config.ts          # プロジェクト全体の設定
├── package.json                   # @basemachina/sdk / @basemachina/cli の依存関係
├── tsconfig.json                  # TypeScriptの設定
├── type.d.ts                      # JavaScriptアクション用の型拡張
└── src/
    └── actions/                   # アクション定義
        ├── get-users.ts
        ├── list-users.ts
        └── js-action-codes/       # JavaScriptアクションのコード(JSアクションがある場合)
            └── get-user.js
  • アクション定義はsrc/actions/配下に、アクションの識別子ごとに1ファイルずつ配置されます。
  • JavaScriptアクションのコードはsrc/actions/js-action-codes/配下に、アクションの識別子ごとに.jsファイルとして出力されます。
  • GitHub Actionsのワークフローファイルは含まれません。CI/CDの設定は、CI/CDの設定を参考に手動で追加してください。

ファイル構造に厳密な規約はありません。設定ファイルに書き出したあとは、機能別のディレクトリに整理し直したり、モノレポの一部として既存リポジトリに同居させたりできます。

SDK関数

設定ファイルでは、@basemachina/sdk/oacから以下のSDK関数をインポートして使用します。

  • defineConfig - プロジェクト全体の設定を定義する
  • defineAction - アクションを定義する
  • readFile - 外部ファイルの内容を読み込む
import { defineConfig, defineAction, readFile } from "@basemachina/sdk/oac";

tsconfig.json

ダウンロードしたプロジェクトにはtsconfig.jsonが含まれており、SDKの設定を拡張しています。通常は変更不要です。

{
  "extends": "@basemachina/sdk/tsconfig.code.json",
  "include": ["basemachina.config.ts", "type.d.ts", "src/**/*.ts"]
}

この設定により、JavaScriptアクションのコードで@basemachina/actionの型定義(パラメーターの型など)が使用可能になります。また、ビューのコードを同じリポジトリに同居させる場合は@basemachina/viewの型定義も利用できます。