synckit 0.11.4 → 0.11.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.
@@ -0,0 +1,141 @@
1
+ import { MessagePort, TransferListItem } from "node:worker_threads";
2
+ import * as url0 from "url";
3
+
4
+ //#region src/constants.d.ts
5
+ declare const TsRunner: {
6
+ readonly Node: "node";
7
+ readonly Bun: "bun";
8
+ readonly TsNode: "ts-node";
9
+ readonly EsbuildRegister: "esbuild-register";
10
+ readonly EsbuildRunner: "esbuild-runner";
11
+ readonly OXC: "oxc";
12
+ readonly SWC: "swc";
13
+ readonly TSX: "tsx";
14
+ };
15
+ type TsRunner = ValueOf<typeof TsRunner>;
16
+ declare const TS_ESM_PARTIAL_SUPPORTED: boolean;
17
+ declare const MTS_SUPPORTED: boolean;
18
+ declare const MODULE_REGISTER_SUPPORTED: boolean;
19
+ declare const STRIP_TYPES_NODE_VERSION = "22.6";
20
+ declare const TRANSFORM_TYPES_NODE_VERSION = "22.7";
21
+ declare const FEATURE_TYPESCRIPT_NODE_VERSION = "22.10";
22
+ declare const DEFAULT_TYPES_NODE_VERSION = "23.6";
23
+ declare const STRIP_TYPES_FLAG = "--experimental-strip-types";
24
+ declare const TRANSFORM_TYPES_FLAG = "--experimental-transform-types";
25
+ declare const NO_STRIP_TYPES_FLAG = "--no-experimental-strip-types";
26
+ declare const NODE_OPTIONS: string[];
27
+ declare const NO_STRIP_TYPES: boolean;
28
+ declare const DEFAULT_TIMEOUT: number | undefined;
29
+ declare const DEFAULT_EXEC_ARGV: string[];
30
+ declare const DEFAULT_TS_RUNNER: TsRunner | undefined;
31
+ declare const DEFAULT_GLOBAL_SHIMS: boolean;
32
+ declare const DEFAULT_GLOBAL_SHIMS_PRESET: GlobalShim[];
33
+ declare const IMPORT_FLAG = "--import";
34
+ declare const REQUIRE_FLAG = "--require";
35
+ declare const REQUIRE_ABBR_FLAG = "-r";
36
+ declare const REQUIRE_FLAGS: Set<string>;
37
+ declare const LOADER_FLAG = "--loader";
38
+ declare const EXPERIMENTAL_LOADER_FLAG = "--experimental-loader";
39
+ declare const LOADER_FLAGS: Set<string>;
40
+ declare const IMPORT_FLAG_SUPPORTED: boolean;
41
+ declare const INT32_BYTES = 4; //#endregion
42
+ //#region src/types.d.ts
43
+ type AnyFn<R = any, T extends any[] = any[]> = (...args: T) => R;
44
+ type Syncify<T extends AnyFn> = (...args: Parameters<T>) => Awaited<ReturnType<T>>;
45
+ type ValueOf<T> = T[keyof T];
46
+ interface MainToWorkerMessage<T extends unknown[]> {
47
+ id: number;
48
+ args: T;
49
+ }
50
+ interface MainToWorkerCommandMessage {
51
+ id: number;
52
+ cmd: string;
53
+ }
54
+ interface WorkerData {
55
+ sharedBufferView: Int32Array;
56
+ workerPort: MessagePort;
57
+ pnpLoaderPath: string | undefined;
58
+ }
59
+ interface DataMessage<T> {
60
+ result?: T;
61
+ error?: unknown;
62
+ properties?: unknown;
63
+ }
64
+ interface StdioChunk {
65
+ type: 'stderr' | 'stdout';
66
+ chunk: Uint8Array | string;
67
+ encoding: BufferEncoding;
68
+ }
69
+ interface WorkerToMainMessage<T> extends DataMessage<T> {
70
+ id: number;
71
+ stdio: StdioChunk[];
72
+ }
73
+ interface GlobalShim {
74
+ moduleName: string;
75
+ globalName?: string;
76
+ named?: string | null;
77
+ conditional?: boolean;
78
+ }
79
+ interface PackageJson {
80
+ type?: 'commonjs' | 'module';
81
+ }
82
+ interface SynckitOptions {
83
+ execArgv?: string[];
84
+ globalShims?: GlobalShim[] | boolean;
85
+ timeout?: number;
86
+ transferList?: TransferListItem[];
87
+ tsRunner?: TsRunner;
88
+ }
89
+
90
+ //#endregion
91
+ //#region src/common.d.ts
92
+ declare const hasFlag: (flag: string) => boolean;
93
+ declare const parseVersion: (version: string) => number[];
94
+ declare const compareVersion: (version1: string, version2: string) => 1 | -1 | 0;
95
+ declare const NODE_VERSION: string;
96
+ declare const compareNodeVersion: (version: string) => 1 | -1 | 0;
97
+
98
+ //#endregion
99
+ //#region src/helpers.d.ts
100
+ declare const isFile: (path: string) => boolean;
101
+ declare const dataUrl: (code: string) => url0.URL;
102
+ declare const hasRequireFlag: (execArgv: string[]) => boolean;
103
+ declare const hasImportFlag: (execArgv: string[]) => boolean;
104
+ declare const hasLoaderFlag: (execArgv: string[]) => boolean;
105
+ declare const setupTsRunner: (workerPath: string, {
106
+ execArgv,
107
+ tsRunner
108
+ }?: {
109
+ execArgv?: string[];
110
+ tsRunner?: TsRunner;
111
+ }) => {
112
+ ext: string;
113
+ isTs: boolean;
114
+ jsUseEsm: boolean;
115
+ tsRunner: TsRunner | undefined;
116
+ tsUseEsm: boolean;
117
+ workerPath: string;
118
+ pnpLoaderPath: string | undefined;
119
+ execArgv: string[];
120
+ };
121
+ declare const md5Hash: (text: string) => string;
122
+ declare const encodeImportModule: (moduleNameOrGlobalShim: GlobalShim | string, type?: "import" | "require") => string;
123
+ declare const generateGlobals: (workerPath: string, globalShims: GlobalShim[], type?: "import" | "require") => string;
124
+ declare function extractProperties<T extends object>(object: T): T;
125
+ declare function extractProperties<T>(object?: T): T | undefined;
126
+ declare function startWorkerThread<T extends AnyFn, R = Awaited<ReturnType<T>>>(workerPath: string, {
127
+ timeout,
128
+ execArgv,
129
+ tsRunner,
130
+ transferList,
131
+ globalShims
132
+ }?: SynckitOptions): (...args: Parameters<T>) => R;
133
+ declare const overrideStdio: (stdio: StdioChunk[]) => void;
134
+
135
+ //#endregion
136
+ //#region src/index.d.ts
137
+ declare function createSyncFn<T extends AnyFn>(workerPath: URL | string, timeoutOrOptions?: SynckitOptions | number): Syncify<T>;
138
+ declare function runAsWorker<T extends AnyFn<Promise<R> | R>, R = ReturnType<T>>(fn: T): void;
139
+
140
+ //#endregion
141
+ export { AnyFn, DEFAULT_EXEC_ARGV, DEFAULT_GLOBAL_SHIMS, DEFAULT_GLOBAL_SHIMS_PRESET, DEFAULT_TIMEOUT, DEFAULT_TS_RUNNER, DEFAULT_TYPES_NODE_VERSION, DataMessage, EXPERIMENTAL_LOADER_FLAG, FEATURE_TYPESCRIPT_NODE_VERSION, GlobalShim, IMPORT_FLAG, IMPORT_FLAG_SUPPORTED, INT32_BYTES, LOADER_FLAG, LOADER_FLAGS, MODULE_REGISTER_SUPPORTED, MTS_SUPPORTED, MainToWorkerCommandMessage, MainToWorkerMessage, NODE_OPTIONS, NODE_VERSION, NO_STRIP_TYPES, NO_STRIP_TYPES_FLAG, PackageJson, REQUIRE_ABBR_FLAG, REQUIRE_FLAG, REQUIRE_FLAGS, STRIP_TYPES_FLAG, STRIP_TYPES_NODE_VERSION, StdioChunk, Syncify, SynckitOptions, TRANSFORM_TYPES_FLAG, TRANSFORM_TYPES_NODE_VERSION, TS_ESM_PARTIAL_SUPPORTED, TsRunner, ValueOf, WorkerData, WorkerToMainMessage, compareNodeVersion, compareVersion, createSyncFn, dataUrl, encodeImportModule, extractProperties, generateGlobals, hasFlag, hasImportFlag, hasLoaderFlag, hasRequireFlag, isFile, md5Hash, overrideStdio, parseVersion, runAsWorker, setupTsRunner, startWorkerThread };
package/lib/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import { __awaiter } from "tslib";
2
1
  import module from 'node:module';
