Have ideas to improve npm?Join in the discussion! »

    @rfcs/core
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.5 • Public • Published

    @rfsc/core Remote function call system

    用途

    • バックエンドとフロントエンドを最小限の記述で連携させる

    使い方

    • テンプレートの展開 npx init-rfcs

    • テンプレートのビルド npm build

    • テンプレートの実行 npm run

    • テストの実行 npm run test

    テンプレートのファイル構成

    .
    │  tsconfig.json バックエンドコンパイル用
    │
    └─src
        ├─back [バックエンド用ディレクトリ]
        │  │  index.ts バックエンドスタート用ファイル
        │  │  tsconfig.json バックエンドコンパイル用
        │  │
        │  ├─modules [モジュール格納用]
        │  │      TestModule.ts サンプルモジュール
        │  │
        │  └─test
        │          index.ts バックエンドテストコード
        │
        ├─front [フロントエンド用ディレクトリ]
        │      index.ts フロントエンドスタート用ファイル
        │      tsconfig.json フロントエンドコンパイル用
        │      webpack.config.js フロントエンドビルド用
        │
        └─template [HTMLテンプレート置き場]
                index.html 初期ページ用HTML
    

    プログラムの組み方

    バックエンド側

    Moduleクラスを継承しメソッドを@EXPORTでデコレーションすると、 フロントエンド側から呼び出しが可能となる

    import {Module, EXPORT} from "@rfcs/core";
    
    /**
     *テストモジュール
     *
     * @export
     * @class TestModule
     * @extends {Module}
     */
    export class TestModule extends Module {
      @EXPORT //このデコレータを付けると外部公開される
      async add(a: number, b: number) {
        return a + b;
      }
    }

    フロントエンド側

    Adapterクラスのインスタンスを作成し、adapter.execでバックエンド側のメソッドを呼び出す

    const adapter = new Adapter("scripts");
    const result = (await adapter.exec("TestModule.add", a, b)) as number;

    関連リンク

    ドキュメント

    ライセンス

    • MITライセンス

    Install

    npm i @rfcs/core

    DownloadsWeekly Downloads

    12

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    174 kB

    Total Files

    41

    Last publish

    Collaborators

    • avatar