@neutron-build/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.
- package/LICENSE +21 -0
- package/README.md +27 -0
- package/dist/commands/build.d.ts +2 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +1251 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/deploy-check.d.ts +2 -0
- package/dist/commands/deploy-check.d.ts.map +1 -0
- package/dist/commands/deploy-check.js +157 -0
- package/dist/commands/deploy-check.js.map +1 -0
- package/dist/commands/dev.d.ts +2 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +111 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/preview.d.ts +2 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +223 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/release-check.d.ts +2 -0
- package/dist/commands/release-check.d.ts.map +1 -0
- package/dist/commands/release-check.js +9 -0
- package/dist/commands/release-check.js.map +1 -0
- package/dist/commands/start.d.ts +4 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +72 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/worker.d.ts +2 -0
- package/dist/commands/worker.d.ts.map +1 -0
- package/dist/commands/worker.js +178 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +685 -0
- package/dist/index.test.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { createServer, startServer } from "@neutron-build/core/server";
|
|
4
|
+
import { prepareContentCollections, resolveRuntime } from "@neutron-build/core";
|
|
5
|
+
import { loadConfigFromFile, loadEnv } from "vite";
|
|
6
|
+
export async function start() {
|
|
7
|
+
const cwd = process.cwd();
|
|
8
|
+
applyEnv(cwd, "production");
|
|
9
|
+
const neutronConfig = await loadNeutronConfig(cwd);
|
|
10
|
+
await prepareContentCollections({
|
|
11
|
+
rootDir: cwd,
|
|
12
|
+
writeManifest: false,
|
|
13
|
+
writeTypes: false,
|
|
14
|
+
});
|
|
15
|
+
// Parse CLI args
|
|
16
|
+
const args = process.argv.slice(3);
|
|
17
|
+
let port = neutronConfig.server?.port || 3000;
|
|
18
|
+
let host = neutronConfig.server?.host || "0.0.0.0";
|
|
19
|
+
for (let i = 0; i < args.length; i++) {
|
|
20
|
+
if (args[i] === "--port" && args[i + 1]) {
|
|
21
|
+
port = parseInt(args[i + 1], 10);
|
|
22
|
+
i++;
|
|
23
|
+
}
|
|
24
|
+
else if (args[i].startsWith("--port=")) {
|
|
25
|
+
port = parseInt(args[i].split("=")[1], 10);
|
|
26
|
+
}
|
|
27
|
+
else if (args[i] === "--host" && args[i + 1]) {
|
|
28
|
+
host = args[i + 1];
|
|
29
|
+
i++;
|
|
30
|
+
}
|
|
31
|
+
else if (args[i].startsWith("--host=")) {
|
|
32
|
+
host = args[i].split("=")[1];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
await startServer({
|
|
36
|
+
...neutronConfig.server,
|
|
37
|
+
routes: neutronConfig.routes,
|
|
38
|
+
runtime: resolveRuntime(neutronConfig),
|
|
39
|
+
port,
|
|
40
|
+
host,
|
|
41
|
+
rootDir: cwd,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export { createServer };
|
|
45
|
+
async function loadNeutronConfig(cwd) {
|
|
46
|
+
const candidates = [
|
|
47
|
+
"neutron.config.ts",
|
|
48
|
+
"neutron.config.js",
|
|
49
|
+
"neutron.config.mjs",
|
|
50
|
+
"neutron.config.cjs",
|
|
51
|
+
];
|
|
52
|
+
for (const file of candidates) {
|
|
53
|
+
const fullPath = path.resolve(cwd, file);
|
|
54
|
+
if (!fs.existsSync(fullPath)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const loaded = await loadConfigFromFile({ command: "serve", mode: "production" }, fullPath, cwd);
|
|
58
|
+
if (loaded?.config) {
|
|
59
|
+
return loaded.config;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return {};
|
|
63
|
+
}
|
|
64
|
+
function applyEnv(cwd, mode) {
|
|
65
|
+
const env = loadEnv(mode, cwd, "");
|
|
66
|
+
for (const [key, value] of Object.entries(env)) {
|
|
67
|
+
if (process.env[key] === undefined) {
|
|
68
|
+
process.env[key] = value;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"AA0CA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAsG5C"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { createServer, loadConfigFromFile, loadEnv, mergeConfig, } from "vite";
|
|
4
|
+
import { resolveRuntime, resolveRuntimeAliases, resolveRuntimeNoExternal, } from "@neutron-build/core";
|
|
5
|
+
const WORKER_ENTRY_CANDIDATES = [
|
|
6
|
+
"src/worker.ts",
|
|
7
|
+
"src/worker.tsx",
|
|
8
|
+
"src/worker/index.ts",
|
|
9
|
+
"src/worker/index.tsx",
|
|
10
|
+
"worker.ts",
|
|
11
|
+
"worker.js",
|
|
12
|
+
];
|
|
13
|
+
export async function worker() {
|
|
14
|
+
const cwd = process.cwd();
|
|
15
|
+
const args = parseWorkerArgs(process.argv.slice(3));
|
|
16
|
+
applyEnv(cwd, args.mode);
|
|
17
|
+
const neutronConfig = await loadNeutronConfig(cwd, args.mode);
|
|
18
|
+
const entryPath = resolveWorkerEntry(cwd, args.entry, neutronConfig.worker?.entry);
|
|
19
|
+
if (!entryPath) {
|
|
20
|
+
console.error("Worker entry not found. Provide --entry <path>, set worker.entry in neutron.config, or create src/worker.ts.");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const runtime = resolveRuntime(neutronConfig);
|
|
24
|
+
const runtimeAliases = resolveRuntimeAliases(runtime);
|
|
25
|
+
const runtimeNoExternal = resolveRuntimeNoExternal(runtime);
|
|
26
|
+
const loadedConfig = await loadConfigFromFile({ command: "serve", mode: args.mode }, undefined, cwd);
|
|
27
|
+
const userConfig = loadedConfig?.config || {};
|
|
28
|
+
const viteServer = await createServer(mergeConfig(userConfig, {
|
|
29
|
+
configFile: false,
|
|
30
|
+
root: cwd,
|
|
31
|
+
...(runtimeAliases ? { resolve: { alias: runtimeAliases } } : {}),
|
|
32
|
+
...(runtimeNoExternal.length > 0 ? { ssr: { noExternal: runtimeNoExternal } } : {}),
|
|
33
|
+
server: {
|
|
34
|
+
middlewareMode: true,
|
|
35
|
+
hmr: false,
|
|
36
|
+
ws: false,
|
|
37
|
+
},
|
|
38
|
+
optimizeDeps: {
|
|
39
|
+
disabled: true,
|
|
40
|
+
noDiscovery: true,
|
|
41
|
+
entries: [],
|
|
42
|
+
},
|
|
43
|
+
appType: "custom",
|
|
44
|
+
logLevel: "error",
|
|
45
|
+
}));
|
|
46
|
+
const abortController = new AbortController();
|
|
47
|
+
let teardown;
|
|
48
|
+
let shuttingDown = false;
|
|
49
|
+
const shutdown = async () => {
|
|
50
|
+
if (shuttingDown) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
shuttingDown = true;
|
|
54
|
+
abortController.abort();
|
|
55
|
+
try {
|
|
56
|
+
await teardown?.();
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
await viteServer.close();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
process.on("SIGTERM", () => {
|
|
63
|
+
void shutdown().finally(() => process.exit(0));
|
|
64
|
+
});
|
|
65
|
+
process.on("SIGINT", () => {
|
|
66
|
+
void shutdown().finally(() => process.exit(0));
|
|
67
|
+
});
|
|
68
|
+
try {
|
|
69
|
+
const module = await viteServer.ssrLoadModule(entryPath);
|
|
70
|
+
const run = resolveWorkerRunner(module, entryPath);
|
|
71
|
+
const result = await run({
|
|
72
|
+
mode: args.mode,
|
|
73
|
+
args: args.workerArgs,
|
|
74
|
+
signal: abortController.signal,
|
|
75
|
+
log: (message) => {
|
|
76
|
+
console.log(`[worker] ${message}`);
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
if (typeof result === "function") {
|
|
80
|
+
teardown = result;
|
|
81
|
+
}
|
|
82
|
+
if (args.once) {
|
|
83
|
+
await shutdown();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
console.log(`\n Neutron worker running:\n`);
|
|
87
|
+
console.log(` Entry: ${path.relative(cwd, entryPath)}\n`);
|
|
88
|
+
console.log(` Press Ctrl+C to stop\n`);
|
|
89
|
+
await new Promise(() => {
|
|
90
|
+
// Keep process alive until a shutdown signal is received.
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
await shutdown();
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function resolveWorkerRunner(module, entryPath) {
|
|
99
|
+
const candidate = module.run || module.default;
|
|
100
|
+
if (typeof candidate !== "function") {
|
|
101
|
+
throw new Error(`Worker module "${entryPath}" must export "run" (or default) as a function.`);
|
|
102
|
+
}
|
|
103
|
+
return candidate;
|
|
104
|
+
}
|
|
105
|
+
function parseWorkerArgs(argv) {
|
|
106
|
+
let entry;
|
|
107
|
+
let mode = "development";
|
|
108
|
+
let once = false;
|
|
109
|
+
const passthroughIndex = argv.indexOf("--");
|
|
110
|
+
const workerArgs = passthroughIndex >= 0 ? argv.slice(passthroughIndex + 1) : [];
|
|
111
|
+
const parsedArgs = passthroughIndex >= 0 ? argv.slice(0, passthroughIndex) : argv;
|
|
112
|
+
for (let i = 0; i < parsedArgs.length; i++) {
|
|
113
|
+
const arg = parsedArgs[i];
|
|
114
|
+
if (arg === "--entry" && parsedArgs[i + 1]) {
|
|
115
|
+
entry = parsedArgs[++i];
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (arg.startsWith("--entry=")) {
|
|
119
|
+
entry = arg.split("=")[1];
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (arg === "--mode" && parsedArgs[i + 1]) {
|
|
123
|
+
mode = parsedArgs[++i];
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (arg.startsWith("--mode=")) {
|
|
127
|
+
mode = arg.split("=")[1];
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (arg === "--once") {
|
|
131
|
+
once = true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
entry,
|
|
136
|
+
mode,
|
|
137
|
+
once,
|
|
138
|
+
workerArgs,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function resolveWorkerEntry(cwd, cliEntry, configEntry) {
|
|
142
|
+
const candidates = [cliEntry, configEntry, ...WORKER_ENTRY_CANDIDATES].filter((candidate) => Boolean(candidate));
|
|
143
|
+
for (const candidate of candidates) {
|
|
144
|
+
const absolutePath = path.resolve(cwd, candidate);
|
|
145
|
+
if (fs.existsSync(absolutePath)) {
|
|
146
|
+
return absolutePath;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
async function loadNeutronConfig(cwd, mode) {
|
|
152
|
+
const candidates = [
|
|
153
|
+
"neutron.config.ts",
|
|
154
|
+
"neutron.config.js",
|
|
155
|
+
"neutron.config.mjs",
|
|
156
|
+
"neutron.config.cjs",
|
|
157
|
+
];
|
|
158
|
+
for (const file of candidates) {
|
|
159
|
+
const fullPath = path.resolve(cwd, file);
|
|
160
|
+
if (!fs.existsSync(fullPath)) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
const loaded = await loadConfigFromFile({ command: "serve", mode }, fullPath, cwd);
|
|
164
|
+
if (loaded?.config) {
|
|
165
|
+
return loaded.config;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return {};
|
|
169
|
+
}
|
|
170
|
+
function applyEnv(cwd, mode) {
|
|
171
|
+
const env = loadEnv(mode, cwd, "");
|
|
172
|
+
for (const [key, value] of Object.entries(env)) {
|
|
173
|
+
if (process.env[key] === undefined) {
|
|
174
|
+
process.env[key] = value;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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,65 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { dev } from "./commands/dev.js";
|
|
3
|
+
import { build } from "./commands/build.js";
|
|
4
|
+
import { preview } from "./commands/preview.js";
|
|
5
|
+
import { start } from "./commands/start.js";
|
|
6
|
+
import { deployCheck } from "./commands/deploy-check.js";
|
|
7
|
+
import { worker } from "./commands/worker.js";
|
|
8
|
+
import { releaseCheck } from "./commands/release-check.js";
|
|
9
|
+
const args = process.argv.slice(2);
|
|
10
|
+
const command = args[0];
|
|
11
|
+
async function main() {
|
|
12
|
+
switch (command) {
|
|
13
|
+
case "dev":
|
|
14
|
+
await dev();
|
|
15
|
+
break;
|
|
16
|
+
case "build":
|
|
17
|
+
await build();
|
|
18
|
+
break;
|
|
19
|
+
case "preview":
|
|
20
|
+
await preview();
|
|
21
|
+
break;
|
|
22
|
+
case "start":
|
|
23
|
+
await start();
|
|
24
|
+
break;
|
|
25
|
+
case "deploy-check":
|
|
26
|
+
await deployCheck();
|
|
27
|
+
break;
|
|
28
|
+
case "release-check":
|
|
29
|
+
await releaseCheck();
|
|
30
|
+
break;
|
|
31
|
+
case "worker":
|
|
32
|
+
await worker();
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.log(`Neutron TypeScript CLI
|
|
36
|
+
|
|
37
|
+
Usage:
|
|
38
|
+
neutron-ts dev Start development server
|
|
39
|
+
neutron-ts build Build for production
|
|
40
|
+
--preset vercel|cloudflare|docker|static
|
|
41
|
+
--cloudflare-mode pages|workers
|
|
42
|
+
neutron-ts start Start production server
|
|
43
|
+
neutron-ts preview Preview production build
|
|
44
|
+
neutron-ts release-check
|
|
45
|
+
--preset vercel|cloudflare|docker|static
|
|
46
|
+
--dist dist
|
|
47
|
+
neutron-ts worker Run background worker module
|
|
48
|
+
--entry src/worker.ts
|
|
49
|
+
--mode development|production
|
|
50
|
+
--once
|
|
51
|
+
neutron-ts deploy-check
|
|
52
|
+
--preset vercel|cloudflare|docker|static
|
|
53
|
+
--dist dist
|
|
54
|
+
|
|
55
|
+
NOTE: The global 'neutron' command is the universal CLI.
|
|
56
|
+
TS-specific commands use 'neutron-ts' (or 'npx neutron-ts').
|
|
57
|
+
`);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
main().catch((err) => {
|
|
62
|
+
console.error(err);
|
|
63
|
+
process.exit(1);
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,OAAO;YACV,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,OAAO,EAAE,CAAC;YAChB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,KAAK,EAAE,CAAC;YACd,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,eAAe;YAClB,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,MAAM,EAAE,CAAC;YACf,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBjB,CAAC,CAAC;YACG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
|