workspace-manager-cli 1.0.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.
- package/README.md +339 -0
- package/dist/build.d.ts +19 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +384 -0
- package/dist/build.js.map +1 -0
- package/dist/bundler/build-bundler.d.ts +9 -0
- package/dist/bundler/build-bundler.d.ts.map +1 -0
- package/dist/bundler/build-bundler.js +218 -0
- package/dist/bundler/build-bundler.js.map +1 -0
- package/dist/bundler/package-merger.d.ts +21 -0
- package/dist/bundler/package-merger.d.ts.map +1 -0
- package/dist/bundler/package-merger.js +192 -0
- package/dist/bundler/package-merger.js.map +1 -0
- package/dist/bundler/vite-generator.d.ts +14 -0
- package/dist/bundler/vite-generator.d.ts.map +1 -0
- package/dist/bundler/vite-generator.js +186 -0
- package/dist/bundler/vite-generator.js.map +1 -0
- package/dist/config.d.ts +250 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +268 -0
- package/dist/config.js.map +1 -0
- package/dist/copy.d.ts +9 -0
- package/dist/copy.d.ts.map +1 -0
- package/dist/copy.js +56 -0
- package/dist/copy.js.map +1 -0
- package/dist/git.d.ts +76 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +377 -0
- package/dist/git.js.map +1 -0
- package/dist/index-update-base.d.ts +2 -0
- package/dist/index-update-base.d.ts.map +1 -0
- package/dist/index-update-base.js +76 -0
- package/dist/index-update-base.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +626 -0
- package/dist/index.js.map +1 -0
- package/dist/lock.d.ts +39 -0
- package/dist/lock.d.ts.map +1 -0
- package/dist/lock.js +91 -0
- package/dist/lock.js.map +1 -0
- package/dist/logger.d.ts +42 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +90 -0
- package/dist/logger.js.map +1 -0
- package/dist/status.d.ts +23 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +158 -0
- package/dist/status.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "../config.js";
|
|
2
|
+
import { Logger } from "../logger.js";
|
|
3
|
+
export interface PackageJson {
|
|
4
|
+
name?: string;
|
|
5
|
+
version?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
type?: string;
|
|
8
|
+
scripts?: Record<string, string>;
|
|
9
|
+
dependencies?: Record<string, string>;
|
|
10
|
+
devDependencies?: Record<string, string>;
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Merge package.json files from base, core, and custom directories
|
|
15
|
+
*/
|
|
16
|
+
export declare function mergePackageJson(config: ResolvedConfig, logger: Logger): Promise<PackageJson>;
|
|
17
|
+
/**
|
|
18
|
+
* Write merged package.json to project root
|
|
19
|
+
*/
|
|
20
|
+
export declare function writePackageJson(config: ResolvedConfig, logger: Logger): Promise<string>;
|
|
21
|
+
//# sourceMappingURL=package-merger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-merger.d.ts","sourceRoot":"","sources":["../../src/bundler/package-merger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAoBtB;AAqMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAQjB"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { getCorePath, getBasePath } from "../git.js";
|
|
4
|
+
/**
|
|
5
|
+
* Merge package.json files from base, core, and custom directories
|
|
6
|
+
*/
|
|
7
|
+
export async function mergePackageJson(config, logger) {
|
|
8
|
+
const packages = [];
|
|
9
|
+
// Collect package.json files based on project type
|
|
10
|
+
switch (config.projectType) {
|
|
11
|
+
case "core-custom":
|
|
12
|
+
await collectCoreCustomPackages(config, packages, logger);
|
|
13
|
+
break;
|
|
14
|
+
case "base-core":
|
|
15
|
+
await collectBaseCorePackages(config, packages, logger);
|
|
16
|
+
break;
|
|
17
|
+
case "base-core-custom":
|
|
18
|
+
await collectBaseCoreCustomPackages(config, packages, logger);
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
// Merge all package.json files (later ones override earlier ones)
|
|
22
|
+
return mergePackages(packages, config, logger);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Collect packages for core-custom type
|
|
26
|
+
*/
|
|
27
|
+
async function collectCoreCustomPackages(config, packages, logger) {
|
|
28
|
+
const corePath = getCorePath(config);
|
|
29
|
+
// Core package.json
|
|
30
|
+
const corePackagePath = path.join(corePath, "package.json");
|
|
31
|
+
if (await fs.pathExists(corePackagePath)) {
|
|
32
|
+
const pkg = await fs.readJson(corePackagePath);
|
|
33
|
+
packages.push(pkg);
|
|
34
|
+
logger.debug(`Found core package.json: ${corePackagePath}`);
|
|
35
|
+
}
|
|
36
|
+
// Custom package.json (overrides core)
|
|
37
|
+
if (config.customPath) {
|
|
38
|
+
const customPackagePath = path.join(config.customPath, "package.json");
|
|
39
|
+
if (await fs.pathExists(customPackagePath)) {
|
|
40
|
+
const pkg = await fs.readJson(customPackagePath);
|
|
41
|
+
packages.push(pkg);
|
|
42
|
+
logger.debug(`Found custom package.json: ${customPackagePath}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Collect packages for base-core type
|
|
48
|
+
*/
|
|
49
|
+
async function collectBaseCorePackages(config, packages, logger) {
|
|
50
|
+
const basePath = getBasePath(config);
|
|
51
|
+
// Base package.json
|
|
52
|
+
if (basePath) {
|
|
53
|
+
const basePackagePath = path.join(basePath, "package.json");
|
|
54
|
+
if (await fs.pathExists(basePackagePath)) {
|
|
55
|
+
const pkg = await fs.readJson(basePackagePath);
|
|
56
|
+
packages.push(pkg);
|
|
57
|
+
logger.debug(`Found base package.json: ${basePackagePath}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Local core package.json (overrides base)
|
|
61
|
+
if (config.coreLocalPath) {
|
|
62
|
+
const corePackagePath = path.join(config.coreLocalPath, "package.json");
|
|
63
|
+
if (await fs.pathExists(corePackagePath)) {
|
|
64
|
+
const pkg = await fs.readJson(corePackagePath);
|
|
65
|
+
packages.push(pkg);
|
|
66
|
+
logger.debug(`Found core package.json: ${corePackagePath}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Collect packages for base-core-custom type
|
|
72
|
+
*/
|
|
73
|
+
async function collectBaseCoreCustomPackages(config, packages, logger) {
|
|
74
|
+
const basePath = getBasePath(config);
|
|
75
|
+
const corePath = getCorePath(config);
|
|
76
|
+
// Layer 1: Base
|
|
77
|
+
if (basePath) {
|
|
78
|
+
const basePackagePath = path.join(basePath, "package.json");
|
|
79
|
+
if (await fs.pathExists(basePackagePath)) {
|
|
80
|
+
const pkg = await fs.readJson(basePackagePath);
|
|
81
|
+
packages.push(pkg);
|
|
82
|
+
logger.debug(`Found base package.json: ${basePackagePath}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Layer 2: Core
|
|
86
|
+
const corePackagePath = path.join(corePath, "package.json");
|
|
87
|
+
if (await fs.pathExists(corePackagePath)) {
|
|
88
|
+
const pkg = await fs.readJson(corePackagePath);
|
|
89
|
+
packages.push(pkg);
|
|
90
|
+
logger.debug(`Found core package.json: ${corePackagePath}`);
|
|
91
|
+
}
|
|
92
|
+
// Layer 3: Custom
|
|
93
|
+
if (config.customPath) {
|
|
94
|
+
const customPackagePath = path.join(config.customPath, "package.json");
|
|
95
|
+
if (await fs.pathExists(customPackagePath)) {
|
|
96
|
+
const pkg = await fs.readJson(customPackagePath);
|
|
97
|
+
packages.push(pkg);
|
|
98
|
+
logger.debug(`Found custom package.json: ${customPackagePath}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Merge multiple package.json objects
|
|
104
|
+
*/
|
|
105
|
+
function mergePackages(packages, config, logger) {
|
|
106
|
+
if (packages.length === 0) {
|
|
107
|
+
logger.warn("No package.json files found to merge");
|
|
108
|
+
return createDefaultPackage(config);
|
|
109
|
+
}
|
|
110
|
+
const merged = {
|
|
111
|
+
name: config.projectRoot.split(path.sep).pop() || "workspace-app",
|
|
112
|
+
version: "1.0.0",
|
|
113
|
+
type: "module",
|
|
114
|
+
scripts: {},
|
|
115
|
+
dependencies: {},
|
|
116
|
+
devDependencies: {},
|
|
117
|
+
};
|
|
118
|
+
// Merge each package in order (later packages override earlier ones)
|
|
119
|
+
for (const pkg of packages) {
|
|
120
|
+
// Merge dependencies
|
|
121
|
+
if (pkg.dependencies) {
|
|
122
|
+
Object.assign(merged.dependencies, pkg.dependencies);
|
|
123
|
+
}
|
|
124
|
+
// Merge devDependencies
|
|
125
|
+
if (pkg.devDependencies) {
|
|
126
|
+
Object.assign(merged.devDependencies, pkg.devDependencies);
|
|
127
|
+
}
|
|
128
|
+
// Merge scripts (later scripts override earlier ones)
|
|
129
|
+
if (pkg.scripts) {
|
|
130
|
+
Object.assign(merged.scripts, pkg.scripts);
|
|
131
|
+
}
|
|
132
|
+
// Copy other top-level fields from last package
|
|
133
|
+
if (pkg.name && packages.indexOf(pkg) === packages.length - 1) {
|
|
134
|
+
merged.description = pkg.description;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Add bundler-specific scripts
|
|
138
|
+
merged.scripts = {
|
|
139
|
+
...merged.scripts,
|
|
140
|
+
"dev": "vite",
|
|
141
|
+
"build": "vite build",
|
|
142
|
+
"preview": "vite preview",
|
|
143
|
+
};
|
|
144
|
+
// Ensure Vite and React plugin are in devDependencies
|
|
145
|
+
if (!merged.devDependencies["vite"]) {
|
|
146
|
+
merged.devDependencies["vite"] = "^5.0.0";
|
|
147
|
+
}
|
|
148
|
+
if (!merged.devDependencies["@vitejs/plugin-react"]) {
|
|
149
|
+
merged.devDependencies["@vitejs/plugin-react"] = "^4.2.0";
|
|
150
|
+
}
|
|
151
|
+
logger.info(`Merged ${packages.length} package.json files`);
|
|
152
|
+
logger.debug(`Total dependencies: ${Object.keys(merged.dependencies).length}`);
|
|
153
|
+
logger.debug(`Total devDependencies: ${Object.keys(merged.devDependencies).length}`);
|
|
154
|
+
return merged;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Create a default package.json if none found
|
|
158
|
+
*/
|
|
159
|
+
function createDefaultPackage(config) {
|
|
160
|
+
return {
|
|
161
|
+
name: config.projectRoot.split(path.sep).pop() || "workspace-app",
|
|
162
|
+
version: "1.0.0",
|
|
163
|
+
type: "module",
|
|
164
|
+
scripts: {
|
|
165
|
+
"dev": "vite",
|
|
166
|
+
"build": "vite build",
|
|
167
|
+
"preview": "vite preview",
|
|
168
|
+
},
|
|
169
|
+
dependencies: {
|
|
170
|
+
"react": "^18.2.0",
|
|
171
|
+
"react-dom": "^18.2.0",
|
|
172
|
+
},
|
|
173
|
+
devDependencies: {
|
|
174
|
+
"vite": "^5.0.0",
|
|
175
|
+
"@vitejs/plugin-react": "^4.2.0",
|
|
176
|
+
"typescript": "^5.3.0",
|
|
177
|
+
"@types/react": "^18.2.0",
|
|
178
|
+
"@types/react-dom": "^18.2.0",
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Write merged package.json to project root
|
|
184
|
+
*/
|
|
185
|
+
export async function writePackageJson(config, logger) {
|
|
186
|
+
const merged = await mergePackageJson(config, logger);
|
|
187
|
+
const packagePath = path.join(config.projectRoot, "package.json");
|
|
188
|
+
await fs.writeJson(packagePath, merged, { spaces: 2 });
|
|
189
|
+
logger.success(`Generated package.json at ${packagePath}`);
|
|
190
|
+
return packagePath;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=package-merger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-merger.js","sourceRoot":"","sources":["../../src/bundler/package-merger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "../config.js";
|
|
2
|
+
import { Logger } from "../logger.js";
|
|
3
|
+
export interface ViteAliasConfig {
|
|
4
|
+
[key: string]: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Generate Vite configuration with proper module resolution aliases
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateViteConfig(config: ResolvedConfig, logger: Logger): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Write Vite config to project root
|
|
12
|
+
*/
|
|
13
|
+
export declare function writeViteConfig(config: ResolvedConfig, logger: Logger): Promise<string>;
|
|
14
|
+
//# sourceMappingURL=vite-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-generator.d.ts","sourceRoot":"","sources":["../../src/bundler/vite-generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAqKD;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAQjB"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { getCorePath, getBasePath } from "../git.js";
|
|
4
|
+
/**
|
|
5
|
+
* Generate Vite configuration with proper module resolution aliases
|
|
6
|
+
*/
|
|
7
|
+
export async function generateViteConfig(config, logger) {
|
|
8
|
+
const aliases = {};
|
|
9
|
+
// Build alias map based on project type
|
|
10
|
+
switch (config.projectType) {
|
|
11
|
+
case "core-custom":
|
|
12
|
+
await buildCoreCustomAliases(config, aliases, logger);
|
|
13
|
+
break;
|
|
14
|
+
case "base-core":
|
|
15
|
+
await buildBaseCoreAliases(config, aliases, logger);
|
|
16
|
+
break;
|
|
17
|
+
case "base-core-custom":
|
|
18
|
+
await buildBaseCoreCustomAliases(config, aliases, logger);
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
// Generate Vite config file content
|
|
22
|
+
const configContent = `import { defineConfig } from 'vite'
|
|
23
|
+
import react from '@vitejs/plugin-react'
|
|
24
|
+
import path from 'path'
|
|
25
|
+
|
|
26
|
+
// Auto-generated by workspace-cli in bundler mode
|
|
27
|
+
// Edit workspace.config.json to regenerate
|
|
28
|
+
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
plugins: [react()],
|
|
31
|
+
resolve: {
|
|
32
|
+
alias: ${JSON.stringify(aliases, null, 6).replace(/"([^"]+)":/g, "'$1':")}
|
|
33
|
+
},
|
|
34
|
+
server: {
|
|
35
|
+
port: 3000,
|
|
36
|
+
open: true
|
|
37
|
+
},
|
|
38
|
+
build: {
|
|
39
|
+
outDir: 'dist',
|
|
40
|
+
sourcemap: true
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
`;
|
|
44
|
+
return configContent;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build aliases for core-custom type
|
|
48
|
+
*/
|
|
49
|
+
async function buildCoreCustomAliases(config, aliases, logger) {
|
|
50
|
+
const corePath = getCorePath(config);
|
|
51
|
+
// Determine core source path (with fallback logic)
|
|
52
|
+
let coreSrcPath;
|
|
53
|
+
if (config.coreSrcPath) {
|
|
54
|
+
coreSrcPath = config.coreSrcPath;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
coreSrcPath = path.join(corePath, "src", "core");
|
|
58
|
+
// Check for nested structure
|
|
59
|
+
if (!(await fs.pathExists(coreSrcPath)) && config.core?.name) {
|
|
60
|
+
const altNestedSrc = path.join(corePath, config.core.name, "src", "core");
|
|
61
|
+
const altRoot = path.join(corePath, config.core.name);
|
|
62
|
+
if (await fs.pathExists(altNestedSrc)) {
|
|
63
|
+
coreSrcPath = altNestedSrc;
|
|
64
|
+
}
|
|
65
|
+
else if (await fs.pathExists(altRoot)) {
|
|
66
|
+
coreSrcPath = altRoot;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Core aliases (absolute paths for Vite)
|
|
71
|
+
aliases['@core'] = coreSrcPath;
|
|
72
|
+
aliases['core'] = coreSrcPath;
|
|
73
|
+
// Common core subdirectories
|
|
74
|
+
const coreSubdirs = ['components', 'etsApis', 'layouts', 'store', 'shared', 'server'];
|
|
75
|
+
for (const subdir of coreSubdirs) {
|
|
76
|
+
const subdirPath = path.join(coreSrcPath, subdir);
|
|
77
|
+
if (await fs.pathExists(subdirPath)) {
|
|
78
|
+
aliases[`core/${subdir}`] = subdirPath;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Custom overlay (highest priority)
|
|
82
|
+
if (config.customPath && await fs.pathExists(config.customPath)) {
|
|
83
|
+
aliases['@custom'] = config.customPath;
|
|
84
|
+
aliases['custom'] = config.customPath;
|
|
85
|
+
}
|
|
86
|
+
logger.debug(`Generated ${Object.keys(aliases).length} Vite aliases for core-custom`);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Build aliases for base-core type
|
|
90
|
+
*/
|
|
91
|
+
async function buildBaseCoreAliases(config, aliases, logger) {
|
|
92
|
+
const basePath = getBasePath(config);
|
|
93
|
+
if (!basePath) {
|
|
94
|
+
throw new Error("Base path not configured for base-core type");
|
|
95
|
+
}
|
|
96
|
+
// Base aliases
|
|
97
|
+
aliases['@base'] = basePath;
|
|
98
|
+
// Detect common base subdirectories
|
|
99
|
+
const baseSubdirs = ['components', 'utils', 'hooks', 'types', 'store', 'resources'];
|
|
100
|
+
for (const subdir of baseSubdirs) {
|
|
101
|
+
const subdirPath = path.join(basePath, subdir);
|
|
102
|
+
if (await fs.pathExists(subdirPath)) {
|
|
103
|
+
aliases[subdir] = subdirPath;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Look for main entry point
|
|
107
|
+
const mainPath = path.join(basePath, 'main.ts');
|
|
108
|
+
const mainIndexPath = path.join(basePath, 'main', 'index.ts');
|
|
109
|
+
if (await fs.pathExists(mainPath)) {
|
|
110
|
+
aliases['main'] = mainPath;
|
|
111
|
+
}
|
|
112
|
+
else if (await fs.pathExists(mainIndexPath)) {
|
|
113
|
+
aliases['main'] = path.join(basePath, 'main');
|
|
114
|
+
}
|
|
115
|
+
// Local core overlays base (higher priority)
|
|
116
|
+
if (config.coreLocalPath && await fs.pathExists(config.coreLocalPath)) {
|
|
117
|
+
aliases['@core'] = config.coreLocalPath;
|
|
118
|
+
aliases['core'] = config.coreLocalPath;
|
|
119
|
+
}
|
|
120
|
+
logger.debug(`Generated ${Object.keys(aliases).length} Vite aliases for base-core`);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Build aliases for base-core-custom type
|
|
124
|
+
*/
|
|
125
|
+
async function buildBaseCoreCustomAliases(config, aliases, logger) {
|
|
126
|
+
const basePath = getBasePath(config);
|
|
127
|
+
const corePath = getCorePath(config);
|
|
128
|
+
if (!basePath) {
|
|
129
|
+
throw new Error("Base path not configured for base-core-custom type");
|
|
130
|
+
}
|
|
131
|
+
// Layer 1: Base (lowest priority)
|
|
132
|
+
aliases['@base'] = basePath;
|
|
133
|
+
const baseSubdirs = ['components', 'utils', 'hooks', 'types', 'store', 'resources'];
|
|
134
|
+
for (const subdir of baseSubdirs) {
|
|
135
|
+
const subdirPath = path.join(basePath, subdir);
|
|
136
|
+
if (await fs.pathExists(subdirPath)) {
|
|
137
|
+
aliases[subdir] = subdirPath;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Layer 2: Core (overrides base)
|
|
141
|
+
let coreSrcPath;
|
|
142
|
+
if (config.coreSrcPath) {
|
|
143
|
+
coreSrcPath = config.coreSrcPath;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
coreSrcPath = path.join(corePath, "src", "core");
|
|
147
|
+
if (!(await fs.pathExists(coreSrcPath)) && config.core?.name) {
|
|
148
|
+
const altNestedSrc = path.join(corePath, config.core.name, "src", "core");
|
|
149
|
+
const altRoot = path.join(corePath, config.core.name);
|
|
150
|
+
if (await fs.pathExists(altNestedSrc)) {
|
|
151
|
+
coreSrcPath = altNestedSrc;
|
|
152
|
+
}
|
|
153
|
+
else if (await fs.pathExists(altRoot)) {
|
|
154
|
+
coreSrcPath = altRoot;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
aliases['@core'] = coreSrcPath;
|
|
159
|
+
aliases['core'] = coreSrcPath;
|
|
160
|
+
// Core subdirectories can override base
|
|
161
|
+
const coreSubdirs = ['components', 'etsApis', 'layouts', 'store', 'shared', 'server'];
|
|
162
|
+
for (const subdir of coreSubdirs) {
|
|
163
|
+
const subdirPath = path.join(coreSrcPath, subdir);
|
|
164
|
+
if (await fs.pathExists(subdirPath)) {
|
|
165
|
+
// Override base aliases if they exist
|
|
166
|
+
aliases[`core/${subdir}`] = subdirPath;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Layer 3: Custom (highest priority - overrides everything)
|
|
170
|
+
if (config.customPath && await fs.pathExists(config.customPath)) {
|
|
171
|
+
aliases['@custom'] = config.customPath;
|
|
172
|
+
aliases['custom'] = config.customPath;
|
|
173
|
+
}
|
|
174
|
+
logger.debug(`Generated ${Object.keys(aliases).length} Vite aliases for base-core-custom`);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Write Vite config to project root
|
|
178
|
+
*/
|
|
179
|
+
export async function writeViteConfig(config, logger) {
|
|
180
|
+
const viteConfigPath = path.join(config.projectRoot, "vite.config.ts");
|
|
181
|
+
const configContent = await generateViteConfig(config, logger);
|
|
182
|
+
await fs.writeFile(viteConfigPath, configContent, "utf-8");
|
|
183
|
+
logger.success(`Generated Vite config at ${viteConfigPath}`);
|
|
184
|
+
return viteConfigPath;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=vite-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-generator.js","sourceRoot":"","sources":["../../src/bundler/vite-generator.ts"],"names":[],"mappings":"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"}
|