@mlightcad/cad-simple-viewer-cli 1.7.3 → 1.7.5
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 -21
- package/README.md +159 -159
- package/dist/runHeadless.js +237 -134
- package/dist/runHeadless.js.map +1 -1
- package/dist-runner/assets/cad-html-plugin-DQwlPjG4.js +1564 -0
- package/dist-runner/assets/cad-pdf-plugin-Ch3nwhN6.js +212 -0
- package/dist-runner/assets/cad-svg-plugin-C84nxL1t.js +16 -0
- package/dist-runner/assets/index-DXwRjL3l.js +7339 -0
- package/dist-runner/index.html +12 -12
- package/dist-runner/viewer-runtime.iife.js +213 -213
- package/dist-runner/workers/libredwg-parser-worker.js +1 -1
- package/dist-runner/workers/mtext-renderer-worker.js +2191 -2124
- package/examples/batch-export-html-multi-preview.mjs +306 -236
- package/examples/batch-export-html.mjs +105 -105
- package/examples/batch-export-png.mjs +103 -103
- package/examples/create-drawing-dxf.scr +15 -15
- package/examples/create-drawing-png.scr +19 -19
- package/examples/create-shapes-dxf.scr +17 -17
- package/examples/export-dxf.scr +5 -5
- package/examples/export-html-multi-preview.scr +18 -18
- package/examples/export-html-multi.scr +13 -13
- package/examples/export-html.scr +12 -12
- package/examples/export-pdf.scr +9 -9
- package/examples/export-png.scr +9 -9
- package/examples/freeze-layer-png.scr +15 -15
- package/examples/index.json +114 -114
- package/package.json +9 -9
- package/dist-runner/assets/cad-html-plugin-DeHxlaul.js +0 -1547
- package/dist-runner/assets/cad-pdf-plugin-2fqpe-xS.js +0 -212
- package/dist-runner/assets/cad-svg-plugin-BWNwucA7.js +0 -16
- package/dist-runner/assets/index-B3SgHAxA.js +0 -7313
package/dist/runHeadless.js
CHANGED
|
@@ -82,56 +82,76 @@ function drawingNameFromUrl(urlString) {
|
|
|
82
82
|
}
|
|
83
83
|
return 'drawing.dwg';
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const response = await fetch(inputPath);
|
|
96
|
-
if (!response.ok) {
|
|
97
|
-
throw new Error(`Failed to download drawing (${response.status} ${response.statusText}): ${inputPath}`);
|
|
98
|
-
}
|
|
99
|
-
const bytes = Buffer.from(await response.arrayBuffer());
|
|
100
|
-
return {
|
|
101
|
-
label: inputPath,
|
|
102
|
-
fileName,
|
|
103
|
-
base64: bytes.toString('base64')
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
const absoluteInput = path.resolve(inputPath);
|
|
107
|
-
const ext = path.extname(absoluteInput).toLowerCase();
|
|
108
|
-
if (ext !== '.dxf' && ext !== '.dwg') {
|
|
109
|
-
throw new Error(`Unsupported file type "${ext}". Only .dxf and .dwg are supported.`);
|
|
110
|
-
}
|
|
111
|
-
if (!existsSync(absoluteInput)) {
|
|
112
|
-
throw new Error(`Input drawing not found: ${absoluteInput}`);
|
|
113
|
-
}
|
|
114
|
-
const fileBytes = await readFile(absoluteInput);
|
|
115
|
-
return {
|
|
116
|
-
label: absoluteInput,
|
|
117
|
-
fileName: path.basename(absoluteInput),
|
|
118
|
-
base64: fileBytes.toString('base64')
|
|
85
|
+
function contentTypeFor(filePath) {
|
|
86
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
87
|
+
const types = {
|
|
88
|
+
'.html': 'text/html; charset=utf-8',
|
|
89
|
+
'.js': 'text/javascript; charset=utf-8',
|
|
90
|
+
'.css': 'text/css; charset=utf-8',
|
|
91
|
+
'.json': 'application/json',
|
|
92
|
+
'.wasm': 'application/wasm',
|
|
93
|
+
'.dwg': 'application/octet-stream',
|
|
94
|
+
'.dxf': 'application/octet-stream'
|
|
119
95
|
};
|
|
96
|
+
return types[ext] ?? 'application/octet-stream';
|
|
97
|
+
}
|
|
98
|
+
async function readRequestBody(req) {
|
|
99
|
+
const chunks = [];
|
|
100
|
+
for await (const chunk of req) {
|
|
101
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
102
|
+
}
|
|
103
|
+
return Buffer.concat(chunks);
|
|
120
104
|
}
|
|
121
105
|
/**
|
|
122
|
-
* Starts a loopback HTTP server
|
|
123
|
-
*
|
|
124
|
-
* Used to load the Vite-built runner page into Playwright without packing
|
|
125
|
-
* assets into a `file://` URL.
|
|
126
|
-
*
|
|
127
|
-
* @param root - Absolute directory to serve (typically {@link runnerDistDir})
|
|
128
|
-
* @returns Server base URL and a `close` function that shuts the listener down
|
|
106
|
+
* Starts a loopback HTTP server for the CLI runner, drawing inputs, and
|
|
107
|
+
* binary download saves (avoids base64 over CDP).
|
|
129
108
|
*/
|
|
130
|
-
function
|
|
109
|
+
function startCliStaticServer(root) {
|
|
131
110
|
return new Promise((resolve, reject) => {
|
|
111
|
+
const mountedInputs = new Map();
|
|
112
|
+
let saveDir = null;
|
|
113
|
+
let savedFiles = [];
|
|
114
|
+
let mountSeq = 0;
|
|
132
115
|
const server = createServer((req, res) => {
|
|
116
|
+
void handleRequest(req, res);
|
|
117
|
+
});
|
|
118
|
+
async function handleRequest(req, res) {
|
|
133
119
|
try {
|
|
134
|
-
const urlPath = decodeURIComponent((req.url ?? '/').split('?')[0]);
|
|
120
|
+
const urlPath = decodeURIComponent((req.url ?? '/').split('?')[0] ?? '/');
|
|
121
|
+
if (req.method === 'POST' && urlPath.startsWith('/__cli_save__/')) {
|
|
122
|
+
if (!saveDir) {
|
|
123
|
+
res.writeHead(500);
|
|
124
|
+
res.end('Save directory not configured');
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const fileName = path.basename(urlPath.slice('/__cli_save__/'.length));
|
|
128
|
+
if (!fileName) {
|
|
129
|
+
res.writeHead(400);
|
|
130
|
+
res.end('Missing file name');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const body = await readRequestBody(req);
|
|
134
|
+
const dest = uniqueOutputPath(saveDir, fileName);
|
|
135
|
+
await writeFile(dest, body);
|
|
136
|
+
savedFiles.push(dest);
|
|
137
|
+
res.writeHead(204);
|
|
138
|
+
res.end();
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (urlPath.startsWith('/__cli_input__/')) {
|
|
142
|
+
const absolute = mountedInputs.get(urlPath);
|
|
143
|
+
if (!absolute || !existsSync(absolute)) {
|
|
144
|
+
res.writeHead(404);
|
|
145
|
+
res.end();
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const body = await readFile(absolute);
|
|
149
|
+
res.setHeader('Content-Type', contentTypeFor(absolute));
|
|
150
|
+
res.setHeader('Content-Length', String(body.byteLength));
|
|
151
|
+
res.writeHead(200);
|
|
152
|
+
res.end(body);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
135
155
|
const relative = urlPath === '/' ? 'index.html' : urlPath.replace(/^\//, '');
|
|
136
156
|
const filePath = path.join(root, relative);
|
|
137
157
|
if (!filePath.startsWith(root)) {
|
|
@@ -144,33 +164,42 @@ function startStaticServer(root) {
|
|
|
144
164
|
res.end();
|
|
145
165
|
return;
|
|
146
166
|
}
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
'.css': 'text/css; charset=utf-8',
|
|
152
|
-
'.json': 'application/json',
|
|
153
|
-
'.wasm': 'application/wasm'
|
|
154
|
-
};
|
|
155
|
-
res.setHeader('Content-Type', types[ext] ?? 'application/octet-stream');
|
|
156
|
-
void readFile(filePath).then(body => {
|
|
157
|
-
res.writeHead(200);
|
|
158
|
-
res.end(body);
|
|
159
|
-
});
|
|
167
|
+
res.setHeader('Content-Type', contentTypeFor(filePath));
|
|
168
|
+
const body = await readFile(filePath);
|
|
169
|
+
res.writeHead(200);
|
|
170
|
+
res.end(body);
|
|
160
171
|
}
|
|
161
172
|
catch (error) {
|
|
162
173
|
res.writeHead(500);
|
|
163
174
|
res.end(String(error));
|
|
164
175
|
}
|
|
165
|
-
}
|
|
176
|
+
}
|
|
166
177
|
server.listen(0, '127.0.0.1', () => {
|
|
167
178
|
const address = server.address();
|
|
168
179
|
if (!address || typeof address === 'string') {
|
|
169
180
|
reject(new Error('Failed to start static server for CLI runner.'));
|
|
170
181
|
return;
|
|
171
182
|
}
|
|
183
|
+
const baseUrl = `http://127.0.0.1:${address.port}`;
|
|
172
184
|
resolve({
|
|
173
|
-
url:
|
|
185
|
+
url: baseUrl,
|
|
186
|
+
mountInput: (absolutePath, _fileName) => {
|
|
187
|
+
const token = String(++mountSeq);
|
|
188
|
+
const urlPath = `/__cli_input__/${token}`;
|
|
189
|
+
mountedInputs.set(urlPath, absolutePath);
|
|
190
|
+
return `${baseUrl}${urlPath}`;
|
|
191
|
+
},
|
|
192
|
+
setSaveDir: dir => {
|
|
193
|
+
saveDir = dir;
|
|
194
|
+
},
|
|
195
|
+
takeSavedFiles: () => {
|
|
196
|
+
const files = savedFiles;
|
|
197
|
+
savedFiles = [];
|
|
198
|
+
return files;
|
|
199
|
+
},
|
|
200
|
+
resetSavedFiles: () => {
|
|
201
|
+
savedFiles = [];
|
|
202
|
+
},
|
|
174
203
|
close: () => new Promise((closeResolve, closeReject) => {
|
|
175
204
|
server.close(err => (err ? closeReject(err) : closeResolve()));
|
|
176
205
|
})
|
|
@@ -179,93 +208,128 @@ function startStaticServer(root) {
|
|
|
179
208
|
});
|
|
180
209
|
}
|
|
181
210
|
/**
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
* When `inputPath` is omitted, the runner starts from a blank ISO template
|
|
186
|
-
* (write mode) so scripts can create geometry from scratch. The page waits for
|
|
187
|
-
* entity convert / deferred font geometry before executing the script so
|
|
188
|
-
* exports such as `pngout` include rendered text.
|
|
189
|
-
*
|
|
190
|
-
* @param options - Script path, optional input drawing, output dir, locale,
|
|
191
|
-
* open mode / view / tessellation options, resource base URL, logfile
|
|
192
|
-
* @returns Absolute output directory and list of saved file paths
|
|
193
|
-
* @throws If the script or input file is missing, the file type is unsupported,
|
|
194
|
-
* the runner build is missing, or the in-page script fails
|
|
211
|
+
* Long-lived headless Chromium session that can run many drawings without
|
|
212
|
+
* relaunching the browser or reloading WASM/fonts for each file.
|
|
195
213
|
*/
|
|
196
|
-
export
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
absoluteInput = drawing.label;
|
|
207
|
-
fileName = drawing.fileName;
|
|
208
|
-
base64 = drawing.base64;
|
|
209
|
-
}
|
|
210
|
-
const outputDir = path.resolve(options.outputDir ??
|
|
211
|
-
(absoluteInput && !isHttpUrl(absoluteInput)
|
|
212
|
-
? path.dirname(absoluteInput)
|
|
213
|
-
: process.cwd()));
|
|
214
|
-
await mkdir(outputDir, { recursive: true });
|
|
215
|
-
const runnerDir = runnerDistDir();
|
|
216
|
-
if (!existsSync(path.join(runnerDir, 'index.html'))) {
|
|
217
|
-
throw new Error('CLI runner is not built. Run "pnpm --filter @mlightcad/cad-simple-viewer-cli build".');
|
|
214
|
+
export class HeadlessCadSession {
|
|
215
|
+
browser;
|
|
216
|
+
page;
|
|
217
|
+
server;
|
|
218
|
+
launchMs;
|
|
219
|
+
constructor(browser, page, server, launchMs) {
|
|
220
|
+
this.browser = browser;
|
|
221
|
+
this.page = page;
|
|
222
|
+
this.server = server;
|
|
223
|
+
this.launchMs = launchMs;
|
|
218
224
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
225
|
+
static async create() {
|
|
226
|
+
const runnerDir = runnerDistDir();
|
|
227
|
+
if (!existsSync(path.join(runnerDir, 'index.html'))) {
|
|
228
|
+
throw new Error('CLI runner is not built. Run "pnpm --filter @mlightcad/cad-simple-viewer-cli build".');
|
|
229
|
+
}
|
|
230
|
+
const t0 = performance.now();
|
|
231
|
+
const server = await startCliStaticServer(runnerDir);
|
|
232
|
+
const channel = process.env.PLAYWRIGHT_BROWSER_CHANNEL;
|
|
233
|
+
const browser = await chromium.launch({
|
|
234
|
+
headless: true,
|
|
235
|
+
...(channel ? { channel } : {})
|
|
236
|
+
});
|
|
231
237
|
const context = await browser.newContext({ acceptDownloads: true });
|
|
232
238
|
const page = await context.newPage();
|
|
239
|
+
page.on('console', msg => {
|
|
240
|
+
const text = msg.text();
|
|
241
|
+
if (text.includes('GL Driver Message')) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (text.startsWith('[cad-simple-viewer-cli]') ||
|
|
245
|
+
text.startsWith('[chtml]') ||
|
|
246
|
+
msg.type() === 'error' ||
|
|
247
|
+
msg.type() === 'warning') {
|
|
248
|
+
console.log(text);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
page.on('pageerror', error => {
|
|
252
|
+
console.error('[cad-simple-viewer-cli] page error:', error.message);
|
|
253
|
+
});
|
|
233
254
|
await page.goto(`${server.url}/index.html`, { waitUntil: 'networkidle' });
|
|
255
|
+
const launchMs = performance.now() - t0;
|
|
256
|
+
console.log(`[cad-simple-viewer-cli] browser ready: ${launchMs.toFixed(0)} ms`);
|
|
257
|
+
return new HeadlessCadSession(browser, page, server, launchMs);
|
|
258
|
+
}
|
|
259
|
+
get browserLaunchMs() {
|
|
260
|
+
return this.launchMs;
|
|
261
|
+
}
|
|
262
|
+
async run(options) {
|
|
263
|
+
const absoluteScript = path.resolve(options.scriptPath);
|
|
264
|
+
if (!existsSync(absoluteScript)) {
|
|
265
|
+
throw new Error(`Script not found: ${absoluteScript}`);
|
|
266
|
+
}
|
|
267
|
+
const timings = {
|
|
268
|
+
browserLaunch: this.launchMs
|
|
269
|
+
};
|
|
270
|
+
const runT0 = performance.now();
|
|
271
|
+
let absoluteInput;
|
|
272
|
+
let fileName = null;
|
|
273
|
+
let drawingUrl = null;
|
|
274
|
+
if (options.inputPath) {
|
|
275
|
+
const tLoad = performance.now();
|
|
276
|
+
if (isHttpUrl(options.inputPath)) {
|
|
277
|
+
absoluteInput = options.inputPath;
|
|
278
|
+
fileName = drawingNameFromUrl(options.inputPath);
|
|
279
|
+
const ext = path.extname(fileName).toLowerCase();
|
|
280
|
+
if (ext !== '.dxf' && ext !== '.dwg') {
|
|
281
|
+
throw new Error(`Unsupported remote drawing "${fileName}". URL path must end with .dxf or .dwg.`);
|
|
282
|
+
}
|
|
283
|
+
drawingUrl = options.inputPath;
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
absoluteInput = path.resolve(options.inputPath);
|
|
287
|
+
const ext = path.extname(absoluteInput).toLowerCase();
|
|
288
|
+
if (ext !== '.dxf' && ext !== '.dwg') {
|
|
289
|
+
throw new Error(`Unsupported file type "${ext}". Only .dxf and .dwg are supported.`);
|
|
290
|
+
}
|
|
291
|
+
if (!existsSync(absoluteInput)) {
|
|
292
|
+
throw new Error(`Input drawing not found: ${absoluteInput}`);
|
|
293
|
+
}
|
|
294
|
+
fileName = path.basename(absoluteInput);
|
|
295
|
+
drawingUrl = this.server.mountInput(absoluteInput, fileName);
|
|
296
|
+
}
|
|
297
|
+
timings.mountInput = performance.now() - tLoad;
|
|
298
|
+
}
|
|
299
|
+
const outputDir = path.resolve(options.outputDir ??
|
|
300
|
+
(absoluteInput && !isHttpUrl(absoluteInput)
|
|
301
|
+
? path.dirname(absoluteInput)
|
|
302
|
+
: process.cwd()));
|
|
303
|
+
await mkdir(outputDir, { recursive: true });
|
|
304
|
+
this.server.setSaveDir(outputDir);
|
|
305
|
+
this.server.resetSavedFiles();
|
|
306
|
+
const scriptText = await readFile(absoluteScript, 'utf8');
|
|
307
|
+
const mode = options.mode ?? (absoluteInput ? 'read' : 'write');
|
|
308
|
+
const logfile = options.logfile ? path.resolve(options.logfile) : undefined;
|
|
309
|
+
await appendLog(logfile, `[cad-simple-viewer-cli] input=${absoluteInput ?? '(blank)'} script=${absoluteScript} output=${outputDir}`);
|
|
234
310
|
const openExtras = {
|
|
235
311
|
openViewMode: options.openViewMode,
|
|
236
312
|
drawNoPlotLayers: options.drawNoPlotLayers,
|
|
237
313
|
circleSides: options.circleSides,
|
|
238
|
-
baseUrl: options.baseUrl
|
|
314
|
+
baseUrl: options.baseUrl,
|
|
315
|
+
saveBaseUrl: `${this.server.url}/__cli_save__/`
|
|
239
316
|
};
|
|
240
|
-
|
|
317
|
+
const tScript = performance.now();
|
|
241
318
|
try {
|
|
242
|
-
|
|
243
|
-
|
|
319
|
+
await this.page.evaluate(async ({ name, drawingUrl: url, script, locale, mode: openMode, startBlank, openViewMode, drawNoPlotLayers, circleSides, baseUrl, saveBaseUrl }) => {
|
|
320
|
+
return window.runCadScript(name, url, script, {
|
|
244
321
|
locale,
|
|
245
322
|
mode: openMode,
|
|
323
|
+
startBlank,
|
|
246
324
|
openViewMode,
|
|
247
325
|
drawNoPlotLayers,
|
|
248
326
|
circleSides,
|
|
249
|
-
baseUrl
|
|
250
|
-
|
|
251
|
-
if (data == null || name == null) {
|
|
252
|
-
return window.runCadScript(null, null, script, {
|
|
253
|
-
...runOptions,
|
|
254
|
-
startBlank
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
const binary = atob(data);
|
|
258
|
-
const bytes = new Uint8Array(binary.length);
|
|
259
|
-
for (let i = 0; i < binary.length; i++) {
|
|
260
|
-
bytes[i] = binary.charCodeAt(i);
|
|
261
|
-
}
|
|
262
|
-
return window.runCadScript(name, bytes, script, {
|
|
263
|
-
...runOptions,
|
|
264
|
-
startBlank: false
|
|
327
|
+
baseUrl,
|
|
328
|
+
saveBaseUrl
|
|
265
329
|
});
|
|
266
330
|
}, {
|
|
267
331
|
name: fileName,
|
|
268
|
-
|
|
332
|
+
drawingUrl,
|
|
269
333
|
script: scriptText,
|
|
270
334
|
locale: options.locale,
|
|
271
335
|
mode,
|
|
@@ -278,18 +342,57 @@ export async function runHeadless(options) {
|
|
|
278
342
|
await appendLog(logfile, `[cad-simple-viewer-cli] script failed: ${message}`);
|
|
279
343
|
throw error;
|
|
280
344
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
savedFiles.push(dest);
|
|
345
|
+
timings.scriptAndExport = performance.now() - tScript;
|
|
346
|
+
const savedFiles = this.server.takeSavedFiles();
|
|
347
|
+
for (const dest of savedFiles) {
|
|
285
348
|
await appendLog(logfile, `[cad-simple-viewer-cli] saved ${dest}`);
|
|
286
349
|
}
|
|
287
|
-
|
|
288
|
-
|
|
350
|
+
timings.total = performance.now() - runT0;
|
|
351
|
+
await appendLog(logfile, `[cad-simple-viewer-cli] done saved=${savedFiles.length} totalMs=${timings.total.toFixed(0)}`);
|
|
352
|
+
console.log('[cad-simple-viewer-cli] timings: ' +
|
|
353
|
+
Object.entries(timings)
|
|
354
|
+
.map(([k, v]) => `${k}=${v.toFixed(0)}ms`)
|
|
355
|
+
.join(' '));
|
|
356
|
+
return { outputDir, savedFiles, timings };
|
|
357
|
+
}
|
|
358
|
+
async close() {
|
|
359
|
+
await this.browser.close();
|
|
360
|
+
await this.server.close();
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Runs a `.scr` command script in headless Chromium and writes captured
|
|
365
|
+
* export downloads into `outputDir`.
|
|
366
|
+
*
|
|
367
|
+
* Prefer {@link HeadlessCadSession} when exporting many drawings so the
|
|
368
|
+
* browser and WASM parser stay warm across files.
|
|
369
|
+
*/
|
|
370
|
+
export async function runHeadless(options) {
|
|
371
|
+
const session = await HeadlessCadSession.create();
|
|
372
|
+
try {
|
|
373
|
+
return await session.run(options);
|
|
374
|
+
}
|
|
375
|
+
finally {
|
|
376
|
+
await session.close();
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Runs the same script against many drawings in one Chromium session.
|
|
381
|
+
*/
|
|
382
|
+
export async function runHeadlessBatch(jobs) {
|
|
383
|
+
if (jobs.length === 0) {
|
|
384
|
+
return [];
|
|
385
|
+
}
|
|
386
|
+
const session = await HeadlessCadSession.create();
|
|
387
|
+
const results = [];
|
|
388
|
+
try {
|
|
389
|
+
for (const job of jobs) {
|
|
390
|
+
results.push(await session.run(job));
|
|
391
|
+
}
|
|
392
|
+
return results;
|
|
289
393
|
}
|
|
290
394
|
finally {
|
|
291
|
-
await
|
|
292
|
-
await server.close();
|
|
395
|
+
await session.close();
|
|
293
396
|
}
|
|
294
397
|
}
|
|
295
398
|
//# sourceMappingURL=runHeadless.js.map
|
package/dist/runHeadless.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runHeadless.js","sourceRoot":"","sources":["../src/runHeadless.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runHeadless.js","sourceRoot":"","sources":["../src/runHeadless.ts"],"names":[],"mappings":"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"}
|