UNPKG

egg

Version:

A web application framework for Node.js

59 lines (58 loc) • 1.29 kB
import assert from "node:assert/strict"; //#region src/lib/define.ts /** * Define configuration with type safety * @example * ```ts * import { defineConfig } from 'egg'; * * export default defineConfig({ * keys: 'my-keys', * middleware: [] * }); * ``` */ function defineConfig(config) { return config; } /** * Define configuration factory function with type safety * @example * ```ts * export default defineConfigFactory((appInfo): PartialEggConfig => ({ * keys: appInfo.name + '_keys', * middleware: [] * })); * ``` */ function defineConfigFactory(configFactory) { return configFactory; } /** * Define plugin factory with type safety * @example * ```ts * import { definePluginFactory } from 'egg'; * * export default definePluginFactory({ * name: 'my-plugin', * enable: true, * path: 'path/to/my-plugin', * dependencies: ['watcher'], * optionalDependencies: ['view'], * env: ['local', 'unittest'], * }); * ``` */ function definePluginFactory(pluginMeta) { assert(pluginMeta.name, "plugin name is required"); assert(pluginMeta.path, "plugin path is required"); return (options) => ({ [pluginMeta.name]: { ...pluginMeta, ...options, name: pluginMeta.name, skipMerge: true } }); } //#endregion export { defineConfig, defineConfigFactory, definePluginFactory };