@magneticjs/cli 0.1.4 → 0.1.6
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/dist/cli.js +2 -28
- package/package.json +3 -3
- package/scripts/install-server.js +1 -1
- package/src/bundler.ts +2 -46
- package/wasm/transport.wasm +0 -0
package/dist/cli.js
CHANGED
|
@@ -148,33 +148,8 @@ function generateBridge(scan) {
|
|
|
148
148
|
|
|
149
149
|
// src/bundler.ts
|
|
150
150
|
import { build } from "esbuild";
|
|
151
|
-
import { join as join2
|
|
152
|
-
import { mkdirSync, existsSync as existsSync2, statSync as statSync2, readdirSync as readdirSync2, readFileSync as readFileSync2
|
|
153
|
-
import { createRequire } from "node:module";
|
|
154
|
-
function copyTransportWasm(appDir, monorepoRoot) {
|
|
155
|
-
const publicDir = join2(appDir, "public");
|
|
156
|
-
const dest = join2(publicDir, "transport.wasm");
|
|
157
|
-
if (existsSync2(dest)) return true;
|
|
158
|
-
const candidates = [];
|
|
159
|
-
if (monorepoRoot) {
|
|
160
|
-
candidates.push(join2(monorepoRoot, "js/packages/magnetic-server/wasm/transport.wasm"));
|
|
161
|
-
}
|
|
162
|
-
try {
|
|
163
|
-
const require2 = createRequire(join2(appDir, "package.json"));
|
|
164
|
-
const serverPkg = require2.resolve("@magneticjs/server");
|
|
165
|
-
candidates.push(join2(dirname2(serverPkg), "..", "wasm", "transport.wasm"));
|
|
166
|
-
} catch {
|
|
167
|
-
}
|
|
168
|
-
candidates.push(join2(import.meta.dirname || __dirname, "..", "wasm", "transport.wasm"));
|
|
169
|
-
for (const src of candidates) {
|
|
170
|
-
if (existsSync2(src)) {
|
|
171
|
-
mkdirSync(publicDir, { recursive: true });
|
|
172
|
-
copyFileSync(src, dest);
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
151
|
+
import { join as join2 } from "node:path";
|
|
152
|
+
import { mkdirSync, existsSync as existsSync2, statSync as statSync2, readdirSync as readdirSync2, readFileSync as readFileSync2 } from "node:fs";
|
|
178
153
|
async function bundleApp(opts) {
|
|
179
154
|
const outDir = opts.outDir || join2(opts.appDir, "dist");
|
|
180
155
|
const outFile = opts.outFile || "app.js";
|
|
@@ -182,7 +157,6 @@ async function bundleApp(opts) {
|
|
|
182
157
|
if (!existsSync2(outDir)) {
|
|
183
158
|
mkdirSync(outDir, { recursive: true });
|
|
184
159
|
}
|
|
185
|
-
copyTransportWasm(opts.appDir, opts.monorepoRoot);
|
|
186
160
|
const alias = {};
|
|
187
161
|
if (opts.monorepoRoot) {
|
|
188
162
|
const serverPkg = join2(opts.monorepoRoot, "js/packages/magnetic-server/src");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magneticjs/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Magnetic CLI — build, dev, and deploy server-driven UI apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
"dev": "tsx src/cli.ts",
|
|
12
12
|
"postinstall": "node scripts/install-server.js || true"
|
|
13
13
|
},
|
|
14
|
-
"files": ["dist", "src", "scripts"
|
|
14
|
+
"files": ["dist", "src", "scripts"],
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@magneticjs/server": "^0.1.
|
|
19
|
+
"@magneticjs/server": "^0.1.3",
|
|
20
20
|
"esbuild": "^0.27.3"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
@@ -28,7 +28,7 @@ const versionFile = join(binDir, '.version');
|
|
|
28
28
|
|
|
29
29
|
// Server binary version — decoupled from npm package version.
|
|
30
30
|
// Only bump this when a new binary is uploaded to GitHub Releases.
|
|
31
|
-
const SERVER_VERSION = '0.
|
|
31
|
+
const SERVER_VERSION = '0.2.0';
|
|
32
32
|
|
|
33
33
|
// Check if installed binary matches current server version
|
|
34
34
|
if (existsSync(binPath) && existsSync(versionFile)) {
|
package/src/bundler.ts
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
// Takes generated bridge code and bundles it into an IIFE for V8
|
|
3
3
|
|
|
4
4
|
import { build } from 'esbuild';
|
|
5
|
-
import { join, resolve
|
|
6
|
-
import { mkdirSync, existsSync,
|
|
7
|
-
import { createRequire } from 'node:module';
|
|
5
|
+
import { join, resolve } from 'node:path';
|
|
6
|
+
import { mkdirSync, existsSync, statSync, readdirSync, readFileSync } from 'node:fs';
|
|
8
7
|
|
|
9
8
|
export interface BundleOptions {
|
|
10
9
|
/** Absolute path to the app directory */
|
|
@@ -26,46 +25,6 @@ export interface BundleResult {
|
|
|
26
25
|
sizeBytes: number;
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
/**
|
|
30
|
-
* Copy transport.wasm into the app's public/ directory.
|
|
31
|
-
* Looks in @magneticjs/server/wasm/ (npm) or monorepo path.
|
|
32
|
-
*/
|
|
33
|
-
export function copyTransportWasm(appDir: string, monorepoRoot?: string): boolean {
|
|
34
|
-
const publicDir = join(appDir, 'public');
|
|
35
|
-
const dest = join(publicDir, 'transport.wasm');
|
|
36
|
-
|
|
37
|
-
// Already there — skip
|
|
38
|
-
if (existsSync(dest)) return true;
|
|
39
|
-
|
|
40
|
-
// Candidate locations for the WASM file
|
|
41
|
-
const candidates: string[] = [];
|
|
42
|
-
|
|
43
|
-
// Monorepo path
|
|
44
|
-
if (monorepoRoot) {
|
|
45
|
-
candidates.push(join(monorepoRoot, 'js/packages/magnetic-server/wasm/transport.wasm'));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// npm-installed @magneticjs/server
|
|
49
|
-
try {
|
|
50
|
-
const require = createRequire(join(appDir, 'package.json'));
|
|
51
|
-
const serverPkg = require.resolve('@magneticjs/server');
|
|
52
|
-
candidates.push(join(dirname(serverPkg), '..', 'wasm', 'transport.wasm'));
|
|
53
|
-
} catch {}
|
|
54
|
-
|
|
55
|
-
// CLI's own bundled copy (sibling to dist/)
|
|
56
|
-
candidates.push(join(import.meta.dirname || __dirname, '..', 'wasm', 'transport.wasm'));
|
|
57
|
-
|
|
58
|
-
for (const src of candidates) {
|
|
59
|
-
if (existsSync(src)) {
|
|
60
|
-
mkdirSync(publicDir, { recursive: true });
|
|
61
|
-
copyFileSync(src, dest);
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
28
|
/**
|
|
70
29
|
* Bundle the generated bridge code into an IIFE for V8 consumption.
|
|
71
30
|
* Uses esbuild with stdin so no temp file is needed.
|
|
@@ -79,9 +38,6 @@ export async function bundleApp(opts: BundleOptions): Promise<BundleResult> {
|
|
|
79
38
|
mkdirSync(outDir, { recursive: true });
|
|
80
39
|
}
|
|
81
40
|
|
|
82
|
-
// Ensure transport.wasm is in public/
|
|
83
|
-
copyTransportWasm(opts.appDir, opts.monorepoRoot);
|
|
84
|
-
|
|
85
41
|
// Resolve @magneticjs/server — in monorepo use actual path, otherwise npm package
|
|
86
42
|
const alias: Record<string, string> = {};
|
|
87
43
|
if (opts.monorepoRoot) {
|
package/wasm/transport.wasm
DELETED
|
Binary file
|