設定ファイル
コード管理では、TypeScriptで設定を記述します。SDK(@basemachina/sdk/oac)が提供する関数を使うことで、型安全に設定を定義できます。
現在のコード管理で設定ファイルから扱えるアクション種別は、gRPC・HTTP API・JavaScript・MySQL・PostgreSQLです。ビューの設定は管理対象外ですが、ビュー内のコードはコード取得設定との組み合わせで同じリポジトリに同居させられます。
ダウンロードされるファイル
始め方でダウンロードしたZIP(oac-project.zip)には、以下のファイルが含まれます。
my-project/
├── basemachina.config.ts # プロジェクト全体の設定
├── package.json # @basemachina/sdk / @basemachina/cli の依存関係
├── tsconfig.json # TypeScriptの設定
├── type.d.ts # JavaScriptアクション用の型登録
├── .gitignore
└── src/
├── bm-refs.ts # Web上の設定を参照する自動生成ファイル
└── 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ファイルとして出力されます。 src/bm-refs.tsには、レビュー設定、データソース、グループ、通知方法、マスターデータ取得設定、プロジェクトユーザーなどを型安全に参照するための定数が出力されます。このファイルはbm pullで再生成されるため、手動で編集しないでください。type.d.tsには、JavaScriptアクションの型推論に必要な@basemachina/actionの型登録が出力されます。このファイルもbm pullで再生成される自動生成ファイルです。package.jsonには、npmで公開されている@basemachina/sdk(opens in a new tab)と@basemachina/cli(opens in a new tab)の依存関係が含まれます。- GitHub Actionsのワークフローファイルは含まれません。CI/CDの設定は、CI/CDの設定を参考に手動で追加してください。
ファイル構造に厳密な規約はありません。設定ファイルに書き出したあとは、機能別のディレクトリに整理し直したり、モノレポの一部として既存リポジトリに同居させたりできます。ただし、bm pullでWeb管理のアクションを取り込む場合は、src/actions/、src/bm-refs.ts、type.d.tsが更新対象になります。
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の型定義も利用できます。
@basemachina/sdkが提供するtsconfigの種類
@basemachina/sdkは、用途に応じて3種類のtsconfigを提供しています。基本的にはひな形と同じくtsconfig.code.jsonを継承すれば十分です。
| 名前 | pathsで解決される型 | 想定用途 |
|---|---|---|
@basemachina/sdk/tsconfig.code.json | @basemachina/action、@basemachina/view | アクションとビューをまとめて管理する場合の標準設定。ひな形のtsconfig.jsonが継承する |
@basemachina/sdk/tsconfig.action.json | @basemachina/actionのみ | JavaScriptアクションのコードのみを型チェック対象にしたい場合 |
@basemachina/sdk/tsconfig.view.json | @basemachina/viewのみ | ビューのコードのみを型チェック対象にしたい場合 |
アクションとビューの両方を扱う場合は、tsconfig.code.jsonを継承するだけで両方の型定義が利用できます。tsconfig.action.jsonとtsconfig.view.jsonを別々に継承して2つのtsconfigを運用する必要はありません。
ビューのコードを同じリポジトリで扱う場合の追加設定(jsxの指定やreact / @types/reactのインストール)は、コード取得設定との連携をご参照ください。