3
2
  import path from 'node:path';
4
3
  import { fileURLToPath } from 'node:url';
@@ -11,7 +10,7 @@ export * from './helpers.js';
11
10
  export * from './types.js';
12
11
  let syncFnCache;
13
12
  export function createSyncFn(workerPath, timeoutOrOptions) {
14
- syncFnCache !== null && syncFnCache !== void 0 ? syncFnCache : (syncFnCache = new Map());
13
+ syncFnCache ?? (syncFnCache = new Map());
15
14
  if (typeof workerPath !== 'string' || workerPath.startsWith('file://')) {
16
15
  workerPath = fileURLToPath(workerPath);
17
16
  }
@@ -40,7 +39,7 @@ export function runAsWorker(fn) {
40
39
  }
41
40
  parentPort.on('message', ({ id, args }) => {
42
41
  ;
43
- (() => __awaiter(this, void 0, void 0, function* () {
42
+ (async () => {
44
43
  let isAborted = false;
45
44
  const handleAbortMessage = (msg) => {
46
45
  if (msg.id === id && msg.cmd === 'abort') {
@@ -50,7 +49,7 @@ export function runAsWorker(fn) {
50
49
  workerPort.on('message', handleAbortMessage);
51
50
  let msg;
52
51
  try {
53
- msg = { id, stdio, result: yield fn(...args) };
52
+ msg = { id, stdio, result: await fn(...args) };
54
53
  }
55
54
  catch (error) {
56
55
  msg = { id, stdio, error, properties: extractProperties(error) };
@@ -68,7 +67,7 @@ export function runAsWorker(fn) {
68
67
  finally {
69
68
  stdio.length = 0;
70
69
  }
71
- }))();
70
+ })();
72
71
  });
73
72
  }
74
73
  //# sourceMappingURL=index.js.map
package/lib/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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synckit",
3
- "version": "0.11.4",
3
+ "version": "0.11.6",
4
4
  "type": "module",
5
5
  "description": "Perform async work synchronously in Node.js using `worker_threads` with first-class TypeScript support.",
6
6
  "repository": "https://github.com/un-ts/synckit.git",
@@ -11,7 +11,7 @@
11
11
  "node": "^14.18.0 || >=16.0.0"
12
12
  },
13
13
  "main": "./lib/index.cjs",
14
- "types": "./index.d.cts",
14
+ "types": "./lib/index.d.cts",
15
15
  "module": "./lib/index.js",
16
16
  "exports": {
17
17
  "import": {
@@ -19,7 +19,7 @@
19
19
  "default": "./lib/index.js"
20
20
  },
21
21
  "require": {
22
- "types": "./index.d.cts",
22
+ "types": "./lib/index.d.cts",
23
23
  "default": "./lib/index.cjs"
24
24
  }
25
25
  },
@@ -40,7 +40,6 @@
40
40
  "synckit"
41
41
  ],
42
42
  "dependencies": {
43
- "@pkgr/core": "^0.2.3",
44
- "tslib": "^2.8.1"
43
+ "@pkgr/core": "^0.2.4"
45
44
  }
46
45
  }
package/index.d.cts DELETED
@@ -1,3 +0,0 @@
1
- import * as synckit from './lib/index.js'
2
-
3
- export = synckit