設定ファイル
コード管理では、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の型定義も利用できます。