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

設定ファイル

コード管理では、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.tstype.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.jsontsconfig.view.jsonを別々に継承して2つのtsconfigを運用する必要はありません。

ビューのコードを同じリポジトリで扱う場合の追加設定(jsxの指定やreact / @types/reactのインストール)は、コード取得設定との連携をご参照ください。