@gant-lowcode/code-generator 3.0.3 → 3.0.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 4f64726: 调试
8
+
3
9
  ## 3.0.3
4
10
 
5
11
  ### Patch Changes
@@ -1,6 +1,14 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw new Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
1
9
  // src/standalone-loader.ts
2
- import fetch from "node-fetch";
3
- var packageVersion = "3.0.3";
10
+ var fetchImpl = typeof window !== "undefined" ? window.fetch.bind(window) : __require("node-fetch");
11
+ var packageVersion = "3.0.4";
4
12
  var DEFAULT_WORKER_JS = `https://cdn.jsdelivr.net/npm/@gant-lowcode/code-generator@${packageVersion}/dist/standalone-worker.min.js`;
5
13
  var DEFAULT_TIMEOUT_IN_MS = 60 * 1e3;
6
14
  var workerJsCache = /* @__PURE__ */ new Map();
@@ -70,7 +78,7 @@ async function loadWorkerJs(workerJsUrl) {
70
78
  if (cached) {
71
79
  return cached;
72
80
  }
73
- const workerJsContent = await fetch(workerJsUrl).then((res) => res.text()).catch((err) => {
81
+ const workerJsContent = await fetchImpl(workerJsUrl).then((res) => res.text()).catch((err) => {
74
82
  throw new Error(`Failed to fetch worker js: ${err}`);
75
83
  });
76
84
  const workerJs = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/standalone-loader.ts"],
4
- "sourcesContent": ["import fetch from 'node-fetch';\r\nimport type { IPublicTypeProjectSchema, ResultDir } from '@gant-lowcode/lowcode-types';\r\nimport type { FlattenFile } from './types/file';\r\nimport { IProjectBuilderOptions } from './types';\r\n\r\ndeclare const Worker: any;\r\ndeclare const self: any;\r\ndeclare const __PACKAGE_VERSION__: string;\r\n\r\nconst packageVersion = __PACKAGE_VERSION__ || 'latest';\r\n\r\nexport const DEFAULT_WORKER_JS = `https://cdn.jsdelivr.net/npm/@gant-lowcode/code-generator@${packageVersion}/dist/standalone-worker.min.js`;\r\n\r\nexport const DEFAULT_TIMEOUT_IN_MS = 60 * 1000;\r\n\r\nconst workerJsCache = new Map<string, { content: string; url: string }>();\r\n\r\nexport async function init({\r\n workerJsUrl = DEFAULT_WORKER_JS,\r\n}: {\r\n workerJsUrl?: string;\r\n} = {}) {\r\n await loadWorkerJs(workerJsUrl);\r\n}\r\n\r\nexport type Result = ResultDir | FlattenFile[];\r\n\r\nexport async function generateCode(options: {\r\n solution: 'gant' | 'gantLegacy';\r\n builderOptions: IProjectBuilderOptions;\r\n schema: IPublicTypeProjectSchema;\r\n flattenResult?: boolean;\r\n workerJsUrl?: string;\r\n timeoutInMs?: number;\r\n}): Promise<Result> {\r\n if (typeof Worker !== 'function') {\r\n throw new Error('Worker is not supported');\r\n }\r\n\r\n const workerJsUrl = options.workerJsUrl || DEFAULT_WORKER_JS;\r\n\r\n const workerJs = await loadWorkerJs(workerJsUrl);\r\n const worker = new Worker(workerJs.url, {\r\n type: 'classic',\r\n credentials: 'omit',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const timer = setTimeout(() => {\r\n reject(new Error('timeout'));\r\n worker.terminate();\r\n }, options.timeoutInMs || DEFAULT_TIMEOUT_IN_MS);\r\n\r\n worker.onmessage = (event: any) => {\r\n const msg = event.data;\r\n switch (msg.type) {\r\n case 'ready':\r\n print('worker is ready.');\r\n break;\r\n\r\n case 'run:begin':\r\n print('worker is running...');\r\n break;\r\n case 'run:end':\r\n print('worker is done.');\r\n resolve(msg.result);\r\n clearTimeout(timer);\r\n worker.terminate();\r\n break;\r\n case 'run:error':\r\n printErr(`worker error: ${msg.errorMsg}`);\r\n clearTimeout(timer);\r\n reject(new Error(msg.errorMsg || 'unknown error'));\r\n worker.terminate();\r\n break;\r\n default:\r\n print('got unknown msg: %o', msg);\r\n break;\r\n }\r\n };\r\n\r\n worker.onerror = (err: any) => {\r\n printErr('worker error: %o', err);\r\n clearTimeout(timer);\r\n reject(err);\r\n worker.terminate();\r\n };\r\n\r\n worker.postMessage({\r\n type: 'run',\r\n solution: options.solution,\r\n builderOptions: options.builderOptions,\r\n schema: options.schema,\r\n flattenResult: options.flattenResult,\r\n });\r\n });\r\n}\r\n\r\nasync function loadWorkerJs(workerJsUrl: string) {\r\n const cached = workerJsCache.get(workerJsUrl);\r\n if (cached) {\r\n return cached;\r\n }\r\n\r\n const workerJsContent = await fetch(workerJsUrl)\r\n .then((res) => res.text())\r\n .catch((err) => {\r\n throw new Error(`Failed to fetch worker js: ${err}`);\r\n });\r\n\r\n const workerJs = {\r\n content: workerJsContent,\r\n url: self.URL.createObjectURL(\r\n new self.Blob([workerJsContent], { type: 'application/javascript' }),\r\n ),\r\n };\r\n\r\n workerJsCache.set(workerJsUrl, workerJs);\r\n\r\n return workerJs;\r\n}\r\n\r\nfunction print(msg: string, ...args: unknown[]) {\r\n // eslint-disable-next-line no-console\r\n console.debug(`[code-generator/loader]: ${msg}`, ...args);\r\n}\r\n\r\nfunction printErr(msg: string, ...args: unknown[]) {\r\n // eslint-disable-next-line no-console\r\n console.debug(`[code-generator/loader]: %c${msg}`, 'color:red', ...args);\r\n}\r\n"],
5
- "mappings": ";AAAA,OAAO,WAAW;AASlB,IAAM,iBAAiB;AAEhB,IAAM,oBAAoB,6DAA6D;AAEvF,IAAM,wBAAwB,KAAK;AAE1C,IAAM,gBAAgB,oBAAI,IAA8C;AAExE,eAAsB,KAAK;AAAA,EACzB,cAAc;AAChB,IAEI,CAAC,GAAG;AACN,QAAM,aAAa,WAAW;AAChC;AAIA,eAAsB,aAAa,SAOf;AAClB,MAAI,OAAO,WAAW,YAAY;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,cAAc,QAAQ,eAAe;AAE3C,QAAM,WAAW,MAAM,aAAa,WAAW;AAC/C,QAAM,SAAS,IAAI,OAAO,SAAS,KAAK;AAAA,IACtC,MAAM;AAAA,IACN,aAAa;AAAA,EACf,CAAC;AAED,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ,WAAW,MAAM;AAC7B,aAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,aAAO,UAAU;AAAA,IACnB,GAAG,QAAQ,eAAe,qBAAqB;AAE/C,WAAO,YAAY,CAAC,UAAe;AACjC,YAAM,MAAM,MAAM;AAClB,cAAQ,IAAI;AAAA,aACL;AACH,gBAAM,kBAAkB;AACxB;AAAA,aAEG;AACH,gBAAM,sBAAsB;AAC5B;AAAA,aACG;AACH,gBAAM,iBAAiB;AACvB,kBAAQ,IAAI,MAAM;AAClB,uBAAa,KAAK;AAClB,iBAAO,UAAU;AACjB;AAAA,aACG;AACH,mBAAS,iBAAiB,IAAI,UAAU;AACxC,uBAAa,KAAK;AAClB,iBAAO,IAAI,MAAM,IAAI,YAAY,eAAe,CAAC;AACjD,iBAAO,UAAU;AACjB;AAAA;AAEA,gBAAM,uBAAuB,GAAG;AAChC;AAAA;AAAA,IAEN;AAEA,WAAO,UAAU,CAAC,QAAa;AAC7B,eAAS,oBAAoB,GAAG;AAChC,mBAAa,KAAK;AAClB,aAAO,GAAG;AACV,aAAO,UAAU;AAAA,IACnB;AAEA,WAAO,YAAY;AAAA,MACjB,MAAM;AAAA,MACN,UAAU,QAAQ;AAAA,MAClB,gBAAgB,QAAQ;AAAA,MACxB,QAAQ,QAAQ;AAAA,MAChB,eAAe,QAAQ;AAAA,IACzB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,eAAe,aAAa,aAAqB;AAC/C,QAAM,SAAS,cAAc,IAAI,WAAW;AAC5C,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,MAAM,MAAM,WAAW,EAC5C,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EACxB,MAAM,CAAC,QAAQ;AACd,UAAM,IAAI,MAAM,8BAA8B,KAAK;AAAA,EACrD,CAAC;AAEH,QAAM,WAAW;AAAA,IACf,SAAS;AAAA,IACT,KAAK,KAAK,IAAI;AAAA,MACZ,IAAI,KAAK,KAAK,CAAC,eAAe,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAAA,IACrE;AAAA,EACF;AAEA,gBAAc,IAAI,aAAa,QAAQ;AAEvC,SAAO;AACT;AAEA,SAAS,MAAM,QAAgB,MAAiB;AAE9C,UAAQ,MAAM,4BAA4B,OAAO,GAAG,IAAI;AAC1D;AAEA,SAAS,SAAS,QAAgB,MAAiB;AAEjD,UAAQ,MAAM,8BAA8B,OAAO,aAAa,GAAG,IAAI;AACzE;",
4
+ "sourcesContent": ["import type { IPublicTypeProjectSchema, ResultDir } from '@gant-lowcode/lowcode-types';\nimport type { FlattenFile } from './types/file';\nimport { IProjectBuilderOptions } from './types';\n\n// \u5728\u6D4F\u89C8\u5668\u73AF\u5883\u4F7F\u7528\u539F\u751F fetch,\u5728 Node.js \u73AF\u5883\u4F7F\u7528 node-fetch\nconst fetchImpl = typeof window !== 'undefined' ? window.fetch.bind(window) : require('node-fetch');\n\ndeclare const Worker: any;\ndeclare const self: any;\ndeclare const __PACKAGE_VERSION__: string;\n\nconst packageVersion = __PACKAGE_VERSION__ || 'latest';\n\nexport const DEFAULT_WORKER_JS = `https://cdn.jsdelivr.net/npm/@gant-lowcode/code-generator@${packageVersion}/dist/standalone-worker.min.js`;\n\nexport const DEFAULT_TIMEOUT_IN_MS = 60 * 1000;\n\nconst workerJsCache = new Map<string, { content: string; url: string }>();\n\nexport async function init({\n workerJsUrl = DEFAULT_WORKER_JS,\n}: {\n workerJsUrl?: string;\n} = {}) {\n await loadWorkerJs(workerJsUrl);\n}\n\nexport type Result = ResultDir | FlattenFile[];\n\nexport async function generateCode(options: {\n solution: 'gant' | 'gantLegacy';\n builderOptions: IProjectBuilderOptions;\n schema: IPublicTypeProjectSchema;\n flattenResult?: boolean;\n workerJsUrl?: string;\n timeoutInMs?: number;\n}): Promise<Result> {\n if (typeof Worker !== 'function') {\n throw new Error('Worker is not supported');\n }\n\n const workerJsUrl = options.workerJsUrl || DEFAULT_WORKER_JS;\n\n const workerJs = await loadWorkerJs(workerJsUrl);\n const worker = new Worker(workerJs.url, {\n type: 'classic',\n credentials: 'omit',\n });\n\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(new Error('timeout'));\n worker.terminate();\n }, options.timeoutInMs || DEFAULT_TIMEOUT_IN_MS);\n\n worker.onmessage = (event: any) => {\n const msg = event.data;\n switch (msg.type) {\n case 'ready':\n print('worker is ready.');\n break;\n\n case 'run:begin':\n print('worker is running...');\n break;\n case 'run:end':\n print('worker is done.');\n resolve(msg.result);\n clearTimeout(timer);\n worker.terminate();\n break;\n case 'run:error':\n printErr(`worker error: ${msg.errorMsg}`);\n clearTimeout(timer);\n reject(new Error(msg.errorMsg || 'unknown error'));\n worker.terminate();\n break;\n default:\n print('got unknown msg: %o', msg);\n break;\n }\n };\n\n worker.onerror = (err: any) => {\n printErr('worker error: %o', err);\n clearTimeout(timer);\n reject(err);\n worker.terminate();\n };\n\n worker.postMessage({\n type: 'run',\n solution: options.solution,\n builderOptions: options.builderOptions,\n schema: options.schema,\n flattenResult: options.flattenResult,\n });\n });\n}\n\nasync function loadWorkerJs(workerJsUrl: string) {\n const cached = workerJsCache.get(workerJsUrl);\n if (cached) {\n return cached;\n }\n\n const workerJsContent = await fetchImpl(workerJsUrl)\n .then((res: any) => res.text())\n .catch((err: any) => {\n throw new Error(`Failed to fetch worker js: ${err}`);\n });\n\n const workerJs = {\n content: workerJsContent,\n url: self.URL.createObjectURL(\n new self.Blob([workerJsContent], { type: 'application/javascript' }),\n ),\n };\n\n workerJsCache.set(workerJsUrl, workerJs);\n\n return workerJs;\n}\n\nfunction print(msg: string, ...args: unknown[]) {\n // eslint-disable-next-line no-console\n console.debug(`[code-generator/loader]: ${msg}`, ...args);\n}\n\nfunction printErr(msg: string, ...args: unknown[]) {\n // eslint-disable-next-line no-console\n console.debug(`[code-generator/loader]: %c${msg}`, 'color:red', ...args);\n}\n"],
5
+ "mappings": ";;;;;;;;;AAKA,IAAM,YAAY,OAAO,WAAW,cAAc,OAAO,MAAM,KAAK,MAAM,IAAI,UAAQ;AAMtF,IAAM,iBAAiB;AAEhB,IAAM,oBAAoB,6DAA6D;AAEvF,IAAM,wBAAwB,KAAK;AAE1C,IAAM,gBAAgB,oBAAI,IAA8C;AAExE,eAAsB,KAAK;AAAA,EACzB,cAAc;AAChB,IAEI,CAAC,GAAG;AACN,QAAM,aAAa,WAAW;AAChC;AAIA,eAAsB,aAAa,SAOf;AAClB,MAAI,OAAO,WAAW,YAAY;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,cAAc,QAAQ,eAAe;AAE3C,QAAM,WAAW,MAAM,aAAa,WAAW;AAC/C,QAAM,SAAS,IAAI,OAAO,SAAS,KAAK;AAAA,IACtC,MAAM;AAAA,IACN,aAAa;AAAA,EACf,CAAC;AAED,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ,WAAW,MAAM;AAC7B,aAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,aAAO,UAAU;AAAA,IACnB,GAAG,QAAQ,eAAe,qBAAqB;AAE/C,WAAO,YAAY,CAAC,UAAe;AACjC,YAAM,MAAM,MAAM;AAClB,cAAQ,IAAI;AAAA,aACL;AACH,gBAAM,kBAAkB;AACxB;AAAA,aAEG;AACH,gBAAM,sBAAsB;AAC5B;AAAA,aACG;AACH,gBAAM,iBAAiB;AACvB,kBAAQ,IAAI,MAAM;AAClB,uBAAa,KAAK;AAClB,iBAAO,UAAU;AACjB;AAAA,aACG;AACH,mBAAS,iBAAiB,IAAI,UAAU;AACxC,uBAAa,KAAK;AAClB,iBAAO,IAAI,MAAM,IAAI,YAAY,eAAe,CAAC;AACjD,iBAAO,UAAU;AACjB;AAAA;AAEA,gBAAM,uBAAuB,GAAG;AAChC;AAAA;AAAA,IAEN;AAEA,WAAO,UAAU,CAAC,QAAa;AAC7B,eAAS,oBAAoB,GAAG;AAChC,mBAAa,KAAK;AAClB,aAAO,GAAG;AACV,aAAO,UAAU;AAAA,IACnB;AAEA,WAAO,YAAY;AAAA,MACjB,MAAM;AAAA,MACN,UAAU,QAAQ;AAAA,MAClB,gBAAgB,QAAQ;AAAA,MACxB,QAAQ,QAAQ;AAAA,MAChB,eAAe,QAAQ;AAAA,IACzB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,eAAe,aAAa,aAAqB;AAC/C,QAAM,SAAS,cAAc,IAAI,WAAW;AAC5C,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,MAAM,UAAU,WAAW,EAChD,KAAK,CAAC,QAAa,IAAI,KAAK,CAAC,EAC7B,MAAM,CAAC,QAAa;AACnB,UAAM,IAAI,MAAM,8BAA8B,KAAK;AAAA,EACrD,CAAC;AAEH,QAAM,WAAW;AAAA,IACf,SAAS;AAAA,IACT,KAAK,KAAK,IAAI;AAAA,MACZ,IAAI,KAAK,KAAK,CAAC,eAAe,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAAA,IACrE;AAAA,EACF;AAEA,gBAAc,IAAI,aAAa,QAAQ;AAEvC,SAAO;AACT;AAEA,SAAS,MAAM,QAAgB,MAAiB;AAE9C,UAAQ,MAAM,4BAA4B,OAAO,GAAG,IAAI;AAC1D;AAEA,SAAS,SAAS,QAAgB,MAAiB;AAEjD,UAAQ,MAAM,8BAA8B,OAAO,aAAa,GAAG,IAAI;AACzE;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
19
 
26
20
  // src/standalone-loader.ts
@@ -32,8 +26,8 @@ __export(standalone_loader_exports, {
32
26
  init: () => init
33
27
  });
34
28
  module.exports = __toCommonJS(standalone_loader_exports);
35
- var import_node_fetch = __toESM(require("node-fetch"));
36
- var packageVersion = "3.0.3";
29
+ var fetchImpl = typeof window !== "undefined" ? window.fetch.bind(window) : require("node-fetch");
30
+ var packageVersion = "3.0.4";
37
31
  var DEFAULT_WORKER_JS = `https://cdn.jsdelivr.net/npm/@gant-lowcode/code-generator@${packageVersion}/dist/standalone-worker.min.js`;
38
32
  var DEFAULT_TIMEOUT_IN_MS = 60 * 1e3;
39
33
  var workerJsCache = /* @__PURE__ */ new Map();
@@ -103,7 +97,7 @@ async function loadWorkerJs(workerJsUrl) {
103
97
  if (cached) {
104
98
  return cached;
105
99
  }
106
- const workerJsContent = await (0, import_node_fetch.default)(workerJsUrl).then((res) => res.text()).catch((err) => {
100
+ const workerJsContent = await fetchImpl(workerJsUrl).then((res) => res.text()).catch((err) => {
107
101
  throw new Error(`Failed to fetch worker js: ${err}`);
108
102
  });
109
103
  const workerJs = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/standalone-loader.ts"],
4
- "sourcesContent": ["import fetch from 'node-fetch';\r\nimport type { IPublicTypeProjectSchema, ResultDir } from '@gant-lowcode/lowcode-types';\r\nimport type { FlattenFile } from './types/file';\r\nimport { IProjectBuilderOptions } from './types';\r\n\r\ndeclare const Worker: any;\r\ndeclare const self: any;\r\ndeclare const __PACKAGE_VERSION__: string;\r\n\r\nconst packageVersion = __PACKAGE_VERSION__ || 'latest';\r\n\r\nexport const DEFAULT_WORKER_JS = `https://cdn.jsdelivr.net/npm/@gant-lowcode/code-generator@${packageVersion}/dist/standalone-worker.min.js`;\r\n\r\nexport const DEFAULT_TIMEOUT_IN_MS = 60 * 1000;\r\n\r\nconst workerJsCache = new Map<string, { content: string; url: string }>();\r\n\r\nexport async function init({\r\n workerJsUrl = DEFAULT_WORKER_JS,\r\n}: {\r\n workerJsUrl?: string;\r\n} = {}) {\r\n await loadWorkerJs(workerJsUrl);\r\n}\r\n\r\nexport type Result = ResultDir | FlattenFile[];\r\n\r\nexport async function generateCode(options: {\r\n solution: 'gant' | 'gantLegacy';\r\n builderOptions: IProjectBuilderOptions;\r\n schema: IPublicTypeProjectSchema;\r\n flattenResult?: boolean;\r\n workerJsUrl?: string;\r\n timeoutInMs?: number;\r\n}): Promise<Result> {\r\n if (typeof Worker !== 'function') {\r\n throw new Error('Worker is not supported');\r\n }\r\n\r\n const workerJsUrl = options.workerJsUrl || DEFAULT_WORKER_JS;\r\n\r\n const workerJs = await loadWorkerJs(workerJsUrl);\r\n const worker = new Worker(workerJs.url, {\r\n type: 'classic',\r\n credentials: 'omit',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const timer = setTimeout(() => {\r\n reject(new Error('timeout'));\r\n worker.terminate();\r\n }, options.timeoutInMs || DEFAULT_TIMEOUT_IN_MS);\r\n\r\n worker.onmessage = (event: any) => {\r\n const msg = event.data;\r\n switch (msg.type) {\r\n case 'ready':\r\n print('worker is ready.');\r\n break;\r\n\r\n case 'run:begin':\r\n print('worker is running...');\r\n break;\r\n case 'run:end':\r\n print('worker is done.');\r\n resolve(msg.result);\r\n clearTimeout(timer);\r\n worker.terminate();\r\n break;\r\n case 'run:error':\r\n printErr(`worker error: ${msg.errorMsg}`);\r\n clearTimeout(timer);\r\n reject(new Error(msg.errorMsg || 'unknown error'));\r\n worker.terminate();\r\n break;\r\n default:\r\n print('got unknown msg: %o', msg);\r\n break;\r\n }\r\n };\r\n\r\n worker.onerror = (err: any) => {\r\n printErr('worker error: %o', err);\r\n clearTimeout(timer);\r\n reject(err);\r\n worker.terminate();\r\n };\r\n\r\n worker.postMessage({\r\n type: 'run',\r\n solution: options.solution,\r\n builderOptions: options.builderOptions,\r\n schema: options.schema,\r\n flattenResult: options.flattenResult,\r\n });\r\n });\r\n}\r\n\r\nasync function loadWorkerJs(workerJsUrl: string) {\r\n const cached = workerJsCache.get(workerJsUrl);\r\n if (cached) {\r\n return cached;\r\n }\r\n\r\n const workerJsContent = await fetch(workerJsUrl)\r\n .then((res) => res.text())\r\n .catch((err) => {\r\n throw new Error(`Failed to fetch worker js: ${err}`);\r\n });\r\n\r\n const workerJs = {\r\n content: workerJsContent,\r\n url: self.URL.createObjectURL(\r\n new self.Blob([workerJsContent], { type: 'application/javascript' }),\r\n ),\r\n };\r\n\r\n workerJsCache.set(workerJsUrl, workerJs);\r\n\r\n return workerJs;\r\n}\r\n\r\nfunction print(msg: string, ...args: unknown[]) {\r\n // eslint-disable-next-line no-console\r\n console.debug(`[code-generator/loader]: ${msg}`, ...args);\r\n}\r\n\r\nfunction printErr(msg: string, ...args: unknown[]) {\r\n // eslint-disable-next-line no-console\r\n console.debug(`[code-generator/loader]: %c${msg}`, 'color:red', ...args);\r\n}\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAkB;AASlB,IAAM,iBAAiB;AAEhB,IAAM,oBAAoB,6DAA6D;AAEvF,IAAM,wBAAwB,KAAK;AAE1C,IAAM,gBAAgB,oBAAI,IAA8C;AAExE,eAAsB,KAAK;AAAA,EACzB,cAAc;AAChB,IAEI,CAAC,GAAG;AACN,QAAM,aAAa,WAAW;AAChC;AAIA,eAAsB,aAAa,SAOf;AAClB,MAAI,OAAO,WAAW,YAAY;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,cAAc,QAAQ,eAAe;AAE3C,QAAM,WAAW,MAAM,aAAa,WAAW;AAC/C,QAAM,SAAS,IAAI,OAAO,SAAS,KAAK;AAAA,IACtC,MAAM;AAAA,IACN,aAAa;AAAA,EACf,CAAC;AAED,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ,WAAW,MAAM;AAC7B,aAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,aAAO,UAAU;AAAA,IACnB,GAAG,QAAQ,eAAe,qBAAqB;AAE/C,WAAO,YAAY,CAAC,UAAe;AACjC,YAAM,MAAM,MAAM;AAClB,cAAQ,IAAI;AAAA,aACL;AACH,gBAAM,kBAAkB;AACxB;AAAA,aAEG;AACH,gBAAM,sBAAsB;AAC5B;AAAA,aACG;AACH,gBAAM,iBAAiB;AACvB,kBAAQ,IAAI,MAAM;AAClB,uBAAa,KAAK;AAClB,iBAAO,UAAU;AACjB;AAAA,aACG;AACH,mBAAS,iBAAiB,IAAI,UAAU;AACxC,uBAAa,KAAK;AAClB,iBAAO,IAAI,MAAM,IAAI,YAAY,eAAe,CAAC;AACjD,iBAAO,UAAU;AACjB;AAAA;AAEA,gBAAM,uBAAuB,GAAG;AAChC;AAAA;AAAA,IAEN;AAEA,WAAO,UAAU,CAAC,QAAa;AAC7B,eAAS,oBAAoB,GAAG;AAChC,mBAAa,KAAK;AAClB,aAAO,GAAG;AACV,aAAO,UAAU;AAAA,IACnB;AAEA,WAAO,YAAY;AAAA,MACjB,MAAM;AAAA,MACN,UAAU,QAAQ;AAAA,MAClB,gBAAgB,QAAQ;AAAA,MACxB,QAAQ,QAAQ;AAAA,MAChB,eAAe,QAAQ;AAAA,IACzB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,eAAe,aAAa,aAAqB;AAC/C,QAAM,SAAS,cAAc,IAAI,WAAW;AAC5C,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,UAAM,kBAAAA,SAAM,WAAW,EAC5C,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EACxB,MAAM,CAAC,QAAQ;AACd,UAAM,IAAI,MAAM,8BAA8B,KAAK;AAAA,EACrD,CAAC;AAEH,QAAM,WAAW;AAAA,IACf,SAAS;AAAA,IACT,KAAK,KAAK,IAAI;AAAA,MACZ,IAAI,KAAK,KAAK,CAAC,eAAe,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAAA,IACrE;AAAA,EACF;AAEA,gBAAc,IAAI,aAAa,QAAQ;AAEvC,SAAO;AACT;AAEA,SAAS,MAAM,QAAgB,MAAiB;AAE9C,UAAQ,MAAM,4BAA4B,OAAO,GAAG,IAAI;AAC1D;AAEA,SAAS,SAAS,QAAgB,MAAiB;AAEjD,UAAQ,MAAM,8BAA8B,OAAO,aAAa,GAAG,IAAI;AACzE;",
6
- "names": ["fetch"]
4
+ "sourcesContent": ["import type { IPublicTypeProjectSchema, ResultDir } from '@gant-lowcode/lowcode-types';\nimport type { FlattenFile } from './types/file';\nimport { IProjectBuilderOptions } from './types';\n\n// \u5728\u6D4F\u89C8\u5668\u73AF\u5883\u4F7F\u7528\u539F\u751F fetch,\u5728 Node.js \u73AF\u5883\u4F7F\u7528 node-fetch\nconst fetchImpl = typeof window !== 'undefined' ? window.fetch.bind(window) : require('node-fetch');\n\ndeclare const Worker: any;\ndeclare const self: any;\ndeclare const __PACKAGE_VERSION__: string;\n\nconst packageVersion = __PACKAGE_VERSION__ || 'latest';\n\nexport const DEFAULT_WORKER_JS = `https://cdn.jsdelivr.net/npm/@gant-lowcode/code-generator@${packageVersion}/dist/standalone-worker.min.js`;\n\nexport const DEFAULT_TIMEOUT_IN_MS = 60 * 1000;\n\nconst workerJsCache = new Map<string, { content: string; url: string }>();\n\nexport async function init({\n workerJsUrl = DEFAULT_WORKER_JS,\n}: {\n workerJsUrl?: string;\n} = {}) {\n await loadWorkerJs(workerJsUrl);\n}\n\nexport type Result = ResultDir | FlattenFile[];\n\nexport async function generateCode(options: {\n solution: 'gant' | 'gantLegacy';\n builderOptions: IProjectBuilderOptions;\n schema: IPublicTypeProjectSchema;\n flattenResult?: boolean;\n workerJsUrl?: string;\n timeoutInMs?: number;\n}): Promise<Result> {\n if (typeof Worker !== 'function') {\n throw new Error('Worker is not supported');\n }\n\n const workerJsUrl = options.workerJsUrl || DEFAULT_WORKER_JS;\n\n const workerJs = await loadWorkerJs(workerJsUrl);\n const worker = new Worker(workerJs.url, {\n type: 'classic',\n credentials: 'omit',\n });\n\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(new Error('timeout'));\n worker.terminate();\n }, options.timeoutInMs || DEFAULT_TIMEOUT_IN_MS);\n\n worker.onmessage = (event: any) => {\n const msg = event.data;\n switch (msg.type) {\n case 'ready':\n print('worker is ready.');\n break;\n\n case 'run:begin':\n print('worker is running...');\n break;\n case 'run:end':\n print('worker is done.');\n resolve(msg.result);\n clearTimeout(timer);\n worker.terminate();\n break;\n case 'run:error':\n printErr(`worker error: ${msg.errorMsg}`);\n clearTimeout(timer);\n reject(new Error(msg.errorMsg || 'unknown error'));\n worker.terminate();\n break;\n default:\n print('got unknown msg: %o', msg);\n break;\n }\n };\n\n worker.onerror = (err: any) => {\n printErr('worker error: %o', err);\n clearTimeout(timer);\n reject(err);\n worker.terminate();\n };\n\n worker.postMessage({\n type: 'run',\n solution: options.solution,\n builderOptions: options.builderOptions,\n schema: options.schema,\n flattenResult: options.flattenResult,\n });\n });\n}\n\nasync function loadWorkerJs(workerJsUrl: string) {\n const cached = workerJsCache.get(workerJsUrl);\n if (cached) {\n return cached;\n }\n\n const workerJsContent = await fetchImpl(workerJsUrl)\n .then((res: any) => res.text())\n .catch((err: any) => {\n throw new Error(`Failed to fetch worker js: ${err}`);\n });\n\n const workerJs = {\n content: workerJsContent,\n url: self.URL.createObjectURL(\n new self.Blob([workerJsContent], { type: 'application/javascript' }),\n ),\n };\n\n workerJsCache.set(workerJsUrl, workerJs);\n\n return workerJs;\n}\n\nfunction print(msg: string, ...args: unknown[]) {\n // eslint-disable-next-line no-console\n console.debug(`[code-generator/loader]: ${msg}`, ...args);\n}\n\nfunction printErr(msg: string, ...args: unknown[]) {\n // eslint-disable-next-line no-console\n console.debug(`[code-generator/loader]: %c${msg}`, 'color:red', ...args);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAM,YAAY,OAAO,WAAW,cAAc,OAAO,MAAM,KAAK,MAAM,IAAI,QAAQ;AAMtF,IAAM,iBAAiB;AAEhB,IAAM,oBAAoB,6DAA6D;AAEvF,IAAM,wBAAwB,KAAK;AAE1C,IAAM,gBAAgB,oBAAI,IAA8C;AAExE,eAAsB,KAAK;AAAA,EACzB,cAAc;AAChB,IAEI,CAAC,GAAG;AACN,QAAM,aAAa,WAAW;AAChC;AAIA,eAAsB,aAAa,SAOf;AAClB,MAAI,OAAO,WAAW,YAAY;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,QAAM,cAAc,QAAQ,eAAe;AAE3C,QAAM,WAAW,MAAM,aAAa,WAAW;AAC/C,QAAM,SAAS,IAAI,OAAO,SAAS,KAAK;AAAA,IACtC,MAAM;AAAA,IACN,aAAa;AAAA,EACf,CAAC;AAED,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ,WAAW,MAAM;AAC7B,aAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,aAAO,UAAU;AAAA,IACnB,GAAG,QAAQ,eAAe,qBAAqB;AAE/C,WAAO,YAAY,CAAC,UAAe;AACjC,YAAM,MAAM,MAAM;AAClB,cAAQ,IAAI;AAAA,aACL;AACH,gBAAM,kBAAkB;AACxB;AAAA,aAEG;AACH,gBAAM,sBAAsB;AAC5B;AAAA,aACG;AACH,gBAAM,iBAAiB;AACvB,kBAAQ,IAAI,MAAM;AAClB,uBAAa,KAAK;AAClB,iBAAO,UAAU;AACjB;AAAA,aACG;AACH,mBAAS,iBAAiB,IAAI,UAAU;AACxC,uBAAa,KAAK;AAClB,iBAAO,IAAI,MAAM,IAAI,YAAY,eAAe,CAAC;AACjD,iBAAO,UAAU;AACjB;AAAA;AAEA,gBAAM,uBAAuB,GAAG;AAChC;AAAA;AAAA,IAEN;AAEA,WAAO,UAAU,CAAC,QAAa;AAC7B,eAAS,oBAAoB,GAAG;AAChC,mBAAa,KAAK;AAClB,aAAO,GAAG;AACV,aAAO,UAAU;AAAA,IACnB;AAEA,WAAO,YAAY;AAAA,MACjB,MAAM;AAAA,MACN,UAAU,QAAQ;AAAA,MAClB,gBAAgB,QAAQ;AAAA,MACxB,QAAQ,QAAQ;AAAA,MAChB,eAAe,QAAQ;AAAA,IACzB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,eAAe,aAAa,aAAqB;AAC/C,QAAM,SAAS,cAAc,IAAI,WAAW;AAC5C,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,MAAM,UAAU,WAAW,EAChD,KAAK,CAAC,QAAa,IAAI,KAAK,CAAC,EAC7B,MAAM,CAAC,QAAa;AACnB,UAAM,IAAI,MAAM,8BAA8B,KAAK;AAAA,EACrD,CAAC;AAEH,QAAM,WAAW;AAAA,IACf,SAAS;AAAA,IACT,KAAK,KAAK,IAAI;AAAA,MACZ,IAAI,KAAK,KAAK,CAAC,eAAe,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAAA,IACrE;AAAA,EACF;AAEA,gBAAc,IAAI,aAAa,QAAQ;AAEvC,SAAO;AACT;AAEA,SAAS,MAAM,QAAgB,MAAiB;AAE9C,UAAQ,MAAM,4BAA4B,OAAO,GAAG,IAAI;AAC1D;AAEA,SAAS,SAAS,QAAgB,MAAiB;AAEjD,UAAQ,MAAM,8BAA8B,OAAO,aAAa,GAAG,IAAI;AACzE;",
6
+ "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gant-lowcode/code-generator",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/types/index.d.ts",
@@ -134,10 +134,10 @@
134
134
  "semver": "^7.3.4",
135
135
  "short-uuid": "^3.1.1",
136
136
  "tslib": "^2.3.1",
137
- "@gant-lowcode/lowcode-shared": "3.0.4",
138
137
  "@gant-lowcode/lowcode-types": "3.0.4",
139
- "@gant-lowcode/typescript-config": "2.0.4",
140
- "@gant-lowcode/eslint-config": "2.0.4"
138
+ "@gant-lowcode/lowcode-shared": "3.0.4",
139
+ "@gant-lowcode/eslint-config": "2.0.4",
140
+ "@gant-lowcode/typescript-config": "2.0.4"
141
141
  },
142
142
  "publishConfig": {
143
143
  "access": "public",