@longzai-intelligence-builder/cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ import type { BuilderConfig } from '@longzai-intelligence-builder/core';
2
+ /**
3
+ * 将 BuilderConfig 转换为 rolldown 的 RolldownOptions 并执行构建
4
+ *
5
+ * @param config - builder 构建配置
6
+ * @param cwd - 当前工作目录
7
+ */
8
+ declare function runBuild(config: BuilderConfig, cwd?: string): Promise<void>;
9
+ export { runBuild };
10
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,oCAAoC,CAAC;AA+DrF;;;;;GAKG;AACH,iBAAe,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DzF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/build.js ADDED
@@ -0,0 +1,118 @@
1
+ import { rm } from 'node:fs/promises';
2
+ import { resolve } from 'node:path';
3
+ import process from 'node:process';
4
+ import { build } from 'rolldown';
5
+ import { dts } from '@longzai-intelligence-tsdown/rolldown-plugin-dts';
6
+ /**
7
+ * 规范化 format 为数组
8
+ *
9
+ * @param format - 格式配置
10
+ * @returns 格式数组
11
+ */
12
+ function normalizeFormat(format) {
13
+ if (!format)
14
+ return ['es'];
15
+ return Array.isArray(format) ? format : [format];
16
+ }
17
+ /**
18
+ * 根据 format 和 outExtensions 计算输出文件扩展名
19
+ *
20
+ * @param format - 输出格式
21
+ * @param outExtensions - 自定义扩展名函数
22
+ * @returns 文件扩展名对象
23
+ */
24
+ function resolveExtensions(format, outExtensions) {
25
+ const custom = outExtensions?.();
26
+ if (custom?.js) {
27
+ return { js: custom.js, dts: custom.dts ?? '.d.ts' };
28
+ }
29
+ if (format === 'cjs') {
30
+ return { js: '.cjs', dts: '.d.cts' };
31
+ }
32
+ return { js: '.js', dts: '.d.ts' };
33
+ }
34
+ /**
35
+ * 构建 dts 插件配置
36
+ *
37
+ * @param config - 构建配置
38
+ * @returns dts 插件选项或 null
39
+ */
40
+ function resolveDtsOptions(config) {
41
+ if (config.dts === false || config.dts === undefined) {
42
+ return null;
43
+ }
44
+ if (config.dts === true) {
45
+ return {};
46
+ }
47
+ if (config.dts.enabled === false) {
48
+ return null;
49
+ }
50
+ return {
51
+ tsconfig: config.dts.tsconfig,
52
+ sourcemap: config.dts.sourcemap,
53
+ };
54
+ }
55
+ /**
56
+ * 将 BuilderConfig 转换为 rolldown 的 RolldownOptions 并执行构建
57
+ *
58
+ * @param config - builder 构建配置
59
+ * @param cwd - 当前工作目录
60
+ */
61
+ async function runBuild(config, cwd = process.cwd()) {
62
+ const formats = normalizeFormat(config.format);
63
+ const outdir = config.outdir ?? 'dist';
64
+ /**
65
+ * 构建前清理输出目录
66
+ */
67
+ if (config.clean !== false) {
68
+ const outPath = resolve(cwd, outdir);
69
+ await rm(outPath, { recursive: true, force: true }).catch(() => { });
70
+ }
71
+ /**
72
+ * 解析入口配置
73
+ */
74
+ const entry = config.entry ?? { index: 'src/index.ts' };
75
+ const resolvedEntry = typeof entry === 'string' ? { index: entry } : entry;
76
+ /**
77
+ * 构建 dts 插件(仅在需要时)
78
+ */
79
+ const dtsOptions = resolveDtsOptions(config);
80
+ const dtsPlugins = dtsOptions
81
+ ? dts({
82
+ tsconfig: dtsOptions.tsconfig ?? config.tsconfig,
83
+ sourcemap: dtsOptions.sourcemap,
84
+ })
85
+ : [];
86
+ /**
87
+ * 构建 rolldown 输入选项
88
+ */
89
+ const inputOptions = {
90
+ input: resolvedEntry,
91
+ external: config.external,
92
+ plugins: [...dtsPlugins, ...(config.plugins ?? [])],
93
+ ...config.inputOptions,
94
+ };
95
+ if (config.deps?.skipNodeModulesBundle !== false) {
96
+ inputOptions.external = config.external;
97
+ }
98
+ /**
99
+ * 为每种格式构建输出选项并执行
100
+ */
101
+ for (const format of formats) {
102
+ const ext = resolveExtensions(format, config.outExtensions);
103
+ const outputOptions = {
104
+ format: format === 'es' ? 'esm' : format,
105
+ dir: outdir,
106
+ entryFileNames: `[name]${ext.js}`,
107
+ sourcemap: config.sourcemap,
108
+ minify: config.minify,
109
+ ...config.outputOptions,
110
+ };
111
+ await build({
112
+ ...inputOptions,
113
+ output: outputOptions,
114
+ });
115
+ }
116
+ }
117
+ export { runBuild };
118
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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","sourcesContent":["import { rm } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport process from 'node:process';\n\nimport type { BuilderConfig, BuildFormat } from '@longzai-intelligence-builder/core';\nimport { build, type InputOptions, type OutputOptions, type Plugin } from 'rolldown';\nimport { dts } from '@longzai-intelligence-tsdown/rolldown-plugin-dts';\n\n/**\n * 规范化 format 为数组\n *\n * @param format - 格式配置\n * @returns 格式数组\n */\nfunction normalizeFormat(format: BuilderConfig['format']): BuildFormat[] {\n if (!format) return ['es'];\n return Array.isArray(format) ? format : [format];\n}\n\n/**\n * 根据 format 和 outExtensions 计算输出文件扩展名\n *\n * @param format - 输出格式\n * @param outExtensions - 自定义扩展名函数\n * @returns 文件扩展名对象\n */\nfunction resolveExtensions(\n format: BuildFormat,\n outExtensions?: BuilderConfig['outExtensions'],\n): { js: string; dts: string } {\n const custom = outExtensions?.();\n if (custom?.js) {\n return { js: custom.js, dts: custom.dts ?? '.d.ts' };\n }\n\n if (format === 'cjs') {\n return { js: '.cjs', dts: '.d.cts' };\n }\n\n return { js: '.js', dts: '.d.ts' };\n}\n\n/**\n * 构建 dts 插件配置\n *\n * @param config - 构建配置\n * @returns dts 插件选项或 null\n */\nfunction resolveDtsOptions(config: BuilderConfig): { tsconfig?: string; sourcemap?: boolean } | null {\n if (config.dts === false || config.dts === undefined) {\n return null;\n }\n\n if (config.dts === true) {\n return {};\n }\n\n if (config.dts.enabled === false) {\n return null;\n }\n\n return {\n tsconfig: config.dts.tsconfig,\n sourcemap: config.dts.sourcemap,\n };\n}\n\n/**\n * 将 BuilderConfig 转换为 rolldown 的 RolldownOptions 并执行构建\n *\n * @param config - builder 构建配置\n * @param cwd - 当前工作目录\n */\nasync function runBuild(config: BuilderConfig, cwd: string = process.cwd()): Promise<void> {\n const formats = normalizeFormat(config.format);\n const outdir = config.outdir ?? 'dist';\n\n /**\n * 构建前清理输出目录\n */\n if (config.clean !== false) {\n const outPath = resolve(cwd, outdir);\n await rm(outPath, { recursive: true, force: true }).catch(() => {});\n }\n\n /**\n * 解析入口配置\n */\n const entry = config.entry ?? { index: 'src/index.ts' };\n const resolvedEntry = typeof entry === 'string' ? { index: entry } : entry;\n\n /**\n * 构建 dts 插件(仅在需要时)\n */\n const dtsOptions = resolveDtsOptions(config);\n const dtsPlugins: Plugin[] = dtsOptions\n ? dts({\n tsconfig: dtsOptions.tsconfig ?? config.tsconfig,\n sourcemap: dtsOptions.sourcemap,\n })\n : [];\n\n /**\n * 构建 rolldown 输入选项\n */\n const inputOptions: InputOptions = {\n input: resolvedEntry,\n external: config.external,\n plugins: [...dtsPlugins, ...(config.plugins ?? [])],\n ...config.inputOptions,\n };\n\n if (config.deps?.skipNodeModulesBundle !== false) {\n inputOptions.external = config.external;\n }\n\n /**\n * 为每种格式构建输出选项并执行\n */\n for (const format of formats) {\n const ext = resolveExtensions(format, config.outExtensions);\n\n const outputOptions: OutputOptions = {\n format: format === 'es' ? 'esm' : format,\n dir: outdir,\n entryFileNames: `[name]${ext.js}`,\n sourcemap: config.sourcemap,\n minify: config.minify,\n ...config.outputOptions,\n };\n\n await build({\n ...inputOptions,\n output: outputOptions,\n });\n }\n}\n\nexport { runBuild };\n"]}
@@ -0,0 +1,14 @@
1
+ import type { BuilderConfig } from '@longzai-intelligence-builder/core';
2
+ /**
3
+ * 查找并加载 builder 配置文件
4
+ *
5
+ * 按优先级在 cwd 下查找 builder.config.{ts,mts,js,mjs},
6
+ * 使用 bun 原生 import 加载(bun 生态原生支持 .ts),
7
+ * 无需 unrun 等外部配置加载器。
8
+ *
9
+ * @param cwd - 当前工作目录
10
+ * @returns 解析后的构建配置,未找到配置文件时返回默认空配置
11
+ */
12
+ declare function loadConfig(cwd?: string): Promise<BuilderConfig>;
13
+ export { loadConfig };
14
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAYxE;;;;;;;;;GASG;AACH,iBAAe,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAW7E;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
package/dist/config.js ADDED
@@ -0,0 +1,35 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import process from 'node:process';
4
+ /**
5
+ * builder 配置文件可能的名字
6
+ */
7
+ const CONFIG_FILES = [
8
+ 'builder.config.ts',
9
+ 'builder.config.mts',
10
+ 'builder.config.js',
11
+ 'builder.config.mjs',
12
+ ];
13
+ /**
14
+ * 查找并加载 builder 配置文件
15
+ *
16
+ * 按优先级在 cwd 下查找 builder.config.{ts,mts,js,mjs},
17
+ * 使用 bun 原生 import 加载(bun 生态原生支持 .ts),
18
+ * 无需 unrun 等外部配置加载器。
19
+ *
20
+ * @param cwd - 当前工作目录
21
+ * @returns 解析后的构建配置,未找到配置文件时返回默认空配置
22
+ */
23
+ async function loadConfig(cwd = process.cwd()) {
24
+ for (const file of CONFIG_FILES) {
25
+ const filePath = resolve(cwd, file);
26
+ if (existsSync(filePath)) {
27
+ const module = await import(filePath);
28
+ const config = module.default ?? module;
29
+ return config;
30
+ }
31
+ }
32
+ return {};
33
+ }
34
+ export { loadConfig };
35
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,cAAc,CAAC;AAInC;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;CACZ,CAAC;AAEX;;;;;;;;;GASG;AACH,KAAK,UAAU,UAAU,CAAC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE;IACnD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,MAAM,GAAkB,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;YACvD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport process from 'node:process';\n\nimport type { BuilderConfig } from '@longzai-intelligence-builder/core';\n\n/**\n * builder 配置文件可能的名字\n */\nconst CONFIG_FILES = [\n 'builder.config.ts',\n 'builder.config.mts',\n 'builder.config.js',\n 'builder.config.mjs',\n] as const;\n\n/**\n * 查找并加载 builder 配置文件\n *\n * 按优先级在 cwd 下查找 builder.config.{ts,mts,js,mjs},\n * 使用 bun 原生 import 加载(bun 生态原生支持 .ts),\n * 无需 unrun 等外部配置加载器。\n *\n * @param cwd - 当前工作目录\n * @returns 解析后的构建配置,未找到配置文件时返回默认空配置\n */\nasync function loadConfig(cwd: string = process.cwd()): Promise<BuilderConfig> {\n for (const file of CONFIG_FILES) {\n const filePath = resolve(cwd, file);\n if (existsSync(filePath)) {\n const module = await import(filePath);\n const config: BuilderConfig = module.default ?? module;\n return config;\n }\n }\n\n return {};\n}\n\nexport { loadConfig };\n"]}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env bun
2
+ import process from 'node:process';
3
+ import { loadConfig } from './config.js';
4
+ import { runBuild } from './build.js';
5
+ /**
6
+ * lzi-builder CLI 入口
7
+ *
8
+ * 流程:bun 原生加载 builder.config.ts → 获取 BuilderConfig →
9
+ * 转换为 rolldown options → 注入 plugin-dts → 执行 rolldown.build()
10
+ */
11
+ async function main() {
12
+ const config = await loadConfig();
13
+ if (!config.entry) {
14
+ console.error('错误: 未找到入口配置,请在 builder.config.ts 中声明 entry');
15
+ process.exit(1);
16
+ }
17
+ await runBuild(config);
18
+ }
19
+ main().catch((error) => {
20
+ console.error('构建失败:', error);
21
+ process.exit(1);
22
+ });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;GAKG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAElC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env bun\nimport process from 'node:process';\n\nimport { loadConfig } from './config.js';\nimport { runBuild } from './build.js';\n\n/**\n * lzi-builder CLI 入口\n *\n * 流程:bun 原生加载 builder.config.ts → 获取 BuilderConfig →\n * 转换为 rolldown options → 注入 plugin-dts → 执行 rolldown.build()\n */\nasync function main(): Promise<void> {\n const config = await loadConfig();\n\n if (!config.entry) {\n console.error('错误: 未找到入口配置,请在 builder.config.ts 中声明 entry');\n process.exit(1);\n }\n\n await runBuild(config);\n}\n\nmain().catch((error) => {\n console.error('构建失败:', error);\n process.exit(1);\n});\n"]}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@longzai-intelligence-builder/cli",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "bin": {
8
+ "lzi-builder": "./dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsgo --build tsconfig/build.json && resolve-aliases -p tsconfig/build.json",
15
+ "build:prod": "NODE_ENV=production bun run build",
16
+ "prepublishOnly": "bun run build:prod",
17
+ "typecheck": "bun run typecheck:app && bun run typecheck:node",
18
+ "typecheck:app": "tsgo --noEmit -p tsconfig/app.json",
19
+ "typecheck:node": "tsgo --noEmit -p tsconfig/node.json",
20
+ "lint": "oxlint && oxfmt --check",
21
+ "lint:fix": "oxlint --fix && oxfmt",
22
+ "test": "bun test",
23
+ "test:watch": "bun test --watch",
24
+ "test:coverage": "bun test --coverage",
25
+ "clean": "rimraf dist out .cache"
26
+ },
27
+ "dependencies": {
28
+ "@longzai-intelligence-builder/core": "0.0.1",
29
+ "@longzai-intelligence-tsdown/rolldown-plugin-dts": "^0.1.1",
30
+ "rolldown": "^1.1.5"
31
+ },
32
+ "peerDependencies": {
33
+ "@typescript/native-preview": ">=7.0.0-dev"
34
+ },
35
+ "peerDependenciesMeta": {
36
+ "@typescript/native-preview": {
37
+ "optional": true
38
+ }
39
+ }
40
+ }