takin
Version:
Front end engineering base toolchain and scaffold
36 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserConfigSchema = exports.NAME_REGEXP = exports.SupportConfigExtensions = exports.PKG_FILE = exports.DEFAULT_ROOT = exports.DEFAULT_MULTIPLE_CONFIG_FIELD = exports.DEFAULT_CONFIG_OPTION_NAME_ALIAS = exports.DEFAULT_CONFIG_OPTION_NAME = exports.DEFAULT_NAME = void 0;
const zod_1 = require("zod");
const plugin_1 = require("./plugin");
const runner_1 = require("./runner");
exports.DEFAULT_NAME = 'takin';
exports.DEFAULT_CONFIG_OPTION_NAME = 'config';
exports.DEFAULT_CONFIG_OPTION_NAME_ALIAS = 'c';
exports.DEFAULT_MULTIPLE_CONFIG_FIELD = 'name';
exports.DEFAULT_ROOT = process.cwd();
exports.PKG_FILE = 'package.json';
exports.SupportConfigExtensions = {
ts: '.ts',
js: '.js',
mjs: '.mjs',
json: '.json',
jsonc: '.jsonc',
json5: '.json5'
};
exports.NAME_REGEXP = /^[a-zA-Z0-9_-]+$/;
// 插件 schema 和 ./plugin 保持一致
const PluginSchema = zod_1.z
.object({
name: zod_1.z.string(),
enforce: zod_1.z.nativeEnum(plugin_1.PluginEnforceTypes).optional(),
apply: zod_1.z.function().args(zod_1.z.instanceof(runner_1.Runner)).returns(zod_1.z.void())
})
.or(zod_1.z.string())
.or(zod_1.z.tuple([zod_1.z.string(), zod_1.z.any()]));
// takin 中支持的用户配置
exports.UserConfigSchema = {
name: zod_1.z.string().min(1).regex(exports.NAME_REGEXP).optional(),
plugins: zod_1.z.union([zod_1.z.array(PluginSchema), PluginSchema]).optional()
};
//# sourceMappingURL=constants.js.map