@farris/cli 2.2.5 → 2.3.0

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.
Files changed (165) hide show
  1. package/lib/commands/add-app.js +6 -0
  2. package/lib/commands/add-app.js.map +1 -0
  3. package/lib/commands/add-lib.js +6 -0
  4. package/lib/commands/add-lib.js.map +1 -0
  5. package/lib/commands/add-project.js +194 -0
  6. package/lib/commands/add-project.js.map +1 -0
  7. package/lib/commands/build-components.js +57 -50
  8. package/lib/commands/build-components.js.map +1 -1
  9. package/lib/commands/build-css.js +38 -38
  10. package/lib/commands/build-css.js.map +1 -1
  11. package/lib/commands/build-lib.js +30 -25
  12. package/lib/commands/build-lib.js.map +1 -1
  13. package/lib/commands/build.js +19 -14
  14. package/lib/commands/build.js.map +1 -1
  15. package/lib/commands/create-app-options.js +72 -74
  16. package/lib/commands/create-app-options.js.map +1 -1
  17. package/lib/commands/create-app.js +131 -126
  18. package/lib/commands/create-app.js.map +1 -1
  19. package/lib/commands/create-options.js +32 -29
  20. package/lib/commands/create-options.js.map +1 -1
  21. package/lib/commands/create.js +277 -224
  22. package/lib/commands/create.js.map +1 -1
  23. package/lib/commands/dev-serve.js +18 -18
  24. package/lib/commands/extract-i18n.js +74 -74
  25. package/lib/commands/extract-i18n.js.map +1 -1
  26. package/lib/commands/generate/api.js +124 -124
  27. package/lib/commands/generate/api.js.map +1 -1
  28. package/lib/commands/generate/common.js +101 -100
  29. package/lib/commands/generate/common.js.map +1 -1
  30. package/lib/commands/generate/component.js +156 -156
  31. package/lib/commands/generate/component.js.map +1 -1
  32. package/lib/commands/generate/view.js +168 -168
  33. package/lib/commands/generate/view.js.map +1 -1
  34. package/lib/commands/preview-serve.js +16 -16
  35. package/lib/commands/workspace/add-app.js +15 -180
  36. package/lib/commands/workspace/add-app.js.map +1 -1
  37. package/lib/commands/workspace/create.js +62 -379
  38. package/lib/commands/workspace/create.js.map +1 -1
  39. package/lib/commands/workspace/inspect.js +30 -30
  40. package/lib/commands/workspace/inspect.js.map +1 -1
  41. package/lib/commands/workspace/verify.js +38 -38
  42. package/lib/commands/workspace/verify.js.map +1 -1
  43. package/lib/common/agents-doc.js +34 -0
  44. package/lib/common/agents-doc.js.map +1 -0
  45. package/lib/common/apply-catalog-deps.js +15 -15
  46. package/lib/common/apply-catalog-deps.js.map +1 -1
  47. package/lib/common/component-file-name.js +3 -3
  48. package/lib/common/constant.js +64 -64
  49. package/lib/common/constant.js.map +1 -1
  50. package/lib/common/create-app-target.js +46 -46
  51. package/lib/common/create-app-target.js.map +1 -1
  52. package/lib/common/generate-app.js +109 -85
  53. package/lib/common/generate-app.js.map +1 -1
  54. package/lib/common/get-dependencies.js +9 -9
  55. package/lib/common/get-farris-config.js +25 -25
  56. package/lib/common/get-farris-config.js.map +1 -1
  57. package/lib/common/get-version.js +6 -6
  58. package/lib/common/get-vite-config.js +106 -106
  59. package/lib/common/get-vite-config.js.map +1 -1
  60. package/lib/common/lib-package-exports.js +24 -24
  61. package/lib/common/lib-package-exports.js.map +1 -1
  62. package/lib/common/list-lib-components.js +23 -23
  63. package/lib/common/list-lib-components.js.map +1 -1
  64. package/lib/common/output.js +164 -94
  65. package/lib/common/output.js.map +1 -1
  66. package/lib/common/project-layout.js +143 -0
  67. package/lib/common/project-layout.js.map +1 -0
  68. package/lib/common/safety.js +173 -171
  69. package/lib/common/safety.js.map +1 -1
  70. package/lib/common/template-manifest.js +14 -16
  71. package/lib/common/template-manifest.js.map +1 -1
  72. package/lib/common/template-renderer.js +114 -114
  73. package/lib/common/template-renderer.js.map +1 -1
  74. package/lib/common/transaction.js +83 -83
  75. package/lib/common/transaction.js.map +1 -1
  76. package/lib/common/verifier.js +194 -150
  77. package/lib/common/verifier.js.map +1 -1
  78. package/lib/common/workspace-contract.js +86 -0
  79. package/lib/common/workspace-contract.js.map +1 -0
  80. package/lib/config/vite-app.js +13 -13
  81. package/lib/config/vite-common.js +20 -20
  82. package/lib/config/vite-common.js.map +1 -1
  83. package/lib/config/vite-component.js +32 -32
  84. package/lib/config/vite-component.js.map +1 -1
  85. package/lib/config/vite-lib.js +26 -26
  86. package/lib/index.js +234 -205
  87. package/lib/index.js.map +1 -1
  88. package/lib/plugins/create-app-package-json.js +24 -0
  89. package/lib/plugins/create-app-package-json.js.map +1 -0
  90. package/lib/plugins/create-component-style.js +44 -44
  91. package/lib/plugins/create-package-json.js +48 -48
  92. package/lib/plugins/create-package-json.js.map +1 -1
  93. package/lib/plugins/dts.js +8 -8
  94. package/lib/plugins/html-system.js +9 -9
  95. package/lib/plugins/replace.js +17 -17
  96. package/lib/plugins/systemjs-bundle.js +15 -15
  97. package/lib/plugins/systemjs-bundle.js.map +1 -1
  98. package/package.json +53 -52
  99. package/templates/create/.gitignore.tpl +12 -0
  100. package/templates/create/.npmrc.tpl +1 -0
  101. package/templates/create/AGENTS.md +62 -0
  102. package/templates/create/CLAUDE.md +1 -0
  103. package/templates/create/README.md +14 -1
  104. package/templates/create/package.json +11 -3
  105. package/templates/create/pnpm-workspace.yaml +2 -1
  106. package/templates/lib/.eslintrc.cjs +15 -0
  107. package/templates/lib/.gitignore.tpl +3 -0
  108. package/templates/lib/.prettierrc.json +8 -0
  109. package/templates/lib/index.html +1 -1
  110. package/templates/lib/package.json +39 -4
  111. package/templates/lib/{components → test/components}/button/button.spec.ts +3 -2
  112. package/templates/lib/test/components/button/button.spec.tsx +11 -0
  113. package/templates/lib/tsconfig.json +5 -1
  114. package/templates/lib/vitest.config.ts +1 -1
  115. package/templates/mobile/.gitignore.tpl +31 -0
  116. package/templates/mobile/.gitlab-ci.yml +3 -9
  117. package/templates/mobile/index.html +1 -1
  118. package/templates/mobile/package.json +14 -10
  119. package/templates/mobile/src/main.ts +5 -4
  120. package/templates/mobile/src/router/index.ts +17 -17
  121. package/templates/mobile/test/src/components/TheButton.spec.ts +15 -0
  122. package/templates/mobile/test/src/components/TheButton.spec.tsx +15 -0
  123. package/templates/mobile/tsconfig.json +3 -2
  124. package/templates/mobile/vitest.config.ts +2 -1
  125. package/templates/web/.gitignore.tpl +31 -0
  126. package/templates/web/.gitlab-ci.yml +3 -9
  127. package/templates/web/index.html +1 -1
  128. package/templates/web/package.json +14 -10
  129. package/templates/web/src/locales/index.ts +5 -0
  130. package/templates/web/src/locales/zh-CN.json +1 -0
  131. package/templates/web/src/main.ts +5 -2
  132. package/templates/web/src/router/index.ts +17 -17
  133. package/templates/web/src/styles/index.css +0 -0
  134. package/templates/web/src/styles/index.scss +0 -0
  135. package/templates/web/test/src/components/TheButton.spec.ts +15 -0
  136. package/templates/web/test/src/components/TheButton.spec.tsx +15 -0
  137. package/templates/web/tsconfig.json +3 -2
  138. package/templates/web/vitest.config.ts +2 -1
  139. package/lib/common/project-package-name.js +0 -5
  140. package/lib/common/project-package-name.js.map +0 -1
  141. package/templates/mobile/.changeset/README.md +0 -4
  142. package/templates/mobile/.changeset/config.json +0 -11
  143. package/templates/mobile/project.json +0 -4
  144. package/templates/mobile/src/components/TheButton.spec.ts +0 -8
  145. package/templates/web/.changeset/README.md +0 -4
  146. package/templates/web/.changeset/config.json +0 -11
  147. package/templates/web/project.json +0 -4
  148. package/templates/web/src/components/TheButton.spec.ts +0 -8
  149. package/templates/workspace/app/farris.config.mjs +0 -13
  150. package/templates/workspace/app/index.html +0 -12
  151. package/templates/workspace/app/package.json +0 -22
  152. package/templates/workspace/app/src/App.tsx +0 -11
  153. package/templates/workspace/app/src/main.ts +0 -12
  154. package/templates/workspace/app/src/router/index.ts +0 -16
  155. package/templates/workspace/app/src/views/home/composables/use-home.ts +0 -7
  156. package/templates/workspace/app/src/views/home/home.component.tsx +0 -15
  157. package/templates/workspace/app/src/views/home/index.ts +0 -4
  158. package/templates/workspace/app/tsconfig.json +0 -21
  159. package/templates/workspace/root/README.md +0 -28
  160. package/templates/workspace/root/package.json +0 -13
  161. package/templates/workspace/root/pnpm-workspace.yaml +0 -12
  162. /package/templates/{workspace/app → mobile}/src/locales/index.ts +0 -0
  163. /package/templates/{workspace/app → mobile}/src/locales/zh-CN.json +0 -0
  164. /package/templates/{workspace/app → mobile}/src/styles/index.css +0 -0
  165. /package/templates/{workspace/app → mobile}/src/styles/index.scss +0 -0
