@cmmn/tools 2.2.3 → 3.0.0-alpha-4
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/.swcrc +20 -0
- package/dist/bundle/index.js +913 -0
- package/dist/bundle/test.js +32 -0
- package/dist/esm/bin.js +9 -0
- package/dist/esm/bin.js.map +1 -0
- package/dist/esm/bundlers/createBundler.js +9 -0
- package/dist/esm/bundlers/createBundler.js.map +1 -0
- package/dist/esm/bundlers/plugins/minify.js +34 -0
- package/dist/esm/bundlers/plugins/minify.js.map +1 -0
- package/dist/esm/bundlers/plugins/wasm.js +43 -0
- package/dist/esm/bundlers/plugins/wasm.js.map +1 -0
- package/dist/esm/bundlers/rolldown-bundler.js +153 -0
- package/dist/esm/bundlers/rolldown-bundler.js.map +1 -0
- package/dist/esm/bundlers/types.js +3 -0
- package/dist/esm/bundlers/types.js.map +1 -0
- package/dist/esm/bundlers/vite.builder.js +117 -0
- package/dist/esm/bundlers/vite.builder.js.map +1 -0
- package/dist/esm/bundlers/vite.bundler.js +56 -0
- package/dist/esm/bundlers/vite.bundler.js.map +1 -0
- package/dist/esm/commands/bundle.js +102 -0
- package/dist/esm/commands/bundle.js.map +1 -0
- package/dist/esm/commands/cert.js +26 -0
- package/dist/esm/commands/cert.js.map +1 -0
- package/dist/esm/commands/ci.js +14 -0
- package/dist/esm/commands/ci.js.map +1 -0
- package/dist/esm/commands/clean.js +18 -0
- package/dist/esm/commands/clean.js.map +1 -0
- package/dist/esm/commands/compile.js +60 -0
- package/dist/esm/commands/compile.js.map +1 -0
- package/dist/esm/commands/deploy.js +61 -0
- package/dist/esm/commands/deploy.js.map +1 -0
- package/dist/esm/commands/dev.js +37 -0
- package/dist/esm/commands/dev.js.map +1 -0
- package/dist/esm/commands/format.js +44 -0
- package/dist/esm/commands/format.js.map +1 -0
- package/dist/esm/commands/gen.js +36 -0
- package/dist/esm/commands/gen.js.map +1 -0
- package/dist/esm/commands/host.js +21 -0
- package/dist/esm/commands/host.js.map +1 -0
- package/dist/esm/commands/index.js +12 -0
- package/dist/esm/commands/index.js.map +1 -0
- package/dist/esm/commands/lint.js +45 -0
- package/dist/esm/commands/lint.js.map +1 -0
- package/dist/esm/commands/nginx.js +62 -0
- package/dist/esm/commands/nginx.js.map +1 -0
- package/dist/esm/commands/publish.js +37 -0
- package/dist/esm/commands/publish.js.map +1 -0
- package/dist/esm/commands/typings.js +66 -0
- package/dist/esm/commands/typings.js.map +1 -0
- package/dist/esm/commands/version.js +34 -0
- package/dist/esm/commands/version.js.map +1 -0
- package/dist/esm/dev-server/asset-collection.js +18 -0
- package/dist/esm/dev-server/asset-collection.js.map +1 -0
- package/dist/esm/dev-server/bundle.json.builder.js +47 -0
- package/dist/esm/dev-server/bundle.json.builder.js.map +1 -0
- package/dist/esm/dev-server/dependencyServer.js +96 -0
- package/dist/esm/dev-server/dependencyServer.js.map +1 -0
- package/dist/esm/dev-server/dev-server.js +49 -0
- package/dist/esm/dev-server/dev-server.js.map +1 -0
- package/dist/esm/dev-server/plugins/minify.js +34 -0
- package/dist/esm/dev-server/plugins/minify.js.map +1 -0
- package/dist/esm/dev-server/plugins/wasm.js +30 -0
- package/dist/esm/dev-server/plugins/wasm.js.map +1 -0
- package/dist/esm/dev-server/resolver.js +55 -0
- package/dist/esm/dev-server/resolver.js.map +1 -0
- package/dist/esm/dev-server/rolldown-dependency-builder.js +150 -0
- package/dist/esm/dev-server/rolldown-dependency-builder.js.map +1 -0
- package/dist/esm/dev-server/target-runnner.js +72 -0
- package/dist/esm/dev-server/target-runnner.js.map +1 -0
- package/dist/esm/dev-server/target-web-server.js +78 -0
- package/dist/esm/dev-server/target-web-server.js.map +1 -0
- package/dist/esm/dev-server/targetServer.js +29 -0
- package/dist/esm/dev-server/targetServer.js.map +1 -0
- package/dist/esm/dev-server/vite.builder.js +183 -0
- package/dist/esm/dev-server/vite.builder.js.map +1 -0
- package/dist/esm/dev-server/wasm-resolver.js +25 -0
- package/dist/esm/dev-server/wasm-resolver.js.map +1 -0
- package/dist/esm/helpers/fastify-compress.js +26 -0
- package/dist/esm/helpers/fastify-compress.js.map +1 -0
- package/dist/esm/helpers/flags.js +22 -0
- package/dist/esm/helpers/flags.js.map +1 -0
- package/dist/esm/helpers/getProjects.js +49 -0
- package/dist/esm/helpers/getProjects.js.map +1 -0
- package/dist/esm/helpers/getTSConfig.js +32 -0
- package/dist/esm/helpers/getTSConfig.js.map +1 -0
- package/dist/esm/helpers/target.js +230 -0
- package/dist/esm/helpers/target.js.map +1 -0
- package/dist/esm/helpers/terminal.js +117 -0
- package/dist/esm/helpers/terminal.js.map +1 -0
- package/dist/esm/helpers/ts-resolve-plugin.js +139 -0
- package/dist/esm/helpers/ts-resolve-plugin.js.map +1 -0
- package/dist/esm/helpers/watcher.js +35 -0
- package/dist/esm/helpers/watcher.js.map +1 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/model/bundle.js +75 -0
- package/dist/esm/model/bundle.js.map +1 -0
- package/dist/esm/model/flags.js +27 -0
- package/dist/esm/model/flags.js.map +1 -0
- package/dist/esm/model/monorepo.js +74 -0
- package/dist/esm/model/monorepo.js.map +1 -0
- package/dist/esm/model/pack.js +134 -0
- package/dist/esm/model/pack.js.map +1 -0
- package/dist/esm/model/resolver.js +100 -0
- package/dist/esm/model/resolver.js.map +1 -0
- package/dist/esm/model/target.js +111 -0
- package/dist/esm/model/target.js.map +1 -0
- package/dist/esm/servers/bundle-server.js +20 -0
- package/dist/esm/servers/bundle-server.js.map +1 -0
- package/dist/esm/servers/dev-server.js +70 -0
- package/dist/esm/servers/dev-server.js.map +1 -0
- package/dist/esm/servers/pack-server.js +20 -0
- package/dist/esm/servers/pack-server.js.map +1 -0
- package/dist/esm/servers/target-runnner.js +80 -0
- package/dist/esm/servers/target-runnner.js.map +1 -0
- package/dist/esm/servers/vite-dev-server.js +61 -0
- package/dist/esm/servers/vite-dev-server.js.map +1 -0
- package/dist/esm/specs/dependency-builder-specs.js +164 -0
- package/dist/esm/specs/dependency-builder-specs.js.map +1 -0
- package/dist/esm/specs/dev-server.specs.js +73 -0
- package/dist/esm/specs/dev-server.specs.js.map +1 -0
- package/dist/esm/specs/monorepo.specs.js +35 -0
- package/dist/esm/specs/monorepo.specs.js.map +1 -0
- package/dist/esm/specs/resolver.specs.js +57 -0
- package/dist/esm/specs/resolver.specs.js.map +1 -0
- package/dist/esm/specs/rolldown.specs.js +278 -0
- package/dist/esm/specs/rolldown.specs.js.map +1 -0
- package/dist/esm/specs/target-specs.js +108 -0
- package/dist/esm/specs/target-specs.js.map +1 -0
- package/dist/esm/specs/vite-bundler.specs.js +77 -0
- package/dist/esm/specs/vite-bundler.specs.js.map +1 -0
- package/dist/esm/test/test.js +30 -0
- package/dist/esm/test/test.js.map +1 -0
- package/dist/ts.buildinfo +1 -0
- package/dist/typings/bin.d.ts +2 -0
- package/dist/typings/bundlers/plugins/minify.d.ts +6 -0
- package/dist/typings/bundlers/plugins/wasm.d.ts +5 -0
- package/dist/typings/bundlers/rolldown-bundler.d.ts +18 -0
- package/dist/typings/bundlers/types.d.ts +4 -0
- package/dist/typings/bundlers/vite.builder.d.ts +12 -0
- package/dist/typings/bundlers/vite.bundler.d.ts +9 -0
- package/dist/typings/commands/bundle.d.ts +2 -0
- package/dist/typings/commands/cert.d.ts +1 -0
- package/dist/typings/commands/clean.d.ts +2 -0
- package/dist/typings/commands/compile.d.ts +2 -0
- package/dist/typings/commands/dev.d.ts +2 -0
- package/dist/typings/commands/format.d.ts +5 -0
- package/dist/typings/commands/gen.d.ts +1 -0
- package/dist/typings/commands/host.d.ts +1 -0
- package/dist/typings/commands/index.d.ts +10 -0
- package/dist/typings/commands/lint.d.ts +5 -0
- package/dist/typings/commands/nginx.d.ts +6 -0
- package/dist/typings/commands/publish.d.ts +2 -0
- package/dist/typings/commands/typings.d.ts +4 -0
- package/dist/typings/commands/version.d.ts +1 -0
- package/dist/typings/helpers/fastify-compress.d.ts +6 -0
- package/dist/typings/helpers/getTSConfig.d.ts +11 -0
- package/dist/typings/helpers/terminal.d.ts +22 -0
- package/dist/typings/helpers/watcher.d.ts +7 -0
- package/dist/typings/index.d.ts +4 -0
- package/dist/typings/model/bundle.d.ts +34 -0
- package/dist/typings/model/flags.d.ts +15 -0
- package/dist/typings/model/monorepo.d.ts +18 -0
- package/dist/typings/model/pack.d.ts +45 -0
- package/dist/typings/model/resolver.d.ts +38 -0
- package/dist/typings/model/target.d.ts +27 -0
- package/dist/typings/servers/bundle-server.d.ts +10 -0
- package/dist/typings/servers/dev-server.d.ts +16 -0
- package/dist/typings/servers/pack-server.d.ts +9 -0
- package/dist/typings/servers/target-runnner.d.ts +13 -0
- package/dist/typings/servers/vite-dev-server.d.ts +18 -0
- package/dist/typings/specs/dev-server.specs.d.ts +1 -0
- package/dist/typings/specs/monorepo.specs.d.ts +1 -0
- package/dist/typings/specs/resolver.specs.d.ts +1 -0
- package/dist/typings/specs/rolldown.specs.d.ts +1 -0
- package/dist/typings/specs/target-specs.d.ts +1 -0
- package/dist/typings/specs/vite-bundler.specs.d.ts +1 -0
- package/dist/typings/test/test.d.ts +16 -0
- package/{compile → helpers}/tsconfig.json +12 -9
- package/node/hooks-dev.js +72 -0
- package/node/register-dev.js +3 -0
- package/node/register.js +14 -0
- package/package.json +51 -40
- package/readme.md +2 -2
- package/tsconfig.json +14 -0
- package/LICENSE +0 -21
- package/bin.js +0 -21
- package/bundle/bundle.js +0 -46
- package/bundle/esbuild.config.js +0 -178
- package/bundle/getConfigs.js +0 -62
- package/compile/compile.js +0 -53
- package/compile/ts-resolve-plugin.js +0 -235
- package/compile/typings.d.ts +0 -19
- package/gen/component.ts.tpl +0 -16
- package/gen/gen.js +0 -27
- package/gen/style.less.tpl +0 -3
- package/gen/template.ts.tpl +0 -8
- package/helpers/getTSConfig.js +0 -19
- package/serve/readme.md +0 -8
- package/serve/serve.js +0 -109
- package/spawn/index.js +0 -81
- package/test/index.d.ts +0 -18
- package/test/index.js +0 -16
- package/test/jest.config.js +0 -32
- package/test/pathsToModuleNameMapper.js +0 -46
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { Watcher } from "../helpers/watcher.js";
|
|
3
|
+
import { PackServer } from "./pack-server.js";
|
|
4
|
+
import { ChangeEvent } from "../model/pack.js";
|
|
5
|
+
import { createProxyMiddleware } from "http-proxy-middleware";
|
|
6
|
+
export class TargetRunner extends PackServer {
|
|
7
|
+
static{
|
|
8
|
+
this.port = 9010;
|
|
9
|
+
}
|
|
10
|
+
handle(req, reply) {
|
|
11
|
+
return Promise.resolve(undefined);
|
|
12
|
+
}
|
|
13
|
+
async register(app) {
|
|
14
|
+
if (!app.use) await app.register(await import("@fastify/express"));
|
|
15
|
+
const proxy = createProxyMiddleware({
|
|
16
|
+
target: `http://127.0.0.1:${this.port}`,
|
|
17
|
+
changeOrigin: true,
|
|
18
|
+
pathFilter: (path, req)=>{
|
|
19
|
+
return !req['upgrade'];
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const wsProxy = createProxyMiddleware({
|
|
23
|
+
target: `ws://127.0.0.1:${this.port}`,
|
|
24
|
+
changeOrigin: true
|
|
25
|
+
});
|
|
26
|
+
await app.use(this.pack.publicPath, async (req, res, next)=>{
|
|
27
|
+
if (req.url.endsWith('?resolve')) {
|
|
28
|
+
return res.type('application/javascript').send(`export default "${this.pack.publicPath}"`);
|
|
29
|
+
}
|
|
30
|
+
await (this.cp ??= this.runServer());
|
|
31
|
+
proxy(req, res, next);
|
|
32
|
+
});
|
|
33
|
+
app.server.on('upgrade', async (req, socket, head)=>{
|
|
34
|
+
if (req.url?.startsWith(this.pack.publicPath)) {
|
|
35
|
+
await (this.cp ??= this.runServer());
|
|
36
|
+
wsProxy.upgrade(req, socket, head);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
this.pack.log(`proxy to ${this.port}`);
|
|
40
|
+
this.pack.addEventListener('change', async (e)=>{
|
|
41
|
+
const cp = await this.cp;
|
|
42
|
+
if (!cp) return;
|
|
43
|
+
if (cp.connected) cp.disconnect();
|
|
44
|
+
cp.kill();
|
|
45
|
+
this.pack.log(`Stopping due to change...`);
|
|
46
|
+
this.cp = null;
|
|
47
|
+
});
|
|
48
|
+
this.watcher.watchTarget(this.pack);
|
|
49
|
+
this.pack.addEventListener('file', (e)=>{
|
|
50
|
+
this.pack.dispatchEvent(new ChangeEvent({
|
|
51
|
+
type: 'full-reload',
|
|
52
|
+
triggeredBy: e.files
|
|
53
|
+
}, this.pack.name));
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async runServer() {
|
|
57
|
+
this.pack.log('starting...');
|
|
58
|
+
const [command, ...params] = this.pack.packageJson.scripts.run// .replace('@cmmn/tools/import', '@cmmn/tools/import-dev')
|
|
59
|
+
.split(' ');
|
|
60
|
+
const cp = spawn(command, params, {
|
|
61
|
+
env: {
|
|
62
|
+
...process.env,
|
|
63
|
+
PORT: this.port.toString()
|
|
64
|
+
},
|
|
65
|
+
cwd: this.pack.rootDir,
|
|
66
|
+
stdio: 'pipe'
|
|
67
|
+
});
|
|
68
|
+
cp.stderr.pipe(process.stderr);
|
|
69
|
+
cp.stdout.pipe(process.stdout);
|
|
70
|
+
await new Promise((res)=>cp.stdout.on('data', (e)=>{
|
|
71
|
+
if (e?.includes(`http://127.0.0.1:${this.port}`)) res();
|
|
72
|
+
}));
|
|
73
|
+
return cp;
|
|
74
|
+
}
|
|
75
|
+
constructor(...args){
|
|
76
|
+
super(...args), this.port = TargetRunner.port++, this.watcher = new Watcher();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=target-runnner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/mnt/dev/cmmn/tools/servers/target-runnner.ts"],"names":["spawn","Watcher","PackServer","ChangeEvent","createProxyMiddleware","TargetRunner","port","handle","req","reply","Promise","resolve","undefined","register","app","use","proxy","target","changeOrigin","pathFilter","path","wsProxy","pack","publicPath","res","next","url","endsWith","type","send","cp","runServer","server","on","socket","head","startsWith","upgrade","log","addEventListener","e","connected","disconnect","kill","watcher","watchTarget","dispatchEvent","triggeredBy","files","name","command","params","packageJson","scripts","run","split","env","process","PORT","toString","cwd","rootDir","stdio","stderr","pipe","stdout","includes"],"mappings":"AAAA,SAASA,KAAK,QAAO,qBAAqB;AAC1C,SAAQC,OAAO,QAAO,wBAAwB;AAC9C,SAAQC,UAAU,QAAO,mBAAgB;AAEzC,SAAQC,WAAW,QAAwB,mBAAgB;AAE3D,SAAQC,qBAAqB,QAAO,wBAAwB;AAI5D,OAAO,MAAMC,qBAAqBH;;aACvBI,OAAO;;IAOJC,OAAOC,GAAmB,EAAEC,KAAmB,EAAoB;QACzE,OAAOC,QAAQC,OAAO,CAACC;IAC3B;IAEA,MAAMC,SAASC,GAAoB,EAAE;QACjC,IAAI,CAACA,IAAIC,GAAG,EACR,MAAMD,IAAID,QAAQ,CAAC,MAAM,MAAM,CAAC;QACpC,MAAMG,QAAQZ,sBAAyC;YACnDa,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAACX,IAAI,EAAE;YACvCY,cAAc;YACdC,YAAY,CAACC,MAAMZ;gBACf,OAAO,CAACA,GAAG,CAAC,UAAU;YAC1B;QACJ;QACA,MAAMa,UAAUjB,sBAAyC;YACrDa,QAAQ,CAAC,eAAe,EAAE,IAAI,CAACX,IAAI,EAAE;YACrCY,cAAc;QAClB;QACA,MAAMJ,IAAIC,GAAG,CAAC,IAAI,CAACO,IAAI,CAACC,UAAU,EAAE,OAAOf,KAAKgB,KAAKC;YACjD,IAAIjB,IAAIkB,GAAG,CAACC,QAAQ,CAAC,aAAY;gBAC7B,OAAOH,IAAII,IAAI,CAAC,0BAA0BC,IAAI,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAACP,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC;YAC7F;YACA,MAAO,CAAA,IAAI,CAACO,EAAE,KAAK,IAAI,CAACC,SAAS,EAAC;YAClCf,MAAMR,KAAKgB,KAAKC;QACpB;QACAX,IAAIkB,MAAM,CAACC,EAAE,CAAC,WAAW,OAAOzB,KAAK0B,QAAQC;YACzC,IAAI3B,IAAIkB,GAAG,EAAEU,WAAW,IAAI,CAACd,IAAI,CAACC,UAAU,GAAG;gBAC3C,MAAO,CAAA,IAAI,CAACO,EAAE,KAAK,IAAI,CAACC,SAAS,EAAC;gBAClCV,QAAQgB,OAAO,CAAC7B,KAAK0B,QAAkBC;YAC3C;QACJ;QACA,IAAI,CAACb,IAAI,CAACgB,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,CAAChC,IAAI,EAAE;QAErC,IAAI,CAACgB,IAAI,CAACiB,gBAAgB,CAAC,UAAU,OAAMC;YACvC,MAAMV,KAAK,MAAM,IAAI,CAACA,EAAE;YACxB,IAAI,CAACA,IAAI;YACT,IAAIA,GAAGW,SAAS,EACZX,GAAGY,UAAU;YACjBZ,GAAGa,IAAI;YACP,IAAI,CAACrB,IAAI,CAACgB,GAAG,CAAC,CAAC,yBAAyB,CAAC;YACzC,IAAI,CAACR,EAAE,GAAG;QACd;QACA,IAAI,CAACc,OAAO,CAACC,WAAW,CAAC,IAAI,CAACvB,IAAI;QAClC,IAAI,CAACA,IAAI,CAACiB,gBAAgB,CAAC,QAAQ,CAACC;YAChC,IAAI,CAAClB,IAAI,CAACwB,aAAa,CAAC,IAAI3C,YAAY;gBACpCyB,MAAM;gBACNmB,aAAaP,EAAEQ,KAAK;YACxB,GAAG,IAAI,CAAC1B,IAAI,CAAC2B,IAAI;QACrB;IACJ;IAGA,MAAMlB,YAAY;QACd,IAAI,CAACT,IAAI,CAACgB,GAAG,CAAC;QAEd,MAAM,CAACY,SAAS,GAAGC,OAAO,GAAG,IAAI,CAAC7B,IAAI,CAAC8B,WAAW,CAACC,OAAO,CAACC,GAAG,AAC1D,2DAA2D;SAC1DC,KAAK,CAAC;QAEX,MAAMzB,KAAK9B,MAAMkD,SAASC,QAAQ;YAC9BK,KAAK;gBACD,GAAGC,QAAQD,GAAG;gBACdE,MAAM,IAAI,CAACpD,IAAI,CAACqD,QAAQ;YAC5B;YACAC,KAAK,IAAI,CAACtC,IAAI,CAACuC,OAAO;YACtBC,OAAO;QACX;QACAhC,GAAGiC,MAAM,CAAEC,IAAI,CAACP,QAAQM,MAAM;QAC9BjC,GAAGmC,MAAM,CAAED,IAAI,CAACP,QAAQQ,MAAM;QAC9B,MAAM,IAAIvD,QAAcc,CAAAA,MAAQM,GAAGmC,MAAM,CAAEhC,EAAE,CAAC,QAAQO,CAAAA;gBAClD,IAAIA,GAAG0B,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC5D,IAAI,EAAE,GAC3CkB;YACR;QACA,OAAOM;IACX;;QAlFG,qBAEHxB,OAAOD,aAAaC,IAAI,SAIxBsC,UAAU,IAAI3C;;AA8ElB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Target } from "../model/target.js";
|
|
2
|
+
import { ChangeEvent } from "../model/pack.js";
|
|
3
|
+
import { createServer } from "vite";
|
|
4
|
+
import { PackServer } from "./pack-server.js";
|
|
5
|
+
import { ViteBuilder } from "../bundlers/vite.builder.js";
|
|
6
|
+
export class ViteDevelopmentServer extends PackServer {
|
|
7
|
+
constructor(target, monorepo){
|
|
8
|
+
super(target), this.target = target, this.monorepo = monorepo, this.wsPrefix = '/@ws', this.viteBuilder = new ViteBuilder(this.target, this.monorepo.resolver, this.monorepo.flags);
|
|
9
|
+
}
|
|
10
|
+
async handle(request, reply) {
|
|
11
|
+
if (request.url.startsWith(this.pack.publicPath + '/' + this.wsPrefix)) return;
|
|
12
|
+
reply.type(this.getMimeType(request.url));
|
|
13
|
+
if (request.url.endsWith('?resolve')) {
|
|
14
|
+
return reply.type('application/javascript').send(`export default ${JSON.stringify(request.url.split('?')[0])}`);
|
|
15
|
+
}
|
|
16
|
+
const devServer = await (this.devServerRequest ??= this.createServer(request.server.server));
|
|
17
|
+
return new Promise((resolve)=>{
|
|
18
|
+
devServer.middlewares(request.raw, reply.raw, resolve);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async createServer(server) {
|
|
22
|
+
const config = await this.viteBuilder.getConfig();
|
|
23
|
+
const viteServer = await createServer({
|
|
24
|
+
...config,
|
|
25
|
+
server: {
|
|
26
|
+
hmr: this.monorepo.flags.production ? false : {
|
|
27
|
+
server: server,
|
|
28
|
+
path: this.wsPrefix
|
|
29
|
+
},
|
|
30
|
+
ws: this.monorepo.flags.production ? false : undefined,
|
|
31
|
+
fs: {
|
|
32
|
+
strict: false
|
|
33
|
+
},
|
|
34
|
+
allowedHosts: [
|
|
35
|
+
this.monorepo.root.https?.host,
|
|
36
|
+
this.target.https?.host,
|
|
37
|
+
...this.target.reactions.map((x)=>x instanceof Target ? x.https?.host : '')
|
|
38
|
+
].filter((x)=>x)
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
this.target.log(`Start dev server`);
|
|
42
|
+
this.enhanceWebSocket(viteServer);
|
|
43
|
+
return viteServer;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Emit event on ws and proxies events from dependent dev-servers
|
|
47
|
+
*/ enhanceWebSocket(server) {
|
|
48
|
+
const emitChange = server.ws.send;
|
|
49
|
+
server.ws.send = (payload)=>{
|
|
50
|
+
// if (this.target.isExcluded("")) return;
|
|
51
|
+
this.target.log('change');
|
|
52
|
+
this.target.dispatchEvent(new ChangeEvent(payload, this.target.packageJson.name));
|
|
53
|
+
};
|
|
54
|
+
this.target.addEventListener('change', (e)=>{
|
|
55
|
+
this.target.log('change');
|
|
56
|
+
emitChange.call(server.ws, e.payload);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=vite-dev-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/mnt/dev/cmmn/tools/servers/vite-dev-server.ts"],"names":["Target","ChangeEvent","createServer","PackServer","ViteBuilder","ViteDevelopmentServer","target","monorepo","wsPrefix","viteBuilder","resolver","flags","handle","request","reply","url","startsWith","pack","publicPath","type","getMimeType","endsWith","send","JSON","stringify","split","devServer","devServerRequest","server","Promise","resolve","middlewares","raw","config","getConfig","viteServer","hmr","production","path","ws","undefined","fs","strict","allowedHosts","root","https","host","reactions","map","x","filter","log","enhanceWebSocket","emitChange","payload","dispatchEvent","packageJson","name","addEventListener","e","call"],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { _ as _ts_add_disposable_resource } from "@swc/helpers/_/_ts_add_disposable_resource";
|
|
2
|
+
import { _ as _ts_dispose_resources } from "@swc/helpers/_/_ts_dispose_resources";
|
|
3
|
+
import { describe, test } from "node:test";
|
|
4
|
+
import { RolldownDependencyBuilder } from "../dev-server/rolldown-dependency-builder.js";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import path, { join } from "node:path";
|
|
7
|
+
import fs, { writeFile, rm } from "node:fs/promises";
|
|
8
|
+
import { expect } from "expect";
|
|
9
|
+
import * as crypto from "node:crypto";
|
|
10
|
+
const DependencyBuilderSpecs = RolldownDependencyBuilder;
|
|
11
|
+
describe('dependencyBuilder', async function dependencyBuilder() {
|
|
12
|
+
await test('as-is', async function asIs() {
|
|
13
|
+
const env = {
|
|
14
|
+
stack: [],
|
|
15
|
+
error: void 0,
|
|
16
|
+
hasError: false
|
|
17
|
+
};
|
|
18
|
+
try {
|
|
19
|
+
const text = 'export const a = 1';
|
|
20
|
+
const file = _ts_add_disposable_resource(env, await createTemporaryFile(text), true);
|
|
21
|
+
const builder = new DependencyBuilderSpecs([], '/@base');
|
|
22
|
+
const res = await builder.build(file.path, true);
|
|
23
|
+
expect(res['']).toMatch(/export \{.*a.*}/);
|
|
24
|
+
} catch (e) {
|
|
25
|
+
env.error = e;
|
|
26
|
+
env.hasError = true;
|
|
27
|
+
} finally{
|
|
28
|
+
const result = _ts_dispose_resources(env);
|
|
29
|
+
if (result) await result;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
await test('external', async function external() {
|
|
33
|
+
const env = {
|
|
34
|
+
stack: [],
|
|
35
|
+
error: void 0,
|
|
36
|
+
hasError: false
|
|
37
|
+
};
|
|
38
|
+
try {
|
|
39
|
+
const text = 'export const a = 1';
|
|
40
|
+
const fileA = _ts_add_disposable_resource(env, await createTemporaryFile(text), true);
|
|
41
|
+
const fileB = _ts_add_disposable_resource(env, await createTemporaryFile(`import { a } from '${fileA.fileName}'; export const b = a + 1;`), true);
|
|
42
|
+
const builder = new DependencyBuilderSpecs([
|
|
43
|
+
fileA.fileName
|
|
44
|
+
], '/@base');
|
|
45
|
+
const res = await builder.build(fileB.path, true);
|
|
46
|
+
expect(res['']).toMatch(/export \{.*b.*}/);
|
|
47
|
+
expect(res['']).toMatch(/import \{.*a.*} from "\/@base/);
|
|
48
|
+
} catch (e) {
|
|
49
|
+
env.error = e;
|
|
50
|
+
env.hasError = true;
|
|
51
|
+
} finally{
|
|
52
|
+
const result = _ts_dispose_resources(env);
|
|
53
|
+
if (result) await result;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
await test('wasm', async function wasm() {
|
|
57
|
+
const env = {
|
|
58
|
+
stack: [],
|
|
59
|
+
error: void 0,
|
|
60
|
+
hasError: false
|
|
61
|
+
};
|
|
62
|
+
try {
|
|
63
|
+
const wasm = _ts_add_disposable_resource(env, await createTemporaryFile('0ABCF1', 'wasm'), true);
|
|
64
|
+
const file = _ts_add_disposable_resource(env, await createTemporaryFile(`
|
|
65
|
+
import wasm from '${wasm.fileName}';
|
|
66
|
+
export { wasm };
|
|
67
|
+
`), true);
|
|
68
|
+
const builder = new DependencyBuilderSpecs([], '/@base');
|
|
69
|
+
const res = await builder.build(file.path, true);
|
|
70
|
+
expect(res['']).not.toBeUndefined();
|
|
71
|
+
} catch (e) {
|
|
72
|
+
env.error = e;
|
|
73
|
+
env.hasError = true;
|
|
74
|
+
} finally{
|
|
75
|
+
const result = _ts_dispose_resources(env);
|
|
76
|
+
if (result) await result;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
await test('loro-crdt', async function wasm() {
|
|
80
|
+
const builder = new DependencyBuilderSpecs([], '/@base');
|
|
81
|
+
const res = await builder.build('loro-crdt', true);
|
|
82
|
+
expect(res['']).not.toBeUndefined();
|
|
83
|
+
});
|
|
84
|
+
await test('commonjs', async function commonjs() {
|
|
85
|
+
const env = {
|
|
86
|
+
stack: [],
|
|
87
|
+
error: void 0,
|
|
88
|
+
hasError: false
|
|
89
|
+
};
|
|
90
|
+
try {
|
|
91
|
+
const file = _ts_add_disposable_resource(env, await createTemporaryFile(`
|
|
92
|
+
module.exports = { x: 2 };
|
|
93
|
+
exports.a = 1;
|
|
94
|
+
module.exports.c = 3;
|
|
95
|
+
`, 'cjs'), true);
|
|
96
|
+
const builder = new DependencyBuilderSpecs([], 'base');
|
|
97
|
+
const res = await builder.build(file.path, false);
|
|
98
|
+
expect(res['']).not.toBeNull();
|
|
99
|
+
expect(res['']).toMatch(/export \{.*a.*}/);
|
|
100
|
+
expect(res['']).toMatch(/export \{.*c.*}/);
|
|
101
|
+
expect(res['']).toMatch(/export \{.*default.*}/);
|
|
102
|
+
} catch (e) {
|
|
103
|
+
env.error = e;
|
|
104
|
+
env.hasError = true;
|
|
105
|
+
} finally{
|
|
106
|
+
const result = _ts_dispose_resources(env);
|
|
107
|
+
if (result) await result;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
await test('commonjs-dynamic-require', async function commonjsRequire() {
|
|
111
|
+
const env = {
|
|
112
|
+
stack: [],
|
|
113
|
+
error: void 0,
|
|
114
|
+
hasError: false
|
|
115
|
+
};
|
|
116
|
+
try {
|
|
117
|
+
const a = _ts_add_disposable_resource(env, await createTemporaryFile(`
|
|
118
|
+
exports.a = 'A_EXPORT_CONST';
|
|
119
|
+
`, 'cjs'), true);
|
|
120
|
+
const b = _ts_add_disposable_resource(env, await createTemporaryFile(`
|
|
121
|
+
exports.b = 1;
|
|
122
|
+
exports.getA = function dynamicRequire(){
|
|
123
|
+
exports.a = require('${a.fileName}');
|
|
124
|
+
}
|
|
125
|
+
`, 'cjs'), true);
|
|
126
|
+
const builder = new DependencyBuilderSpecs([
|
|
127
|
+
a.fileName
|
|
128
|
+
], '/@base');
|
|
129
|
+
const res = await builder.build(b.path, false);
|
|
130
|
+
expect(res['']).not.toBeUndefined();
|
|
131
|
+
expect(res['']).not.toContain('A_EXPORT_CONST');
|
|
132
|
+
expect(res['']).toMatch(/import.*\/@base/);
|
|
133
|
+
} catch (e) {
|
|
134
|
+
env.error = e;
|
|
135
|
+
env.hasError = true;
|
|
136
|
+
} finally{
|
|
137
|
+
const result = _ts_dispose_resources(env);
|
|
138
|
+
if (result) await result;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
async function createTemporaryFile(content, ext = 'js', fileName = `./${crypto.randomBytes(8).toString('hex')}.${ext}`) {
|
|
143
|
+
const path = join(import.meta.dirname, fileName);
|
|
144
|
+
await writeFile(path, content, 'utf-8');
|
|
145
|
+
return {
|
|
146
|
+
fileName,
|
|
147
|
+
path,
|
|
148
|
+
[Symbol.asyncDispose]: ()=>rm(path)
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
async function getPackageJSON(pkg) {
|
|
152
|
+
const resolved = import.meta.resolve(pkg);
|
|
153
|
+
const file = fileURLToPath(resolved);
|
|
154
|
+
let dir = path.dirname(file);
|
|
155
|
+
while(true){
|
|
156
|
+
const packageJsonText = await fs.readFile(path.resolve(dir, 'package.json'), {
|
|
157
|
+
encoding: 'utf-8'
|
|
158
|
+
}).catch(()=>null);
|
|
159
|
+
if (packageJsonText) return JSON.parse(packageJsonText);
|
|
160
|
+
dir = path.resolve(dir, '..');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
//# sourceMappingURL=dependency-builder-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/mnt/dev/cmmn/tools/specs/dependency-builder-specs.ts"],"names":["describe","test","RolldownDependencyBuilder","fileURLToPath","path","join","fs","writeFile","rm","expect","crypto","DependencyBuilderSpecs","dependencyBuilder","asIs","text","file","createTemporaryFile","builder","res","build","toMatch","external","fileA","fileB","fileName","wasm","not","toBeUndefined","commonjs","toBeNull","commonjsRequire","a","b","toContain","content","ext","randomBytes","toString","dirname","Symbol","asyncDispose","getPackageJSON","pkg","resolved","resolve","dir","packageJsonText","readFile","encoding","catch","JSON","parse"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { describe, test } from "node:test";
|
|
2
|
+
import { Target } from "../model/target.js";
|
|
3
|
+
import { Flags } from "../model/flags.js";
|
|
4
|
+
import { expect } from "expect";
|
|
5
|
+
import { DevServer } from "../dev-server/dev-server";
|
|
6
|
+
import { TargetWebServer } from "../dev-server/target-web-server";
|
|
7
|
+
describe('dev-server', async function target() {
|
|
8
|
+
const targets = await Target.readTargets(process.cwd(), new Flags([
|
|
9
|
+
'--prod'
|
|
10
|
+
]));
|
|
11
|
+
const devServer = new DevServer(targets);
|
|
12
|
+
devServer.depServer.url = 'https://example.server';
|
|
13
|
+
for (let targetServer of devServer.targetServers){
|
|
14
|
+
targetServer.url = devServer.depServer.url;
|
|
15
|
+
}
|
|
16
|
+
function getBundle(pkg) {
|
|
17
|
+
const targetServer = devServer.targetServers.find((x)=>x.target.packageJson.name == pkg);
|
|
18
|
+
if (targetServer instanceof TargetWebServer) {
|
|
19
|
+
return targetServer.getBundleJson();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
describe('@cmmn/core', async function() {
|
|
23
|
+
const bundle = await getBundle('@cmmn/core');
|
|
24
|
+
await test('assets', function() {
|
|
25
|
+
expect(bundle.assets).toHaveLength(1);
|
|
26
|
+
expect(bundle.assets[0].path).toBe('index.js');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('@cmmn/examples-client', async function() {
|
|
30
|
+
const bundle = await getBundle('@cmmn/examples-client');
|
|
31
|
+
await test('assets', function() {
|
|
32
|
+
const assets = bundle.assets.map((x)=>x.path);
|
|
33
|
+
expect(assets).toContain('index.js');
|
|
34
|
+
expect(assets).toContain('index.html');
|
|
35
|
+
expect(assets).toContain('manifest.json');
|
|
36
|
+
expect(assets).toContain('icon.svg');
|
|
37
|
+
expect(assets.find((x)=>x.endsWith('.wasm'))).toBeUndefined();
|
|
38
|
+
});
|
|
39
|
+
await test('deps', function() {
|
|
40
|
+
const deps = Object.fromEntries(bundle.deps.map((x)=>[
|
|
41
|
+
x.baseURI,
|
|
42
|
+
x.path
|
|
43
|
+
]));
|
|
44
|
+
expect(deps[`${devServer.depServer.url}/_/@cmmn/ui/`]).toBe('');
|
|
45
|
+
expect(deps[`${devServer.depServer.url}/_/@cmmn/react/`]).toBe('');
|
|
46
|
+
expect(deps[`${devServer.depServer.url}/_/@id/react/`]).toBe('');
|
|
47
|
+
expect(deps[`${devServer.depServer.url}/_/@id/react/jsx-runtime/`]).toBe('');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('react', ()=>testPackage('react', [
|
|
51
|
+
/^$/
|
|
52
|
+
]));
|
|
53
|
+
describe('loro-crdt', ()=>testPackage('loro-crdt/bundler', [
|
|
54
|
+
/^$/,
|
|
55
|
+
/^@_\/.*/,
|
|
56
|
+
/^@_\/.*/,
|
|
57
|
+
/^@_\/.*/
|
|
58
|
+
]));
|
|
59
|
+
async function testPackage(pkg, assets) {
|
|
60
|
+
const bundle = await devServer.depServer.getBundle(pkg);
|
|
61
|
+
const json = JSON.parse(bundle['@_/bundle.json']);
|
|
62
|
+
await test('assets', async function() {
|
|
63
|
+
expect(json.assets).toHaveLength(assets.length);
|
|
64
|
+
for(let i = 0; i < json.assets.length; i++){
|
|
65
|
+
let asset = json.assets[i];
|
|
66
|
+
expect(asset.path).toMatch(assets[i]);
|
|
67
|
+
expect(await devServer.depServer.getAsset(pkg + '/' + asset.path)).not.toBeNull();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=dev-server.specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/mnt/dev/cmmn/tools/specs/dev-server.specs.ts"],"names":["describe","test","Target","Flags","expect","DevServer","TargetWebServer","target","targets","readTargets","process","cwd","devServer","depServer","url","targetServer","targetServers","getBundle","pkg","find","x","packageJson","name","getBundleJson","bundle","assets","toHaveLength","path","toBe","map","toContain","endsWith","toBeUndefined","deps","Object","fromEntries","baseURI","testPackage","json","JSON","parse","length","i","asset","toMatch","getAsset","not","toBeNull"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, test } from "node:test";
|
|
2
|
+
import { Monorepo } from "../model/monorepo.js";
|
|
3
|
+
import { expect } from "expect";
|
|
4
|
+
import { Flags } from "../model/flags.js";
|
|
5
|
+
describe('monorepo', async ()=>{
|
|
6
|
+
const flags = new Flags([
|
|
7
|
+
'--prod'
|
|
8
|
+
]);
|
|
9
|
+
const monorepo = await Monorepo.load(flags);
|
|
10
|
+
await test('root', async ()=>{
|
|
11
|
+
expect(monorepo.root.name).toBe('@cmmn/framework');
|
|
12
|
+
expect(monorepo.root.entries).toHaveLength(1);
|
|
13
|
+
});
|
|
14
|
+
await test('sync', async ()=>{
|
|
15
|
+
const target = monorepo.get('@cmmn/sync');
|
|
16
|
+
expect(target.entries).toHaveLength(2);
|
|
17
|
+
expect(target.deps).toHaveLength(2);
|
|
18
|
+
expect(target.deps.map((x)=>x.name)).toContain('@cmmn/core');
|
|
19
|
+
expect(target.deps.map((x)=>x.name)).toContain('loro-crdt');
|
|
20
|
+
});
|
|
21
|
+
await test('core', async ()=>{
|
|
22
|
+
const target = monorepo.get('@cmmn/core');
|
|
23
|
+
expect(target.entries).toHaveLength(1);
|
|
24
|
+
expect(target.deps).toHaveLength(2);
|
|
25
|
+
expect(target.deps.map((x)=>x.name)).toContain('uuidv7');
|
|
26
|
+
expect(target.deps.map((x)=>x.name)).toContain('throttle-debounce');
|
|
27
|
+
});
|
|
28
|
+
await test('@libp2p/identify', async ()=>{
|
|
29
|
+
const target = monorepo.get('@libp2p/identify');
|
|
30
|
+
expect(target.rootDir).toMatch(/@libp2p\/identify$/);
|
|
31
|
+
expect(target.entries).toHaveLength(1);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=monorepo.specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/mnt/dev/cmmn/tools/specs/monorepo.specs.ts"],"names":["describe","test","Monorepo","expect","Flags","flags","monorepo","load","root","name","toBe","entries","toHaveLength","target","get","deps","map","x","toContain","rootDir","toMatch"],"mappings":"AAAA,SAAQA,QAAQ,EAAEC,IAAI,QAAO,YAAY;AACzC,SAAQC,QAAQ,QAAO,uBAAoB;AAC3C,SAAQC,MAAM,QAAO,SAAS;AAC9B,SAAQC,KAAK,QAAO,oBAAiB;AAErCJ,SAAS,YAAY;IACjB,MAAMK,QAAQ,IAAID,MAAM;QAAC;KAAS;IAClC,MAAME,WAAW,MAAMJ,SAASK,IAAI,CAACF;IACrC,MAAMJ,KAAK,QAAQ;QACfE,OAAOG,SAASE,IAAI,CAACC,IAAI,EAAEC,IAAI,CAAC;QAChCP,OAAOG,SAASE,IAAI,CAACG,OAAO,EAAEC,YAAY,CAAC;IAC/C;IACA,MAAMX,KAAK,QAAQ;QACf,MAAMY,SAASP,SAASQ,GAAG,CAAC;QAC5BX,OAAOU,OAAOF,OAAO,EAAEC,YAAY,CAAC;QACpCT,OAAOU,OAAOE,IAAI,EAAEH,YAAY,CAAC;QACjCT,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;QAC/Cf,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;IACnD;IAEA,MAAMjB,KAAK,QAAQ;QACf,MAAMY,SAASP,SAASQ,GAAG,CAAC;QAC5BX,OAAOU,OAAOF,OAAO,EAAEC,YAAY,CAAC;QACpCT,OAAOU,OAAOE,IAAI,EAAEH,YAAY,CAAC;QACjCT,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;QAC/Cf,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;IACnD;IAEA,MAAMjB,KAAK,oBAAoB;QAC3B,MAAMY,SAASP,SAASQ,GAAG,CAAC;QAC5BX,OAAOU,OAAOM,OAAO,EAAEC,OAAO,CAAC;QAC/BjB,OAAOU,OAAOF,OAAO,EAAEC,YAAY,CAAC;IACxC;AACJ"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { describe, test } from "node:test";
|
|
2
|
+
import { Monorepo } from "../model/monorepo.js";
|
|
3
|
+
import { expect } from "expect";
|
|
4
|
+
import { Flags } from "../model/flags.js";
|
|
5
|
+
describe('resolver', async ()=>{
|
|
6
|
+
const monorepo = await Monorepo.load();
|
|
7
|
+
await test('core', async ()=>{
|
|
8
|
+
const resolved = monorepo.resolver.resolveId('@cmmn/core');
|
|
9
|
+
expect(resolved.id).toBe('/_/@cmmn/core/index.ts');
|
|
10
|
+
expect(resolved.pack.name).toBe('@cmmn/core');
|
|
11
|
+
expect(resolved.path).toBe('index.ts');
|
|
12
|
+
});
|
|
13
|
+
await test('sync', async ()=>{
|
|
14
|
+
const resolved = monorepo.resolver.resolveId('@cmmn/sync');
|
|
15
|
+
expect(resolved.id).toBe('/_/@cmmn/sync/index.ts');
|
|
16
|
+
expect(resolved.pack.name).toBe('@cmmn/sync');
|
|
17
|
+
expect(resolved.path).toBe('index.ts');
|
|
18
|
+
const storage = monorepo.resolver.resolveId('@cmmn/sync/storage');
|
|
19
|
+
expect(storage).not.toBeUndefined();
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('resolver-deps', async ()=>{
|
|
23
|
+
const monorepo = await Monorepo.load();
|
|
24
|
+
await test('loro-crdt', async ()=>{
|
|
25
|
+
const resolved = monorepo.resolver.resolveId('loro-crdt');
|
|
26
|
+
expect(resolved.id).toBe('/_/loro-crdt/index.js');
|
|
27
|
+
expect(resolved.pack.name).toBe('loro-crdt');
|
|
28
|
+
expect(resolved.path).toBe('index.js');
|
|
29
|
+
});
|
|
30
|
+
await test('react', async ()=>{
|
|
31
|
+
const resolved = monorepo.resolver.resolveId('react');
|
|
32
|
+
expect(resolved.id).toBe('/_/react/index.js');
|
|
33
|
+
expect(resolved.pack.name).toBe('react');
|
|
34
|
+
expect(resolved.path).toBe('index.js');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('resolver-prod', async ()=>{
|
|
38
|
+
const monorepo = await Monorepo.load(new Flags([
|
|
39
|
+
'--prod'
|
|
40
|
+
]));
|
|
41
|
+
await test('core', async ()=>{
|
|
42
|
+
const resolved = monorepo.resolver.resolveId('@cmmn/core');
|
|
43
|
+
expect(resolved.id).toBe('/_/@cmmn/core/index.js');
|
|
44
|
+
expect(resolved.pack.name).toBe('@cmmn/core');
|
|
45
|
+
expect(resolved.path).toBe('index.js');
|
|
46
|
+
});
|
|
47
|
+
await test('sync', async ()=>{
|
|
48
|
+
const resolved = monorepo.resolver.resolveId('@cmmn/sync');
|
|
49
|
+
expect(resolved.id).toBe('/_/@cmmn/sync/index.js');
|
|
50
|
+
expect(resolved.pack.name).toBe('@cmmn/sync');
|
|
51
|
+
expect(resolved.path).toBe('index.js');
|
|
52
|
+
const storage = monorepo.resolver.resolveId('@cmmn/sync/storage');
|
|
53
|
+
expect(storage.id).toBe('/_/@cmmn/sync/storage.js');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=resolver.specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/mnt/dev/cmmn/tools/specs/resolver.specs.ts"],"names":["describe","test","Monorepo","expect","Flags","monorepo","load","resolved","resolver","resolveId","id","toBe","pack","name","path","storage","not","toBeUndefined"],"mappings":"AAAA,SAAQA,QAAQ,EAAEC,IAAI,QAAO,YAAY;AACzC,SAAQC,QAAQ,QAAO,uBAAoB;AAC3C,SAAQC,MAAM,QAAO,SAAS;AAC9B,SAAQC,KAAK,QAAO,oBAAiB;AAErCJ,SAAS,YAAY;IACjB,MAAMK,WAAW,MAAMH,SAASI,IAAI;IAEpC,MAAML,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;IAEA,MAAMV,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;QAC3B,MAAMI,UAAUV,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC5CN,OAAOY,SAASC,GAAG,CAACC,aAAa;IACrC;AAEJ;AAEAjB,SAAS,iBAAiB;IACtB,MAAMK,WAAW,MAAMH,SAASI,IAAI;IAEpC,MAAML,KAAK,aAAa;QACpB,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;IAEA,MAAMV,KAAK,SAAS;QAChB,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;AAEJ;AAEAX,SAAS,iBAAiB;IACtB,MAAMK,WAAW,MAAMH,SAASI,IAAI,CAAC,IAAIF,MAAM;QAAC;KAAS;IAEzD,MAAMH,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;IAEA,MAAMV,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;QAC3B,MAAMI,UAAUV,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC5CN,OAAOY,QAAQL,EAAE,EAAEC,IAAI,CAAC;IAC5B;AAGJ"}
|