ezx 0.0.17 → 0.0.18
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/index.d.ts.map +1 -1
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +18 -2
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAwDD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAwDD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2I5G;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvG;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjH;AAGD,cAAc,IAAI,CAAC;AAGnB,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -123,10 +123,25 @@ export async function runMarkdown(markdown, options = {}) {
|
|
|
123
123
|
// Resolve the absolute path to zx/globals using Node's module resolution
|
|
124
124
|
// This will work regardless of where ezx is installed (local, global, or as a dependency)
|
|
125
125
|
const zxGlobalsPath = await import.meta.resolve('zx/globals');
|
|
126
|
+
// Generate temp file path first so we can include it in the preamble for cleanup
|
|
127
|
+
const cwd = options.cwd || process.cwd();
|
|
128
|
+
const tempFile = path.join(cwd, `.ezx-${randomBytes(8).toString('hex')}.mjs`);
|
|
126
129
|
// Prepend globals import to make $, fs, path, etc. available in the script context
|
|
127
130
|
// Use the resolved absolute path to ensure zx is found
|
|
128
131
|
// Also suppress the DEP0190 deprecation warning from Node.js about shell args
|
|
132
|
+
// And add SIGINT handler to exit cleanly when user presses Ctrl+C
|
|
129
133
|
let preamble = `process.noDeprecation = true;\n\nawait import('${zxGlobalsPath}')\n\n`;
|
|
134
|
+
// Store temp file path for cleanup in SIGINT handler
|
|
135
|
+
preamble += `const __ezx_temp_file = '${tempFile.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';\n\n`;
|
|
136
|
+
// Add SIGINT handler to exit cleanly - this prevents zx from throwing errors when Ctrl+C is pressed
|
|
137
|
+
preamble += `process.on('SIGINT', () => {\n`;
|
|
138
|
+
preamble += ` if (typeof __ezx_async_processes !== 'undefined') {\n`;
|
|
139
|
+
preamble += ` __ezx_async_processes.forEach(p => p.kill('SIGKILL'));\n`;
|
|
140
|
+
preamble += ` }\n`;
|
|
141
|
+
preamble += ` // Clean up temp file - fs is available from zx/globals\n`;
|
|
142
|
+
preamble += ` try { fs.rmSync(__ezx_temp_file, { force: true }); } catch {}\n`;
|
|
143
|
+
preamble += ` process.exit(0);\n`;
|
|
144
|
+
preamble += `});\n\n`;
|
|
130
145
|
// If killOnComplete is enabled and there are async blocks, add process tracking
|
|
131
146
|
if (options.killOnComplete && hasAsyncBlocks) {
|
|
132
147
|
preamble += `const __ezx_async_processes = [];\n\n`;
|
|
@@ -140,8 +155,6 @@ export async function runMarkdown(markdown, options = {}) {
|
|
|
140
155
|
// Write to temp file in current directory (not tmpdir) so zx can be resolved
|
|
141
156
|
// Node's module resolution looks for package.json starting from the file's directory,
|
|
142
157
|
// so the temp file needs to be in a location that has access to node_modules
|
|
143
|
-
const cwd = options.cwd || process.cwd();
|
|
144
|
-
const tempFile = path.join(cwd, `.ezx-${randomBytes(8).toString('hex')}.mjs`);
|
|
145
158
|
await fs.writeFile(tempFile, jsCode);
|
|
146
159
|
// Register cleanup handlers for various exit scenarios
|
|
147
160
|
let tempFileCleaned = false;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAC,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAgB,aAAa,EAAC,MAAM,UAAU,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAE5E,iEAAiE;AACjE,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAgB3B;;;GAGG;AACH,SAAS,wBAAwB,CAAC,QAAgB,EAAE,eAAyB;IAC5E,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,iEAAiE;IACjE,MAAM,yBAAyB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,mBAAmB,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,oBAAoB;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,WAAW,GAAG,CAAC,WAAW,CAAC;QAC5B,CAAC;QAED,mDAAmD;QACnD,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7D,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAElD,2DAA2D;YAC3D,IAAI,yBAAyB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,iBAAiB,GAAG,IAAI,CAAC;gBACzB,mBAAmB,GAAG,KAAK,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B;YACjD,CAAC;iBAAM,IAAI,iBAAiB,EAAE,CAAC;gBAC9B,iFAAiF;gBACjF,2DAA2D;gBAC3D,IAAI,KAAK,IAAI,mBAAmB,EAAE,CAAC;oBAClC,iBAAiB,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;aAAM,IAAI,iBAAiB,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAyB,EAAE,UAA8B,EAAE;IAC5F,qBAAqB;IACrB,MAAM,UAAU,GAAG;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,WAAW,EAAE,CAAC,CAAC,WAAW;KAC1B,CAAC;IAEF,IAAI,CAAC;QACJ,gBAAgB;QAChB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACzD,IAAI,OAAO,CAAC,KAAK;YAAE,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9C,IAAI,OAAO,CAAC,OAAO;YAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjD,IAAI,OAAO,CAAC,GAAG;YAAE,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACrC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAE3E,4CAA4C;QAC5C,IAAI,eAAuB,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrG,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACP,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAED,gCAAgC;QAChC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,eAAe,GAAG,wBAAwB,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/E,CAAC;QAED,4CAA4C;QAC5C,MAAM,EAAC,oBAAoB,EAAE,cAAc,EAAC,GAAG,kBAAkB,CAAC,eAAe,EAAE;YAClF,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YACjC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;SACtC,CAAC,CAAC;QAEH,8EAA8E;QAC9E,sEAAsE;QACtE,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QAEtE,wEAAwE;QACxE,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;gBAChD,gBAAgB;gBAChB,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACP,mBAAmB;gBACnB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAChC,CAAC;YACD,OAAO;QACR,CAAC;QAED,mCAAmC;QACnC,IAAI,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAElD,yEAAyE;QACzE,0FAA0F;QAC1F,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE9D,iFAAiF;QACjF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9E,mFAAmF;QACnF,uDAAuD;QACvD,8EAA8E;QAC9E,kEAAkE;QAClE,IAAI,QAAQ,GAAG,kDAAkD,aAAa,QAAQ,CAAC;QAEvF,qDAAqD;QACrD,QAAQ,IAAI,4BAA4B,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;QAErG,oGAAoG;QACpG,QAAQ,IAAI,gCAAgC,CAAC;QAC7C,QAAQ,IAAI,yDAAyD,CAAC;QACtE,QAAQ,IAAI,8DAA8D,CAAC;QAC3E,QAAQ,IAAI,OAAO,CAAC;QACpB,QAAQ,IAAI,6DAA6D,CAAC;QAC1E,QAAQ,IAAI,mEAAmE,CAAC;QAChF,QAAQ,IAAI,sBAAsB,CAAC;QACnC,QAAQ,IAAI,SAAS,CAAC;QAEtB,gFAAgF;QAChF,IAAI,OAAO,CAAC,cAAc,IAAI,cAAc,EAAE,CAAC;YAC9C,QAAQ,IAAI,uCAAuC,CAAC;QACrD,CAAC;QAED,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;QAE3B,4EAA4E;QAC5E,IAAI,OAAO,CAAC,cAAc,IAAI,cAAc,EAAE,CAAC;YAC9C,6FAA6F;YAC7F,MAAM,IAAI,yGAAyG,CAAC;QACrH,CAAC;QAED,6EAA6E;QAC7E,sFAAsF;QACtF,6EAA6E;QAC7E,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAErC,uDAAuD;QACvD,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,eAAe;gBAAE,OAAO;YAC5B,eAAe,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC;gBACJ,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACR,wBAAwB;YACzB,CAAC;QACF,CAAC,CAAC;QAEF,8DAA8D;QAC9D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/B,IAAI,CAAC;YACJ,wDAAwD;YACxD,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACV,gDAAgD;YAChD,MAAM,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;YAAS,CAAC;QACV,gBAAgB;QAChB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9B,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,UAA8B,EAAE;IACvF,OAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,eAAuB,EAAE,UAA8B,EAAE;IACjG,OAAO,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,+CAA+C;AAC/C,cAAc,IAAI,CAAC;AAEnB,gCAAgC;AAChC,cAAc,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ezx",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "Enhanced zx - Write better shell scripts with markdown preprocessing features including directory context persistence, file extraction, and fixes for zx's indentation parsing issues",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"zx",
|
package/src/index.ts
CHANGED
|
@@ -146,11 +146,29 @@ export async function runMarkdown(markdown: string | Buffer, options: RunMarkdow
|
|
|
146
146
|
// This will work regardless of where ezx is installed (local, global, or as a dependency)
|
|
147
147
|
const zxGlobalsPath = await import.meta.resolve('zx/globals');
|
|
148
148
|
|
|
149
|
+
// Generate temp file path first so we can include it in the preamble for cleanup
|
|
150
|
+
const cwd = options.cwd || process.cwd();
|
|
151
|
+
const tempFile = path.join(cwd, `.ezx-${randomBytes(8).toString('hex')}.mjs`);
|
|
152
|
+
|
|
149
153
|
// Prepend globals import to make $, fs, path, etc. available in the script context
|
|
150
154
|
// Use the resolved absolute path to ensure zx is found
|
|
151
155
|
// Also suppress the DEP0190 deprecation warning from Node.js about shell args
|
|
156
|
+
// And add SIGINT handler to exit cleanly when user presses Ctrl+C
|
|
152
157
|
let preamble = `process.noDeprecation = true;\n\nawait import('${zxGlobalsPath}')\n\n`;
|
|
153
158
|
|
|
159
|
+
// Store temp file path for cleanup in SIGINT handler
|
|
160
|
+
preamble += `const __ezx_temp_file = '${tempFile.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';\n\n`;
|
|
161
|
+
|
|
162
|
+
// Add SIGINT handler to exit cleanly - this prevents zx from throwing errors when Ctrl+C is pressed
|
|
163
|
+
preamble += `process.on('SIGINT', () => {\n`;
|
|
164
|
+
preamble += ` if (typeof __ezx_async_processes !== 'undefined') {\n`;
|
|
165
|
+
preamble += ` __ezx_async_processes.forEach(p => p.kill('SIGKILL'));\n`;
|
|
166
|
+
preamble += ` }\n`;
|
|
167
|
+
preamble += ` // Clean up temp file - fs is available from zx/globals\n`;
|
|
168
|
+
preamble += ` try { fs.rmSync(__ezx_temp_file, { force: true }); } catch {}\n`;
|
|
169
|
+
preamble += ` process.exit(0);\n`;
|
|
170
|
+
preamble += `});\n\n`;
|
|
171
|
+
|
|
154
172
|
// If killOnComplete is enabled and there are async blocks, add process tracking
|
|
155
173
|
if (options.killOnComplete && hasAsyncBlocks) {
|
|
156
174
|
preamble += `const __ezx_async_processes = [];\n\n`;
|
|
@@ -167,8 +185,6 @@ export async function runMarkdown(markdown: string | Buffer, options: RunMarkdow
|
|
|
167
185
|
// Write to temp file in current directory (not tmpdir) so zx can be resolved
|
|
168
186
|
// Node's module resolution looks for package.json starting from the file's directory,
|
|
169
187
|
// so the temp file needs to be in a location that has access to node_modules
|
|
170
|
-
const cwd = options.cwd || process.cwd();
|
|
171
|
-
const tempFile = path.join(cwd, `.ezx-${randomBytes(8).toString('hex')}.mjs`);
|
|
172
188
|
await fs.writeFile(tempFile, jsCode);
|
|
173
189
|
|
|
174
190
|
// Register cleanup handlers for various exit scenarios
|