@@ -1,75 +1,73 @@
1
- import { existsSync } from 'node:fs';
2
- import { resolve } from 'node:path';
3
- import { ExitCode } from '../common/constant.js';
4
- import { assertTargetInsideCwd, CreateAppError, resolvePackageName } from '../common/create-app-target.js';
5
- import { toProjectPackageName } from '../common/project-package-name.js';
6
- export { toProjectPackageName };
7
- export { assertTargetInsideCwd, CreateAppError, resolvePackageName };
8
- export const ALLOWED_TYPES = ['app', 'lib'];
9
- export const ALLOWED_PLATFORMS = ['web', 'mobile'];
10
- export const ALLOWED_FORMATS = ['es', 'cjs', 'umd', 'systemjs'];
11
- export const DEFAULT_NAME = 'my-project';
12
- export const DEFAULT_LIB_FORMATS = ['es', 'cjs', 'umd'];
13
- export const DEFAULT_APP_FORMAT = 'es';
14
- export const DEFAULT_PLATFORM = 'web';
15
- function assertAllowed(kind, value, allowed) {
16
- if (!allowed.includes(value)) {
17
- throw new CreateAppError(`非法的 ${kind}: ${value},允许值为 ${allowed.join(', ')}`);
18
- }
19
- }
20
- export function parseFormatsFlag(raw) {
21
- if (raw === undefined) {
22
- return undefined;
23
- }
24
- const parts = raw.split(',').map((part) => part.trim());
25
- if (parts.length === 0 || parts.some((part) => part === '')) {
26
- throw new CreateAppError('非法的 --formats: 不能为空');
27
- }
28
- parts.forEach((part) => assertAllowed('--formats', part, ALLOWED_FORMATS));
29
- return parts;
30
- }
31
- export function validateCliInput(input) {
32
- if (input.type !== undefined) {
33
- assertAllowed('--type', input.type, ALLOWED_TYPES);
34
- }
35
- if (input.platform !== undefined) {
36
- assertAllowed('--platform', input.platform, ALLOWED_PLATFORMS);
37
- }
38
- if (input.format !== undefined) {
39
- assertAllowed('--format', input.format, ALLOWED_FORMATS);
40
- }
41
- if (input.formats !== undefined) {
42
- parseFormatsFlag(input.formats);
43
- }
44
- }
45
- export function resolveNonInteractiveOptions(input) {
46
- validateCliInput(input);
47
- if (!input.type) {
48
- throw new CreateAppError('--type 在使用 -y / --yes 或 --json 时必填');
49
- }
50
- const name = input.name && input.name.trim() !== '' ? input.name : DEFAULT_NAME;
51
- assertTargetInsideCwd(name);
52
- const packageName = resolvePackageName(name);
53
- if (input.type === 'lib') {
54
- return {
55
- name,
56
- packageName,
57
- type: 'lib',
58
- formats: parseFormatsFlag(input.formats) ?? [...DEFAULT_LIB_FORMATS]
59
- };
60
- }
61
- return {
62
- name,
63
- packageName,
64
- type: 'app',
65
- platform: input.platform ?? DEFAULT_PLATFORM,
66
- format: input.format ?? DEFAULT_APP_FORMAT
67
- };
68
- }
69
- export function assertTargetDirectoryFree(name, cwd = process.cwd()) {
70
- assertTargetInsideCwd(name, cwd);
71
- if (existsSync(resolve(cwd, name))) {
72
- throw new CreateAppError(`目标目录已存在: ${name}`, ExitCode.TARGET_CONFLICT);
73
- }
74
- }
1
+ import { existsSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { ExitCode } from '../common/constant.js';
4
+ import { assertTargetInsideCwd, CreateAppError, resolvePackageName } from '../common/create-app-target.js';
5
+ export { assertTargetInsideCwd, CreateAppError, resolvePackageName };
6
+ export const ALLOWED_TYPES = ['app', 'lib'];
7
+ export const ALLOWED_PLATFORMS = ['web', 'mobile'];
8
+ export const ALLOWED_FORMATS = ['es', 'cjs', 'umd', 'systemjs'];
9
+ export const DEFAULT_NAME = 'my-project';
10
+ export const DEFAULT_LIB_FORMATS = ['es', 'cjs', 'umd'];
11
+ export const DEFAULT_APP_FORMAT = 'es';
12
+ export const DEFAULT_PLATFORM = 'web';
13
+ function assertAllowed(kind, value, allowed) {
14
+ if (!allowed.includes(value)) {
15
+ throw new CreateAppError(`非法的 ${kind}: ${value},允许值为 ${allowed.join(', ')}`);
16
+ }
17
+ }
18
+ export function parseFormatsFlag(raw) {
19
+ if (raw === undefined) {
20
+ return undefined;
21
+ }
22
+ const parts = raw.split(',').map((part) => part.trim());
23
+ if (parts.length === 0 || parts.some((part) => part === '')) {
24
+ throw new CreateAppError('非法的 --formats: 不能为空');
25
+ }
26
+ parts.forEach((part) => assertAllowed('--formats', part, ALLOWED_FORMATS));
27
+ return parts;
28
+ }
29
+ export function validateCliInput(input) {
30
+ if (input.type !== undefined) {
31
+ assertAllowed('--type', input.type, ALLOWED_TYPES);
32
+ }
33
+ if (input.platform !== undefined) {
34
+ assertAllowed('--platform', input.platform, ALLOWED_PLATFORMS);
35
+ }
36
+ if (input.format !== undefined) {
37
+ assertAllowed('--format', input.format, ALLOWED_FORMATS);
38
+ }
39
+ if (input.formats !== undefined) {
40
+ parseFormatsFlag(input.formats);
41
+ }
42
+ }
43
+ export function resolveNonInteractiveOptions(input) {
44
+ validateCliInput(input);
45
+ if (!input.type) {
46
+ throw new CreateAppError('--type 在使用 -y / --yes 或 --json 时必填');
47
+ }
48
+ const name = input.name && input.name.trim() !== '' ? input.name : DEFAULT_NAME;
49
+ assertTargetInsideCwd(name);
50
+ const packageName = resolvePackageName(name);
51
+ if (input.type === 'lib') {
52
+ return {
53
+ name,
54
+ packageName,
55
+ type: 'lib',
56
+ formats: parseFormatsFlag(input.formats) ?? [...DEFAULT_LIB_FORMATS]
57
+ };
58
+ }
59
+ return {
60
+ name,
61
+ packageName,
62
+ type: 'app',
63
+ platform: input.platform ?? DEFAULT_PLATFORM,
64
+ format: input.format ?? DEFAULT_APP_FORMAT
65
+ };
66
+ }
67
+ export function assertTargetDirectoryFree(name, cwd = process.cwd()) {
68
+ assertTargetInsideCwd(name, cwd);
69
+ if (existsSync(resolve(cwd, name))) {
70
+ throw new CreateAppError(`目标目录已存在: ${name}`, ExitCode.TARGET_CONFLICT);
71
+ }
72
+ }
75
73
  //# sourceMappingURL=create-app-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-app-options.js","sourceRoot":"","sources":["../../src/commands/create-app-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app-options.js","sourceRoot":"","sources":["../../src/commands/create-app-options.ts"],"names":[],"mappings":"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"}
@@ -1,127 +1,132 @@
1
- import { resolve } from 'node:path';
2
- import inquirer from 'inquirer';
3
- import { ExitCode } from '../common/constant.js';
4
- import { generateApp } from '../common/generate-app.js';
5
- import { fail, sendJson, setJsonMode } from '../common/output.js';
6
- import { assertTargetDirectoryFree, CreateAppError, DEFAULT_LIB_FORMATS, parseFormatsFlag, resolveNonInteractiveOptions, resolvePackageName, validateCliInput } from './create-app-options.js';
7
- const prompt = inquirer.createPromptModule();
8
- const questions = [
9
- {
10
- type: 'input',
11
- name: 'name',
12
- message: 'What is your project name?',
13
- default: 'my-project'
14
- },
15
- {
16
- type: 'list',
17
- name: 'type',
18
- message: 'What type of project is this?',
19
- choices: ['app', 'lib']
20
- },
21
- {
22
- type: 'list',
23
- name: 'platform',
24
- message: 'What platform of project is this?',
25
- choices: ['web', 'mobile'],
26
- when: (response) => response.type === 'app'
27
- },
28
- {
29
- type: 'checkbox',
30
- name: 'formats',
31
- message: 'What output format of project is this?',
32
- choices: ['es', 'cjs', 'umd', 'systemjs'],
33
- default: [...DEFAULT_LIB_FORMATS],
34
- when: (response) => response.type === 'lib'
35
- },
36
- {
37
- type: 'list',
38
- name: 'format',
39
- message: 'What output format of project is this?',
40
- choices: ['es', 'umd', 'systemjs'],
41
- default: 'es',
42
- when: (response) => response.type === 'app'
43
- }
44
- ];
45
- function toGenerateOptions(answers) {
46
- const packageName = resolvePackageName(answers.name);
47
- if (answers.type === 'lib') {
48
- return { name: answers.name, packageName, type: 'lib', formats: answers.formats };
49
- }
50
- return {
51
- name: answers.name,
52
- packageName,
53
- type: 'app',
54
- platform: answers.platform,
55
- format: answers.format
56
- };
57
- }
58
- function initialAnswers(input) {
59
- const initial = {};
60
- if (input.name) {
61
- initial.name = input.name;
62
- }
63
- if (input.type) {
64
- initial.type = input.type;
65
- }
66
- if (input.platform) {
67
- initial.platform = input.platform;
68
- }
69
- if (input.format) {
70
- initial.format = input.format;
71
- }
72
- if (input.formats !== undefined) {
73
- initial.formats = parseFormatsFlag(input.formats);
74
- }
75
- return initial;
76
- }
77
- function emitCreateAppJson(options) {
78
- sendJson({
79
- command: 'create-app',
80
- ok: true,
81
- name: options.name,
82
- ...(options.packageName ? { packageName: options.packageName } : {}),
83
- type: options.type,
84
- ...(options.platform ? { platform: options.platform } : {}),
85
- ...(options.format ? { format: options.format } : {}),
86
- ...(options.formats ? { formats: options.formats } : {}),
87
- target: resolve(process.cwd(), options.name)
88
- });
89
- }
90
- function failCreateApp(error) {
91
- const message = error instanceof Error ? error.message : String(error);
92
- const exitCode = error instanceof CreateAppError ? error.exitCode : ExitCode.GENERAL_ERROR;
93
- fail({
94
- command: 'create-app',
95
- error: message,
96
- exitCode
97
- });
98
- }
99
- export async function createApp(nameArg, commandOptions = {}) {
100
- const isJson = !!commandOptions.json;
101
- setJsonMode(isJson);
102
- const input = { ...commandOptions, name: nameArg ?? commandOptions.name };
103
- try {
104
- validateCliInput(input);
105
- const skipPrompt = !!(input.yes || input.json);
106
- let options;
107
- if (skipPrompt) {
108
- options = resolveNonInteractiveOptions(input);
109
- }
110
- else {
111
- const answers = await prompt(questions, initialAnswers(input));
112
- options = toGenerateOptions(answers);
113
- }
114
- assertTargetDirectoryFree(options.name);
115
- generateApp(options);
116
- if (isJson) {
117
- emitCreateAppJson(options);
118
- }
119
- }
120
- catch (error) {
121
- if (isJson) {
122
- failCreateApp(error);
123
- }
124
- throw error;
125
- }
126
- }
1
+ import { resolve } from 'node:path';
2
+ import inquirer from 'inquirer';
3
+ import { ExitCode } from '../common/constant.js';
4
+ import { generateApp } from '../common/generate-app.js';
5
+ import { fail, logWarn, sendJson, setJsonMode } from '../common/output.js';
6
+ import { findWorkspaceRoot } from '../common/project-layout.js';
7
+ import { assertTargetDirectoryFree, CreateAppError, DEFAULT_LIB_FORMATS, parseFormatsFlag, resolveNonInteractiveOptions, resolvePackageName, validateCliInput } from './create-app-options.js';
8
+ const prompt = inquirer.createPromptModule();
9
+ const questions = [
10
+ {
11
+ type: 'input',
12
+ name: 'name',
13
+ message: 'What is your project name?',
14
+ default: 'my-project'
15
+ },
16
+ {
17
+ type: 'list',
18
+ name: 'type',
19
+ message: 'What type of project is this?',
20
+ choices: ['app', 'lib']
21
+ },
22
+ {
23
+ type: 'list',
24
+ name: 'platform',
25
+ message: 'What platform of project is this?',
26
+ choices: ['web', 'mobile'],
27
+ when: (response) => response.type === 'app'
28
+ },
29
+ {
30
+ type: 'checkbox',
31
+ name: 'formats',
32
+ message: 'What output format of project is this?',
33
+ choices: ['es', 'cjs', 'umd', 'systemjs'],
34
+ default: [...DEFAULT_LIB_FORMATS],
35
+ when: (response) => response.type === 'lib'
36
+ },
37
+ {
38
+ type: 'list',
39
+ name: 'format',
40
+ message: 'What output format of project is this?',
41
+ choices: ['es', 'umd', 'systemjs'],
42
+ default: 'es',
43
+ when: (response) => response.type === 'app'
44
+ }
45
+ ];
46
+ function toGenerateOptions(answers) {
47
+ const packageName = resolvePackageName(answers.name);
48
+ if (answers.type === 'lib') {
49
+ return { name: answers.name, packageName, type: 'lib', formats: answers.formats };
50
+ }
51
+ return {
52
+ name: answers.name,
53
+ packageName,
54
+ type: 'app',
55
+ platform: answers.platform,
56
+ format: answers.format
57
+ };
58
+ }
59
+ function initialAnswers(input) {
60
+ const initial = {};
61
+ if (input.name) {
62
+ initial.name = input.name;
63
+ }
64
+ if (input.type) {
65
+ initial.type = input.type;
66
+ }
67
+ if (input.platform) {
68
+ initial.platform = input.platform;
69
+ }
70
+ if (input.format) {
71
+ initial.format = input.format;
72
+ }
73
+ if (input.formats !== undefined) {
74
+ initial.formats = parseFormatsFlag(input.formats);
75
+ }
76
+ return initial;
77
+ }
78
+ function emitCreateAppJson(options) {
79
+ sendJson({
80
+ command: 'create-app',
81
+ ok: true,
82
+ name: options.name,
83
+ ...(options.packageName ? { packageName: options.packageName } : {}),
84
+ type: options.type,
85
+ ...(options.platform ? { platform: options.platform } : {}),
86
+ ...(options.format ? { format: options.format } : {}),
87
+ ...(options.formats ? { formats: options.formats } : {}),
88
+ target: resolve(process.cwd(), options.name)
89
+ });
90
+ }
91
+ function failCreateApp(error) {
92
+ const message = error instanceof Error ? error.message : String(error);
93
+ const exitCode = error instanceof CreateAppError ? error.exitCode : ExitCode.GENERAL_ERROR;
94
+ fail({
95
+ command: 'create-app',
96
+ error: message,
97
+ exitCode
98
+ });
99
+ }
100
+ export async function createApp(nameArg, commandOptions = {}) {
101
+ const isJson = !!commandOptions.json;
102
+ setJsonMode(isJson);
103
+ // 检测到 workspace 时只提示,不改变 create-app 的对外语义(设计文档 §10)
104
+ if (findWorkspaceRoot(process.cwd())) {
105
+ logWarn('检测到当前目录位于 pnpm workspace 内:建议改用 `farris-cli add-app <name>` / `farris-cli add-lib <name>`,由 CLI 负责落盘位置、catalog 改写与校验。');
106
+ }
107
+ const input = { ...commandOptions, name: nameArg ?? commandOptions.name };
108
+ try {
109
+ validateCliInput(input);
110
+ const skipPrompt = !!(input.yes || input.json);
111
+ let options;
112
+ if (skipPrompt) {
113
+ options = resolveNonInteractiveOptions(input);
114
+ }
115
+ else {
116
+ const answers = await prompt(questions, initialAnswers(input));
117
+ options = toGenerateOptions(answers);
118
+ }
119
+ assertTargetDirectoryFree(options.name);
120
+ generateApp(options);
121
+ if (isJson) {
122
+ emitCreateAppJson(options);
123
+ }
124
+ }
125
+ catch (error) {
126
+ if (isJson) {
127
+ failCreateApp(error);
128
+ }
129
+ throw error;
130
+ }
131
+ }
127
132
  //# sourceMappingURL=create-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,33 @@
1
- export function parseCreateArgv(argv) {
2
- const options = {};
3
- let name;
4
- for (let i = 0; i < argv.length; i++) {
5
- const arg = argv[i];
6
- if (arg === '--json') {
7
- options.json = true;
8
- }
9
- else if (arg === '--install') {
10
- options.install = true;
11
- }
12
- else if (arg === '-y' || arg === '--yes') {
13
- options.yes = true;
14
- }
15
- else if (arg === '--no-app') {
16
- options.noApp = true;
17
- }
18
- else if (arg === '--app') {
19
- options.app = argv[++i];
20
- }
21
- else if (arg.startsWith('--app=')) {
22
- options.app = arg.slice('--app='.length);
23
- }
24
- else if (!arg.startsWith('-')) {
25
- name = arg;
26
- }
27
- }
28
- return { name, options };
29
- }
1
+ export function parseCreateArgv(argv) {
2
+ const options = {};
3
+ let name;
4
+ for (let i = 0; i < argv.length; i++) {
5
+ const arg = argv[i];
6
+ if (arg === '--json') {
7
+ options.json = true;
8
+ }
9
+ else if (arg === '--install') {
10
+ options.install = true;
11
+ }
12
+ else if (arg === '--force') {
13
+ options.force = true;
14
+ }
15
+ else if (arg === '-y' || arg === '--yes') {
16
+ options.yes = true;
17
+ }
18
+ else if (arg === '--no-app') {
19
+ options.noApp = true;
20
+ }
21
+ else if (arg === '--app') {
22
+ options.app = argv[++i];
23
+ }
24
+ else if (arg.startsWith('--app=')) {
25
+ options.app = arg.slice('--app='.length);
26
+ }
27
+ else if (!arg.startsWith('-')) {
28
+ name = arg;
29
+ }
30
+ }
31
+ return { name, options };
32
+ }
30
33
  //# sourceMappingURL=create-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-options.js","sourceRoot":"","sources":["../../src/commands/create-options.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,IAAwB,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"create-options.js","sourceRoot":"","sources":["../../src/commands/create-options.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,IAAwB,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,EAAE;YACpB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;SACrB;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE;YAC9B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;SACxB;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE;YAC5B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;YAC1C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;SACpB;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE;YAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE;YAC1B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACzB;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YACnC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1C;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,GAAG,GAAG,CAAC;SACZ;KACF;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}