synckit 0.8.3 → 0.8.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/lib/index.cjs CHANGED
@@ -56,7 +56,7 @@ const DEFAULT_EXEC_ARGV = (SYNCKIT_EXEC_ARGV == null ? void 0 : SYNCKIT_EXEC_ARG
56
56
  const DEFAULT_TS_RUNNER = SYNCKIT_TS_RUNNER || TsRunner.TsNode;
57
57
  const MTS_SUPPORTED_NODE_VERSION = 16;
58
58
  const syncFnCache = /* @__PURE__ */ new Map();
59
- const extractProperties = (object) => {
59
+ function extractProperties(object) {
60
60
  if (object && typeof object === "object") {
61
61
  const properties = {};
62
62
  for (const key in object) {
@@ -64,7 +64,7 @@ const extractProperties = (object) => {
64
64
  }
65
65
  return properties;
66
66
  }
67
- };
67
+ }
68
68
  function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
69
69
  if (!path__default["default"].isAbsolute(workerPath)) {
70
70
  throw new Error("`workerPath` must be absolute");
@@ -73,7 +73,10 @@ function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
73
73
  if (cachedSyncFn) {
74
74
  return cachedSyncFn;
75
75
  }
76
- const syncFn = startWorkerThread(workerPath, typeof bufferSizeOrOptions === "number" ? { bufferSize: bufferSizeOrOptions, timeout } : bufferSizeOrOptions);
76
+ const syncFn = startWorkerThread(
77
+ workerPath,
78
+ typeof bufferSizeOrOptions === "number" ? { bufferSize: bufferSizeOrOptions, timeout } : bufferSizeOrOptions
79
+ );
77
80
  syncFnCache.set(workerPath, syncFn);
78
81
  return syncFn;
79
82
  }
@@ -162,12 +165,19 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
162
165
  }
163
166
  if (process.versions.pnp) {
164
167
  const nodeOptions = NODE_OPTIONS == null ? void 0 : NODE_OPTIONS.split(/\s+/);
165
- const pnpApiPath = cjsRequire.resolve("pnpapi");
166
- if (!(nodeOptions == null ? void 0 : nodeOptions.some((option, index) => ["-r", "--require"].includes(option) && pnpApiPath === cjsRequire.resolve(nodeOptions[index + 1]))) && !execArgv.includes(pnpApiPath)) {
168
+ let pnpApiPath;
169
+ try {
170
+ pnpApiPath = cjsRequire.resolve("pnpapi");
171
+ } catch (e) {
172
+ }
173
+ if (pnpApiPath && !(nodeOptions == null ? void 0 : nodeOptions.some(
174
+ (option, index) => ["-r", "--require"].includes(option) && pnpApiPath === cjsRequire.resolve(nodeOptions[index + 1])
175
+ )) && !execArgv.includes(pnpApiPath)) {
167
176
  execArgv = ["-r", pnpApiPath, ...execArgv];
168
177
  const pnpLoaderPath = path__default["default"].resolve(pnpApiPath, "../.pnp.loader.mjs");
169
178
  if (isFile(pnpLoaderPath)) {
170
- execArgv = ["--experimental-loader", pnpLoaderPath, ...execArgv];
179
+ const experimentalLoader = node_url.pathToFileURL(pnpLoaderPath).toString();
180
+ execArgv = ["--experimental-loader", experimentalLoader, ...execArgv];
171
181
  }
172
182
  }
173
183
  }
@@ -202,16 +212,21 @@ function startWorkerThread(workerPath, {
202
212
  TsRunner.SWC,
203
213
  ...isTsxSupported ? [] : [TsRunner.TSX]
204
214
  ].includes(tsRunner)) {
205
- throw new Error(`${tsRunner} is not supported for ${ext} files yet` + (isTsxSupported ? ", you can try [tsx](https://github.com/esbuild-kit/tsx) instead" : ""));
215
+ throw new Error(
216
+ `${tsRunner} is not supported for ${ext} files yet` + (isTsxSupported ? ", you can try [tsx](https://github.com/esbuild-kit/tsx) instead" : "")
217
+ );
206
218
  }
207
219
  }
208
220
  const useEval = isTs && !tsUseEsm;
209
- const worker = new node_worker_threads.Worker(tsUseEsm && tsRunner === TsRunner.TsNode ? dataUrl(`import '${String(workerPathUrl)}'`) : useEval ? `require('${finalWorkerPath.replace(/\\/g, "\\\\")}')` : workerPathUrl, {
210
- eval: useEval,
211
- workerData: { workerPort },
212
- transferList: [workerPort],
213
- execArgv: finalExecArgv
214
- });
221
+ const worker = new node_worker_threads.Worker(
222
+ tsUseEsm && tsRunner === TsRunner.TsNode ? dataUrl(`import '${String(workerPathUrl)}'`) : useEval ? `require('${finalWorkerPath.replace(/\\/g, "\\\\")}')` : workerPathUrl,
223
+ {
224
+ eval: useEval,
225
+ workerData: { workerPort },
226
+ transferList: [workerPort],
227
+ execArgv: finalExecArgv
228
+ }
229
+ );
215
230
  let nextID = 0;
216
231
  const syncFn = (...args) => {
217
232
  const id = nextID++;
@@ -246,32 +261,38 @@ function runAsWorker(fn) {
246
261
  }
247
262
  const { workerPort } = node_worker_threads.workerData;
248
263
  try {
249
- node_worker_threads.parentPort.on("message", ({ sharedBuffer, id, args }) => {
250
- ;
251
- (() => __async(this, null, function* () {
264
+ node_worker_threads.parentPort.on(
265
+ "message",
266
+ ({ sharedBuffer, id, args }) => {
267
+ ;
268
+ (() => __async(this, null, function* () {
269
+ const sharedBufferView = new Int32Array(sharedBuffer);
270
+ let msg;
271
+ try {
272
+ msg = { id, result: yield fn(...args) };
273
+ } catch (error) {
274
+ msg = { id, error, properties: extractProperties(error) };
275
+ }
276
+ workerPort.postMessage(msg);
277
+ Atomics.add(sharedBufferView, 0, 1);
278
+ Atomics.notify(sharedBufferView, 0);
279
+ }))();
280
+ }
281
+ );
282
+ } catch (error) {
283
+ node_worker_threads.parentPort.on(
284
+ "message",
285
+ ({ sharedBuffer, id }) => {
252
286
  const sharedBufferView = new Int32Array(sharedBuffer);
253
- let msg;
254
- try {
255
- msg = { id, result: yield fn(...args) };
256
- } catch (error) {
257
- msg = { id, error, properties: extractProperties(error) };
258
- }
259
- workerPort.postMessage(msg);
287
+ workerPort.postMessage({
288
+ id,
289
+ error,
290
+ properties: extractProperties(error)
291
+ });
260
292
  Atomics.add(sharedBufferView, 0, 1);
261
293
  Atomics.notify(sharedBufferView, 0);
262
- }))();
263
- });
264
- } catch (error) {
265
- node_worker_threads.parentPort.on("message", ({ sharedBuffer, id }) => {
266
- const sharedBufferView = new Int32Array(sharedBuffer);
267
- workerPort.postMessage({
268
- id,
269
- error,
270
- properties: extractProperties(error)
271
- });
272
- Atomics.add(sharedBufferView, 0, 1);
273
- Atomics.notify(sharedBufferView, 0);
274
- });
294
+ }
295
+ );
275
296
  }
276
297
  }
277
298
 
package/lib/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export declare const TsRunner: {
7
7
  readonly SWC: "swc";
8
8
  readonly TSX: "tsx";
9
9
  };
10
- export declare type TsRunner = ValueOf<typeof TsRunner>;
10
+ export type TsRunner = ValueOf<typeof TsRunner>;
11
11
  export declare const DEFAULT_BUFFER_SIZE: number | undefined;
12
12
  export declare const DEFAULT_TIMEOUT: number | undefined;
13
13
  export declare const DEFAULT_WORKER_BUFFER_SIZE: number;
@@ -20,7 +20,8 @@ export interface SynckitOptions {
20
20
  execArgv?: string[];
21
21
  tsRunner?: TsRunner;
22
22
  }
23
- export declare const extractProperties: <T>(object?: T | undefined) => T | undefined;
23
+ export declare function extractProperties<T extends object>(object: T): T;
24
+ export declare function extractProperties<T>(object?: T): T | undefined;
24
25
  export declare function createSyncFn<T extends AnyAsyncFn>(workerPath: string, bufferSize?: number, timeout?: number): Syncify<T>;
25
26
  export declare function createSyncFn<T extends AnyAsyncFn>(workerPath: string, options?: SynckitOptions): Syncify<T>;
26
27
  export declare const isFile: (path: string) => boolean;
package/lib/index.js CHANGED
@@ -3,21 +3,14 @@ import fs from 'node:fs';
3
3
  import { createRequire } from 'node:module';
4
4
  import path from 'node:path';
5
5
  import { pathToFileURL } from 'node:url';
6
- import { MessageChannel, Worker, receiveMessageOnPort,
7
- // type-coverage:ignore-next-line -- we can't control
8
- workerData, parentPort, } from 'node:worker_threads';
6
+ import { MessageChannel, Worker, receiveMessageOnPort, workerData, parentPort, } from 'node:worker_threads';
9
7
  import { findUp, tryExtensions } from '@pkgr/utils';
10
8
  export * from './types.js';
11
9
  export const TsRunner = {
12
- // https://github.com/TypeStrong/ts-node
13
10
  TsNode: 'ts-node',
14
- // https://github.com/egoist/esbuild-register
15
11
  EsbuildRegister: 'esbuild-register',
16
- // https://github.com/folke/esbuild-runner
17
12
  EsbuildRunner: 'esbuild-runner',
18
- // https://github.com/swc-project/swc-node/tree/master/packages/register
19
13
  SWC: 'swc',
20
- // https://github.com/esbuild-kit/tsx
21
14
  TSX: 'tsx',
22
15
  };
23
16
  const { SYNCKIT_BUFFER_SIZE, SYNCKIT_TIMEOUT, SYNCKIT_EXEC_ARGV, SYNCKIT_TS_RUNNER, NODE_OPTIONS, } = process.env;
@@ -26,16 +19,12 @@ export const DEFAULT_BUFFER_SIZE = SYNCKIT_BUFFER_SIZE
26
19
  : undefined;
27
20
  export const DEFAULT_TIMEOUT = SYNCKIT_TIMEOUT ? +SYNCKIT_TIMEOUT : undefined;
28
21
  export const DEFAULT_WORKER_BUFFER_SIZE = DEFAULT_BUFFER_SIZE || 1024;
29
- /* istanbul ignore next */
30
22
  export const DEFAULT_EXEC_ARGV = (SYNCKIT_EXEC_ARGV === null || SYNCKIT_EXEC_ARGV === void 0 ? void 0 : SYNCKIT_EXEC_ARGV.split(',')) || [];
31
23
  export const DEFAULT_TS_RUNNER = (SYNCKIT_TS_RUNNER ||
32
24
  TsRunner.TsNode);
33
25
  export const MTS_SUPPORTED_NODE_VERSION = 16;
34
26
  const syncFnCache = new Map();
35
- // MessagePort doesn't copy the properties of Error objects. We still want
36
- // error objects to have extra properties such as "warnings" so implement the
37
- // property copying manually.
38
- export const extractProperties = (object) => {
27
+ export function extractProperties(object) {
39
28
  if (object && typeof object === 'object') {
40
29
  const properties = {};
41
30
  for (const key in object) {
@@ -43,7 +32,7 @@ export const extractProperties = (object) => {
43
32
  }
44
33
  return properties;
45
34
  }
46
- };
35
+ }
47
36
  export function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
48
37
  if (!path.isAbsolute(workerPath)) {
49
38
  throw new Error('`workerPath` must be absolute');
@@ -52,8 +41,7 @@ export function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
52
41
  if (cachedSyncFn) {
53
42
  return cachedSyncFn;
54
43
  }
55
- const syncFn = startWorkerThread(workerPath,
56
- /* istanbul ignore next */ typeof bufferSizeOrOptions === 'number'
44
+ const syncFn = startWorkerThread(workerPath, typeof bufferSizeOrOptions === 'number'
57
45
  ? { bufferSize: bufferSizeOrOptions, timeout }
58
46
  : bufferSizeOrOptions);
59
47
  syncFnCache.set(workerPath, syncFn);
@@ -61,7 +49,7 @@ export function createSyncFn(workerPath, bufferSizeOrOptions, timeout) {
61
49
  }
62
50
  const cjsRequire = typeof require === 'undefined'
63
51
  ? createRequire(import.meta.url)
64
- : /* istanbul ignore next */ require;
52
+ : require;
65
53
  const dataUrl = (code) => new URL(`data:text/javascript,${encodeURIComponent(code)}`);
66
54
  export const isFile = (path) => {
67
55
  try {
@@ -151,17 +139,22 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
151
139
  }
152
140
  }
153
141
  }
154
- /* istanbul ignore if -- https://github.com/facebook/jest/issues/5274 */
155
142
  if (process.versions.pnp) {
156
143
  const nodeOptions = NODE_OPTIONS === null || NODE_OPTIONS === void 0 ? void 0 : NODE_OPTIONS.split(/\s+/);
157
- const pnpApiPath = cjsRequire.resolve('pnpapi');
158
- if (!(nodeOptions === null || nodeOptions === void 0 ? void 0 : nodeOptions.some((option, index) => ['-r', '--require'].includes(option) &&
159
- pnpApiPath === cjsRequire.resolve(nodeOptions[index + 1]))) &&
144
+ let pnpApiPath;
145
+ try {
146
+ pnpApiPath = cjsRequire.resolve('pnpapi');
147
+ }
148
+ catch (_a) { }
149
+ if (pnpApiPath &&
150
+ !(nodeOptions === null || nodeOptions === void 0 ? void 0 : nodeOptions.some((option, index) => ['-r', '--require'].includes(option) &&
151
+ pnpApiPath === cjsRequire.resolve(nodeOptions[index + 1]))) &&
160
152
  !execArgv.includes(pnpApiPath)) {
161
153
  execArgv = ['-r', pnpApiPath, ...execArgv];
162
154
  const pnpLoaderPath = path.resolve(pnpApiPath, '../.pnp.loader.mjs');
163
155
  if (isFile(pnpLoaderPath)) {
164
- execArgv = ['--experimental-loader', pnpLoaderPath, ...execArgv];
156
+ const experimentalLoader = pathToFileURL(pnpLoaderPath).toString();
157
+ execArgv = ['--experimental-loader', experimentalLoader, ...execArgv];
165
158
  }
166
159
  }
167
160
  }
@@ -173,7 +166,6 @@ const setupTsRunner = (workerPath, { execArgv, tsRunner }) => {
173
166
  execArgv,
174
167
  };
175
168
  };
176
- // eslint-disable-next-line sonarjs/cognitive-complexity
177
169
  function startWorkerThread(workerPath, { bufferSize = DEFAULT_WORKER_BUFFER_SIZE, timeout = DEFAULT_TIMEOUT, execArgv = DEFAULT_EXEC_ARGV, tsRunner = DEFAULT_TS_RUNNER, } = {}) {
178
170
  const { port1: mainPort, port2: workerPort } = new MessageChannel();
179
171
  const { isTs, ext, tsUseEsm, workerPath: finalWorkerPath, execArgv: finalExecArgv, } = setupTsRunner(workerPath, { execArgv, tsRunner });
@@ -181,15 +173,11 @@ function startWorkerThread(workerPath, { bufferSize = DEFAULT_WORKER_BUFFER_SIZE
181
173
  if (/\.[cm]ts$/.test(finalWorkerPath)) {
182
174
  const isTsxSupported = !tsUseEsm ||
183
175
  Number.parseFloat(process.versions.node) >= MTS_SUPPORTED_NODE_VERSION;
184
- /* istanbul ignore if */
185
176
  if ([
186
- // https://github.com/egoist/esbuild-register/issues/79
187
177
  TsRunner.EsbuildRegister,
188
- // https://github.com/folke/esbuild-runner/issues/67
189
178
  TsRunner.EsbuildRunner,
190
- // https://github.com/swc-project/swc-node/issues/667
191
179
  TsRunner.SWC,
192
- ... /* istanbul ignore next */(isTsxSupported ? [] : [TsRunner.TSX]),
180
+ ...(isTsxSupported ? [] : [TsRunner.TSX]),
193
181
  ].includes(tsRunner)) {
194
182
  throw new Error(`${tsRunner} is not supported for ${ext} files yet` +
195
183
  (isTsxSupported
@@ -216,13 +204,11 @@ function startWorkerThread(workerPath, { bufferSize = DEFAULT_WORKER_BUFFER_SIZE
216
204
  const msg = { sharedBuffer, id, args };
217
205
  worker.postMessage(msg);
218
206
  const status = Atomics.wait(sharedBufferView, 0, 0, timeout);
219
- /* istanbul ignore if */
220
207
  if (!['ok', 'not-equal'].includes(status)) {
221
208
  throw new Error('Internal error: Atomics.wait() failed: ' + status);
222
209
  }
223
210
  const { id: id2, result, error, properties, } = receiveMessageOnPort(mainPort)
224
211
  .message;
225
- /* istanbul ignore if */
226
212
  if (id !== id2) {
227
213
  throw new Error(`Internal error: Expected id ${id} but got id ${id2}`);
228
214
  }
@@ -234,16 +220,13 @@ function startWorkerThread(workerPath, { bufferSize = DEFAULT_WORKER_BUFFER_SIZE
234
220
  worker.unref();
235
221
  return syncFn;
236
222
  }
237
- /* istanbul ignore next */
238
223
  export function runAsWorker(fn) {
239
- // type-coverage:ignore-next-line -- we can't control
240
224
  if (!workerData) {
241
225
  return;
242
226
  }
243
227
  const { workerPort } = workerData;
244
228
  try {
245
229
  parentPort.on('message', ({ sharedBuffer, id, args }) => {
246
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
247
230
  ;
248
231
  (() => __awaiter(this, void 0, void 0, function* () {
249
232
  const sharedBufferView = new Int32Array(sharedBuffer);
@@ -259,13 +242,6 @@ export function runAsWorker(fn) {
259
242
  Atomics.notify(sharedBufferView, 0);
260
243
  }))();
261
244
  });
262
- /**
263
- * @see https://github.com/un-ts/synckit/issues/94
264
- *
265
- * Starting the worker can fail, due to syntax error, for example. In that case
266
- * we just fail all incoming messages with whatever error message we got.
267
- * Otherwise incoming messages will hang forever waiting for a reply.
268
- */
269
245
  }
270
246
  catch (error) {
271
247
  parentPort.on('message', ({ sharedBuffer, id }) => {
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/lib/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { MessagePort } from 'node:worker_threads';
3
- export declare type AnyFn<R = any, T extends any[] = any[]> = (...args: T) => R;
4
- export declare type AnyPromise<T = any> = Promise<T>;
5
- export declare type AnyAsyncFn<T = any> = AnyFn<Promise<T>>;
6
- export declare type Syncify<T extends AnyAsyncFn> = T extends (...args: infer Args) => Promise<infer R> ? (...args: Args) => R : never;
7
- export declare type PromiseType<T extends AnyPromise> = T extends Promise<infer R> ? R : never;
8
- export declare type ValueOf<T> = T[keyof T];
3
+ export type AnyFn<R = any, T extends any[] = any[]> = (...args: T) => R;
4
+ export type AnyPromise<T = any> = Promise<T>;
5
+ export type AnyAsyncFn<T = any> = AnyFn<Promise<T>>;
6
+ export type Syncify<T extends AnyAsyncFn> = T extends (...args: infer Args) => Promise<infer R> ? (...args: Args) => R : never;
7
+ export type PromiseType<T extends AnyPromise> = T extends Promise<infer R> ? R : never;
8
+ export type ValueOf<T> = T[keyof T];
9
9
  export interface MainToWorkerMessage<T extends unknown[]> {
10
10
  sharedBuffer: SharedArrayBuffer;
11
11
  id: number;
package/package.json CHANGED
@@ -1,44 +1,12 @@
1
1
  {
2
2
  "name": "synckit",
3
- "version": "0.8.3",
3
+ "version": "0.8.5",
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": "git+https://github.com/un-ts/synckit.git",
7
7
  "author": "JounQin (https://www.1stG.me) <admin@1stg.me>",
8
- "donate": {
9
- "recipients": [
10
- {
11
- "name": "unts",
12
- "platform": "opencollective",
13
- "address": "https://opencollective.com/unts",
14
- "weight": 60
15
- },
16
- {
17
- "name": "rxts",
18
- "platform": "opencollective",
19
- "address": "https://opencollective.com/rxts",
20
- "weight": 20
21
- },
22
- {
23
- "name": "1stG",
24
- "email": "i@1stg.me",
25
- "weight": 20,
26
- "platforms": [
27
- {
28
- "platform": "opencollective",
29
- "address": "https://opencollective.com/1stG"
30
- },
31
- {
32
- "platform": "patreon",
33
- "address": "https://www.patreon.com/1stG"
34
- }
35
- ]
36
- }
37
- ]
38
- },
39
8
  "funding": "https://opencollective.com/unts",
40
9
  "license": "MIT",
41
- "packageManager": "yarn@1.22.19",
42
10
  "engines": {
43
11
  "node": "^14.18.0 || >=16.0.0"
44
12
  },
@@ -64,94 +32,8 @@
64
32
  "synchronize",
65
33
  "synckit"
66
34
  ],
67
- "scripts": {
68
- "benchmark": "run-s benchmark:*",
69
- "benchmark-export": "run-s benchmark-export:*",
70
- "benchmark-export:cjs": "yarn benchmark:cjs > benchmarks/benchmark.cjs.txt",
71
- "benchmark-export:esm": "yarn benchmark:esm> benchmarks/benchmark.esm.txt",
72
- "benchmark:cjs": "node benchmarks/benchmark.cjs",
73
- "benchmark:esm": "node benchmarks/benchmark.js",
74
- "build": "run-p build:*",
75
- "build:r": "r -f cjs",
76
- "build:ts": "tsc -p src",
77
- "lint": "run-p lint:*",
78
- "lint:es": "eslint . --cache -f friendly --max-warnings 10",
79
- "lint:tsc": "tsc --noEmit",
80
- "prepare": "patch-package && simple-git-hooks && yarn-deduplicate --strategy fewer || exit 0",
81
- "prerelease": "yarn build",
82
- "release": "changeset publish",
83
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
84
- "typecov": "type-coverage"
85
- },
86
35
  "dependencies": {
87
- "@pkgr/utils": "^2.3.0",
88
- "tslib": "^2.4.0"
89
- },
90
- "devDependencies": {
91
- "@1stg/lib-config": "^9.0.2",
92
- "@changesets/changelog-github": "^0.4.6",
93
- "@changesets/cli": "^2.23.2",
94
- "@swc-node/register": "^1.5.1",
95
- "@types/jest": "^28.1.5",
96
- "@types/node": "^18.0.4",
97
- "deasync": "^0.1.27",
98
- "esbuild-register": "^3.3.3",
99
- "esbuild-runner": "^2.2.1",
100
- "execa": "^6.1.0",
101
- "jest": "^28.1.3",
102
- "patch-package": "^6.4.7",
103
- "sync-threads": "^1.0.1",
104
- "ts-expect": "^1.3.0",
105
- "ts-jest": "^28.0.6",
106
- "ts-node": "^10.9.1",
107
- "tsx": "^3.8.0",
108
- "type-coverage": "^2.22.0",
109
- "typescript": "^4.7.4",
110
- "yarn-deduplicate": "^5.0.0"
111
- },
112
- "resolutions": {
113
- "prettier": "^2.7.1"
114
- },
115
- "commitlint": {
116
- "extends": "@1stg"
117
- },
118
- "jest": {
119
- "preset": "ts-jest",
120
- "testEnvironment": "node",
121
- "collectCoverage": true,
122
- "extensionsToTreatAsEsm": [
123
- ".ts"
124
- ],
125
- "moduleNameMapper": {
126
- "^(\\.{1,2}/.*)\\.js$": "$1",
127
- "^synckit$": "<rootDir>/src"
128
- },
129
- "globals": {
130
- "ts-jest": {
131
- "useESM": true,
132
- "tsconfig": {
133
- "importHelpers": false
134
- }
135
- }
136
- }
137
- },
138
- "prettier": "@1stg/prettier-config",
139
- "renovate": {
140
- "extends": [
141
- "@1stg"
142
- ]
143
- },
144
- "typeCoverage": {
145
- "atLeast": 100,
146
- "cache": true,
147
- "detail": true,
148
- "ignoreAsAssertion": true,
149
- "ignoreFiles": [
150
- "**/*.d.ts"
151
- ],
152
- "ignoreNonNullAssertion": true,
153
- "showRelativePath": true,
154
- "strict": true,
155
- "update": true
36
+ "@pkgr/utils": "^2.3.1",
37
+ "tslib": "^2.5.0"
156
38
  }
157
- }
39
+ }