unrun 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +10 -4
- package/dist/index.mjs +1 -1
- package/dist/{src-en4IVaeD.mjs → src-BW3bFBxp.mjs} +16 -9
- package/dist/sync/worker.mjs +1 -1
- package/package.json +25 -17
package/dist/index.d.mts
CHANGED
|
@@ -33,11 +33,17 @@ interface Options {
|
|
|
33
33
|
}
|
|
34
34
|
//#endregion
|
|
35
35
|
//#region src/types.d.ts
|
|
36
|
-
interface Result {
|
|
36
|
+
interface Result<T = unknown> {
|
|
37
37
|
/**
|
|
38
38
|
* The module that was loaded.
|
|
39
|
+
* You can specify the type of the module by providing a type argument when using the `unrun` function.
|
|
39
40
|
*/
|
|
40
|
-
module:
|
|
41
|
+
module: T;
|
|
42
|
+
/**
|
|
43
|
+
* The dependencies involved when loading the targeted module.
|
|
44
|
+
* Note: this only includes local file dependencies, npm-resolved dependencies are excluded.
|
|
45
|
+
*/
|
|
46
|
+
dependencies: string[];
|
|
41
47
|
}
|
|
42
48
|
interface CliResult {
|
|
43
49
|
/**
|
|
@@ -53,7 +59,7 @@ interface CliResult {
|
|
|
53
59
|
* @param options - The options for loading the module.
|
|
54
60
|
* @returns A promise that resolves to the loaded module.
|
|
55
61
|
*/
|
|
56
|
-
declare function unrun(options: Options): Promise<Result
|
|
62
|
+
declare function unrun<T>(options: Options): Promise<Result<T>>;
|
|
57
63
|
/**
|
|
58
64
|
* Loads a module with JIT transpilation based on the provided options.
|
|
59
65
|
* This function runs synchronously using a worker thread.
|
|
@@ -61,7 +67,7 @@ declare function unrun(options: Options): Promise<Result>;
|
|
|
61
67
|
* @param options - The options for loading the module.
|
|
62
68
|
* @returns The loaded module.
|
|
63
69
|
*/
|
|
64
|
-
declare function unrunSync(options: Options): Result
|
|
70
|
+
declare function unrunSync<T>(options: Options): Result<T>;
|
|
65
71
|
/**
|
|
66
72
|
* Runs a given module with JIT transpilation based on the provided options.
|
|
67
73
|
* This function does not return the module, as it simply executes it.
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
2
|
import process from "node:process";
|
|
3
|
-
import { createSyncFn } from "synckit";
|
|
4
3
|
import path from "node:path";
|
|
5
4
|
import fs, { existsSync } from "node:fs";
|
|
6
5
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
@@ -404,7 +403,11 @@ async function bundle(options) {
|
|
|
404
403
|
};
|
|
405
404
|
const rolldownOutput = await bundle$1.generate(outputOptions);
|
|
406
405
|
if (!rolldownOutput.output[0]) throw new Error("[unrun] No output chunk found");
|
|
407
|
-
|
|
406
|
+
const files = await bundle$1.watchFiles;
|
|
407
|
+
return {
|
|
408
|
+
chunk: rolldownOutput.output[0],
|
|
409
|
+
dependencies: files
|
|
410
|
+
};
|
|
408
411
|
}
|
|
409
412
|
|
|
410
413
|
//#endregion
|
|
@@ -540,14 +543,17 @@ async function loadModule(code, options) {
|
|
|
540
543
|
*/
|
|
541
544
|
async function unrun(options) {
|
|
542
545
|
const resolvedOptions = resolveOptions(options);
|
|
543
|
-
const
|
|
546
|
+
const output = await bundle(resolvedOptions);
|
|
544
547
|
let module;
|
|
545
548
|
try {
|
|
546
|
-
module = await loadModule(
|
|
549
|
+
module = await loadModule(output.chunk.code, resolvedOptions);
|
|
547
550
|
} catch (error) {
|
|
548
|
-
throw new Error(`[unrun] Import failed (code length: ${
|
|
551
|
+
throw new Error(`[unrun] Import failed (code length: ${output.chunk.code.length}): ${error.message}`);
|
|
549
552
|
}
|
|
550
|
-
return {
|
|
553
|
+
return {
|
|
554
|
+
module: preset(resolvedOptions, module),
|
|
555
|
+
dependencies: output.dependencies
|
|
556
|
+
};
|
|
551
557
|
}
|
|
552
558
|
/**
|
|
553
559
|
* Loads a module with JIT transpilation based on the provided options.
|
|
@@ -557,6 +563,7 @@ async function unrun(options) {
|
|
|
557
563
|
* @returns The loaded module.
|
|
558
564
|
*/
|
|
559
565
|
function unrunSync(options) {
|
|
566
|
+
const { createSyncFn } = __require("synckit");
|
|
560
567
|
return createSyncFn(__require.resolve("./sync/worker.mjs"), { tsRunner: "node" })(options);
|
|
561
568
|
}
|
|
562
569
|
/**
|
|
@@ -569,13 +576,13 @@ function unrunSync(options) {
|
|
|
569
576
|
*/
|
|
570
577
|
async function unrunCli(options, args = []) {
|
|
571
578
|
const resolvedOptions = resolveOptions(options);
|
|
572
|
-
const
|
|
573
|
-
const moduleUrl = writeModule(
|
|
579
|
+
const output = await bundle(resolvedOptions);
|
|
580
|
+
const moduleUrl = writeModule(output.chunk.code, resolvedOptions);
|
|
574
581
|
let cliResult;
|
|
575
582
|
try {
|
|
576
583
|
cliResult = await execModule(moduleUrl, args);
|
|
577
584
|
} catch (error) {
|
|
578
|
-
throw new Error(`[unrun] Run failed (code length: ${
|
|
585
|
+
throw new Error(`[unrun] Run failed (code length: ${output.chunk.code.length}): ${error.message}`);
|
|
579
586
|
}
|
|
580
587
|
cleanModule(moduleUrl, resolvedOptions);
|
|
581
588
|
return cliResult;
|
package/dist/sync/worker.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unrun",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "A tool to load and execute any JavaScript or TypeScript code at runtime.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,24 +30,31 @@
|
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"synckit": "^0.11.11"
|
|
35
|
+
},
|
|
36
|
+
"peerDependenciesMeta": {
|
|
37
|
+
"synckit": {
|
|
38
|
+
"optional": true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
33
41
|
"dependencies": {
|
|
34
42
|
"@oxc-project/runtime": "^0.96.0",
|
|
35
|
-
"rolldown": "1.0.0-beta.47"
|
|
36
|
-
"synckit": "^0.11.11"
|
|
43
|
+
"rolldown": "1.0.0-beta.47"
|
|
37
44
|
},
|
|
38
45
|
"devDependencies": {
|
|
39
|
-
"@sxzz/eslint-config": "^7.
|
|
46
|
+
"@sxzz/eslint-config": "^7.2.8",
|
|
40
47
|
"@sxzz/prettier-config": "^2.2.4",
|
|
41
|
-
"@types/node": "^24.
|
|
48
|
+
"@types/node": "^24.10.0",
|
|
42
49
|
"acorn": "^8.15.0",
|
|
43
|
-
"bumpp": "^10.
|
|
50
|
+
"bumpp": "^10.3.1",
|
|
44
51
|
"bundle-require": "^5.1.0",
|
|
45
52
|
"config": "^4.1.1",
|
|
46
53
|
"consola": "^3.4.2",
|
|
47
54
|
"defu": "^6.1.4",
|
|
48
55
|
"destr": "^2.0.5",
|
|
49
|
-
"esbuild": "^0.25.
|
|
50
|
-
"eslint": "^9.
|
|
56
|
+
"esbuild": "^0.25.12",
|
|
57
|
+
"eslint": "^9.39.1",
|
|
51
58
|
"estree-walker": "^3.0.3",
|
|
52
59
|
"etag": "^1.8.1",
|
|
53
60
|
"fast-glob": "^3.3.3",
|
|
@@ -58,12 +65,13 @@
|
|
|
58
65
|
"moment-timezone": "^0.6.0",
|
|
59
66
|
"nano-jsx": "^0.2.0",
|
|
60
67
|
"preact": "^10.27.2",
|
|
61
|
-
"preact-render-to-string": "^6.6.
|
|
68
|
+
"preact-render-to-string": "^6.6.3",
|
|
62
69
|
"prettier": "^3.6.2",
|
|
63
|
-
"react": "^19.
|
|
64
|
-
"react-dom": "^19.
|
|
70
|
+
"react": "^19.2.0",
|
|
71
|
+
"react-dom": "^19.2.0",
|
|
65
72
|
"reflect-metadata": "^0.2.2",
|
|
66
|
-
"
|
|
73
|
+
"synckit": "^0.11.11",
|
|
74
|
+
"tinyexec": "^1.0.2",
|
|
67
75
|
"tsdown": "^0.16.0",
|
|
68
76
|
"tsx": "^4.20.6",
|
|
69
77
|
"typedoc": "^0.28.14",
|
|
@@ -71,12 +79,12 @@
|
|
|
71
79
|
"typedoc-vitepress-theme": "^1.1.2",
|
|
72
80
|
"typescript": "^5.9.3",
|
|
73
81
|
"unconfig": "^7.3.3",
|
|
74
|
-
"vite": "^7.
|
|
82
|
+
"vite": "^7.2.2",
|
|
75
83
|
"vitepress": "2.0.0-alpha.12",
|
|
76
84
|
"vitepress-plugin-group-icons": "^1.6.5",
|
|
77
|
-
"vitest": "4.0.
|
|
78
|
-
"vue": "^3.5.
|
|
79
|
-
"zod": "^4.1.
|
|
85
|
+
"vitest": "4.0.8",
|
|
86
|
+
"vue": "^3.5.24",
|
|
87
|
+
"zod": "^4.1.12"
|
|
80
88
|
},
|
|
81
89
|
"engines": {
|
|
82
90
|
"node": ">=20.19.0"
|
|
@@ -93,7 +101,7 @@
|
|
|
93
101
|
"benchmark": "tsdown -c benchmark/tsdown.config.ts && node ./benchmark/dist/benchmark.mjs",
|
|
94
102
|
"typecheck": "tsc --noEmit",
|
|
95
103
|
"format": "prettier --cache --write .",
|
|
96
|
-
"release": "bumpp
|
|
104
|
+
"release": "bumpp",
|
|
97
105
|
"docs:dev": "vitepress dev docs",
|
|
98
106
|
"docs:build": "vitepress build docs",
|
|
99
107
|
"docs:preview": "vitepress preview docs",
|