@appsemble/node-utils 0.20.13 → 0.20.14
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/AppsembleError.js +1 -5
- package/AppsembleError.js.map +1 -1
- package/AppsembleError.test.js +2 -4
- package/AppsembleError.test.js.map +1 -1
- package/AppsembleError.test.ts +1 -1
- package/README.md +4 -4
- package/basicAuth.js +1 -5
- package/basicAuth.js.map +1 -1
- package/basicAuth.test.js +2 -4
- package/basicAuth.test.js.map +1 -1
- package/basicAuth.test.ts +1 -1
- package/formData.js +5 -12
- package/formData.js.map +1 -1
- package/formData.test.js +9 -11
- package/formData.test.js.map +1 -1
- package/formData.test.ts +1 -1
- package/fs.d.ts +2 -1
- package/fs.js +35 -65
- package/fs.js.map +1 -1
- package/fs.test.js +32 -34
- package/fs.test.js.map +1 -1
- package/fs.test.ts +6 -6
- package/fs.ts +12 -9
- package/getWorkspaces.js +6 -13
- package/getWorkspaces.js.map +1 -1
- package/handleError.js +6 -10
- package/handleError.js.map +1 -1
- package/handleError.test.js +13 -15
- package/handleError.test.js.map +1 -1
- package/handleError.test.ts +7 -7
- package/handleError.ts +2 -2
- package/index.d.ts +11 -11
- package/index.js +11 -27
- package/index.js.map +1 -1
- package/index.ts +11 -11
- package/interceptors.js +17 -27
- package/interceptors.js.map +1 -1
- package/interceptors.test.js +30 -40
- package/interceptors.test.js.map +1 -1
- package/interceptors.test.ts +7 -13
- package/interceptors.ts +1 -1
- package/jest.config.js +3 -1
- package/jest.setup.js +4 -6
- package/jest.setup.js.map +1 -1
- package/jest.setup.ts +3 -3
- package/logger.js +27 -35
- package/logger.js.map +1 -1
- package/logger.test.js +15 -17
- package/logger.test.js.map +1 -1
- package/logger.test.ts +1 -1
- package/loggerMiddleware.js +18 -25
- package/loggerMiddleware.js.map +1 -1
- package/loggerMiddleware.test.js +42 -52
- package/loggerMiddleware.test.js.map +1 -1
- package/loggerMiddleware.test.ts +15 -21
- package/loggerMiddleware.ts +1 -1
- package/package.json +7 -8
- package/readFileOrString.js +5 -9
- package/readFileOrString.js.map +1 -1
- package/readFileOrString.test.js +4 -6
- package/readFileOrString.test.js.map +1 -1
- package/readFileOrString.test.ts +2 -2
- package/readFileOrString.ts +1 -1
- package/testFixtures.d.ts +5 -4
- package/testFixtures.js +13 -24
- package/testFixtures.js.map +1 -1
- package/testFixtures.ts +9 -9
- package/tsconfig.json +1 -1
- package/__mocks__/os.d.ts +0 -5
- package/__mocks__/os.js +0 -8
- package/__mocks__/os.js.map +0 -1
- package/__mocks__/os.ts +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loggerMiddleware.test.js","sourceRoot":"","sources":["loggerMiddleware.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loggerMiddleware.test.js","sourceRoot":"","sources":["loggerMiddleware.test.ts"],"names":[],"mappings":"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"}
|
package/loggerMiddleware.test.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { install, InstalledClock } from '@sinonjs/fake-timers';
|
|
2
1
|
import { request, setTestApp } from 'axios-test-instance';
|
|
3
2
|
import chalk from 'chalk';
|
|
4
3
|
import Koa from 'koa';
|
|
5
4
|
|
|
6
|
-
import { logger } from './logger';
|
|
7
|
-
import { loggerMiddleware } from './loggerMiddleware';
|
|
5
|
+
import { logger } from './logger.js';
|
|
6
|
+
import { loggerMiddleware } from './loggerMiddleware.js';
|
|
8
7
|
|
|
9
8
|
class TestError extends Error {
|
|
10
9
|
constructor(message?: string) {
|
|
@@ -14,12 +13,11 @@ class TestError extends Error {
|
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
let app: Koa;
|
|
17
|
-
let clock: InstalledClock;
|
|
18
16
|
|
|
19
17
|
beforeEach(async () => {
|
|
20
|
-
jest.spyOn(logger, 'info').mockImplementation(() => logger);
|
|
21
|
-
jest.spyOn(logger, 'log').mockImplementation(() => logger);
|
|
22
|
-
|
|
18
|
+
import.meta.jest.spyOn(logger, 'info').mockImplementation(() => logger);
|
|
19
|
+
import.meta.jest.spyOn(logger, 'log').mockImplementation(() => logger);
|
|
20
|
+
import.meta.jest.useFakeTimers({ now: 0 });
|
|
23
21
|
app = new Koa();
|
|
24
22
|
app.use(async (ctx, next) => {
|
|
25
23
|
Object.defineProperty(ctx.request, 'origin', {
|
|
@@ -40,10 +38,6 @@ beforeEach(async () => {
|
|
|
40
38
|
await setTestApp(app);
|
|
41
39
|
});
|
|
42
40
|
|
|
43
|
-
afterEach(() => {
|
|
44
|
-
clock.uninstall();
|
|
45
|
-
});
|
|
46
|
-
|
|
47
41
|
it('should log requests', async () => {
|
|
48
42
|
await request.get('/pizza');
|
|
49
43
|
expect(logger.info).toHaveBeenCalledWith(
|
|
@@ -53,7 +47,7 @@ it('should log requests', async () => {
|
|
|
53
47
|
|
|
54
48
|
it('should log success responses as info', async () => {
|
|
55
49
|
app.use((ctx) => {
|
|
56
|
-
|
|
50
|
+
import.meta.jest.advanceTimersByTime(1);
|
|
57
51
|
ctx.status = 200;
|
|
58
52
|
});
|
|
59
53
|
await request.get('/fries');
|
|
@@ -67,7 +61,7 @@ it('should log success responses as info', async () => {
|
|
|
67
61
|
|
|
68
62
|
it('should log redirect responses as info', async () => {
|
|
69
63
|
app.use((ctx) => {
|
|
70
|
-
|
|
64
|
+
import.meta.jest.advanceTimersByTime(33);
|
|
71
65
|
ctx.redirect('/');
|
|
72
66
|
});
|
|
73
67
|
await request.get('/fries');
|
|
@@ -81,7 +75,7 @@ it('should log redirect responses as info', async () => {
|
|
|
81
75
|
|
|
82
76
|
it('should log bad responses as warn', async () => {
|
|
83
77
|
app.use((ctx) => {
|
|
84
|
-
|
|
78
|
+
import.meta.jest.advanceTimersByTime(3);
|
|
85
79
|
ctx.status = 400;
|
|
86
80
|
});
|
|
87
81
|
await request.get('/burrito');
|
|
@@ -95,7 +89,7 @@ it('should log bad responses as warn', async () => {
|
|
|
95
89
|
|
|
96
90
|
it('should log error responses as error', async () => {
|
|
97
91
|
app.use((ctx) => {
|
|
98
|
-
|
|
92
|
+
import.meta.jest.advanceTimersByTime(53);
|
|
99
93
|
ctx.status = 503;
|
|
100
94
|
});
|
|
101
95
|
await request.get('/wrap');
|
|
@@ -109,7 +103,7 @@ it('should log error responses as error', async () => {
|
|
|
109
103
|
|
|
110
104
|
it('should log long request lengths yellow', async () => {
|
|
111
105
|
app.use((ctx) => {
|
|
112
|
-
|
|
106
|
+
import.meta.jest.advanceTimersByTime(400);
|
|
113
107
|
ctx.status = 200;
|
|
114
108
|
});
|
|
115
109
|
await request.get('/banana');
|
|
@@ -123,7 +117,7 @@ it('should log long request lengths yellow', async () => {
|
|
|
123
117
|
|
|
124
118
|
it('should log extremely long request lengths red', async () => {
|
|
125
119
|
app.use((ctx) => {
|
|
126
|
-
|
|
120
|
+
import.meta.jest.advanceTimersByTime(1337);
|
|
127
121
|
ctx.status = 200;
|
|
128
122
|
});
|
|
129
123
|
await request.get('/pepperoni');
|
|
@@ -136,12 +130,12 @@ it('should log extremely long request lengths red', async () => {
|
|
|
136
130
|
});
|
|
137
131
|
|
|
138
132
|
it('should log errors as internal server errors and rethrow', async () => {
|
|
139
|
-
const spy = jest.fn();
|
|
133
|
+
const spy = import.meta.jest.fn();
|
|
140
134
|
const error = new Error('fail');
|
|
141
135
|
let context;
|
|
142
136
|
app.on('error', spy);
|
|
143
137
|
app.use((ctx) => {
|
|
144
|
-
|
|
138
|
+
import.meta.jest.advanceTimersByTime(86);
|
|
145
139
|
context = ctx;
|
|
146
140
|
throw error;
|
|
147
141
|
});
|
|
@@ -157,7 +151,7 @@ it('should log errors as internal server errors and rethrow', async () => {
|
|
|
157
151
|
|
|
158
152
|
it('should append the response length if it is defined', async () => {
|
|
159
153
|
app.use((ctx) => {
|
|
160
|
-
|
|
154
|
+
import.meta.jest.advanceTimersByTime(1);
|
|
161
155
|
ctx.status = 200;
|
|
162
156
|
ctx.body = '{}';
|
|
163
157
|
});
|
|
@@ -172,7 +166,7 @@ it('should append the response length if it is defined', async () => {
|
|
|
172
166
|
|
|
173
167
|
it('should log handled errors correctly', async () => {
|
|
174
168
|
app.use(() => {
|
|
175
|
-
|
|
169
|
+
import.meta.jest.advanceTimersByTime(15);
|
|
176
170
|
throw new TestError();
|
|
177
171
|
});
|
|
178
172
|
await request.get('potatoes');
|
package/loggerMiddleware.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appsemble/node-utils",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.14",
|
|
4
4
|
"description": "NodeJS utilities used by Appsemble internally.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"app",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"license": "LGPL-3.0-only",
|
|
21
21
|
"author": "Appsemble <info@appsemble.com> (https://appsemble.com)",
|
|
22
22
|
"sideEffects": false,
|
|
23
|
+
"type": "module",
|
|
23
24
|
"files": [
|
|
24
25
|
"**/*.d.ts",
|
|
25
26
|
"**/*.js",
|
|
@@ -27,10 +28,10 @@
|
|
|
27
28
|
],
|
|
28
29
|
"scripts": {
|
|
29
30
|
"prepack": "tsc --noEmit false",
|
|
30
|
-
"test": "jest"
|
|
31
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
|
-
"@appsemble/utils": "0.20.
|
|
34
|
+
"@appsemble/utils": "0.20.14",
|
|
34
35
|
"@types/koa": "^2.0.0",
|
|
35
36
|
"axios": "^0.27.0",
|
|
36
37
|
"chalk": "^4.0.0",
|
|
@@ -40,9 +41,8 @@
|
|
|
40
41
|
"koa": "^2.0.0",
|
|
41
42
|
"koa-compose": "^4.0.0",
|
|
42
43
|
"logform": "^2.0.0",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"sort-keys": "^4.0.0",
|
|
44
|
+
"parse-json": "^6.0.0",
|
|
45
|
+
"sort-keys": "^5.0.0",
|
|
46
46
|
"type-fest": "^2.0.0",
|
|
47
47
|
"winston": "^3.0.0",
|
|
48
48
|
"yaml": "^2.0.0",
|
|
@@ -50,11 +50,10 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@sinonjs/fake-timers": "^9.0.0",
|
|
53
|
-
"@types/normalize-path": "^3.0.0",
|
|
54
53
|
"@types/parse-json": "^4.0.0",
|
|
55
54
|
"@types/sinonjs__fake-timers": "^8.0.0",
|
|
56
55
|
"axios-mock-adapter": "^1.0.0",
|
|
57
|
-
"axios-test-instance": "^
|
|
56
|
+
"axios-test-instance": "^6.0.0"
|
|
58
57
|
},
|
|
59
58
|
"peerDependencies": {
|
|
60
59
|
"prettier": "^2"
|
package/readFileOrString.js
CHANGED
|
@@ -1,24 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.readFileOrString = void 0;
|
|
4
|
-
const promises_1 = require("fs/promises");
|
|
5
|
-
const _1 = require(".");
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import { isErrno } from './index.js';
|
|
6
3
|
/**
|
|
7
4
|
* If the string represents an existing path, read the file. Otherwise, return the string itself.
|
|
8
5
|
*
|
|
9
6
|
* @param string The string to handle.
|
|
10
7
|
* @returns The handled string.
|
|
11
8
|
*/
|
|
12
|
-
async function readFileOrString(string) {
|
|
9
|
+
export async function readFileOrString(string) {
|
|
13
10
|
try {
|
|
14
|
-
return await
|
|
11
|
+
return await readFile(string);
|
|
15
12
|
}
|
|
16
13
|
catch (error) {
|
|
17
|
-
if (
|
|
14
|
+
if (isErrno(error, 'ENOENT')) {
|
|
18
15
|
return string;
|
|
19
16
|
}
|
|
20
17
|
throw error;
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
exports.readFileOrString = readFileOrString;
|
|
24
20
|
//# sourceMappingURL=readFileOrString.js.map
|
package/readFileOrString.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readFileOrString.js","sourceRoot":"","sources":["readFileOrString.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"readFileOrString.js","sourceRoot":"","sources":["readFileOrString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAuB;IAC5D,IAAI;QACF,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC/B;IAAC,OAAO,KAAc,EAAE;QACvB,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;YAC5B,OAAO,MAAM,CAAC;SACf;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC"}
|
package/readFileOrString.test.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const readFileOrString_1 = require("./readFileOrString");
|
|
4
|
-
const testFixtures_1 = require("./testFixtures");
|
|
1
|
+
import { readFileOrString } from './readFileOrString.js';
|
|
2
|
+
import { resolveFixture } from './testFixtures.js';
|
|
5
3
|
it('should return file content if it resolves to a file', async () => {
|
|
6
|
-
const result = await
|
|
4
|
+
const result = await readFileOrString(resolveFixture('hello.txt'));
|
|
7
5
|
expect(Buffer.from('Hello world!\n').equals(result)).toBe(true);
|
|
8
6
|
});
|
|
9
7
|
it('should return the input if it doesn’t resolve to a file', async () => {
|
|
10
|
-
const result = await
|
|
8
|
+
const result = await readFileOrString('hello.txt');
|
|
11
9
|
expect(result).toBe('hello.txt');
|
|
12
10
|
});
|
|
13
11
|
//# sourceMappingURL=readFileOrString.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readFileOrString.test.js","sourceRoot":"","sources":["readFileOrString.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"readFileOrString.test.js","sourceRoot":"","sources":["readFileOrString.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;IACvE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"}
|
package/readFileOrString.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { readFileOrString } from './readFileOrString';
|
|
2
|
-
import { resolveFixture } from './testFixtures';
|
|
1
|
+
import { readFileOrString } from './readFileOrString.js';
|
|
2
|
+
import { resolveFixture } from './testFixtures.js';
|
|
3
3
|
|
|
4
4
|
it('should return file content if it resolves to a file', async () => {
|
|
5
5
|
const result = await readFileOrString(resolveFixture('hello.txt'));
|
package/readFileOrString.ts
CHANGED
package/testFixtures.d.ts
CHANGED
|
@@ -6,13 +6,13 @@ import { ReadStream } from 'fs';
|
|
|
6
6
|
*
|
|
7
7
|
* This is typically called in `jest.setup.ts`.
|
|
8
8
|
*
|
|
9
|
-
* @param
|
|
9
|
+
* @param meta The module meta object
|
|
10
10
|
* @example
|
|
11
11
|
* ```ts
|
|
12
|
-
* setFixtureBase(
|
|
12
|
+
* setFixtureBase(import.meta);
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
|
-
export declare function setFixtureBase(
|
|
15
|
+
export declare function setFixtureBase(meta: ImportMeta): void;
|
|
16
16
|
/**
|
|
17
17
|
* Resolve the path to a test fixture.
|
|
18
18
|
*
|
|
@@ -26,7 +26,8 @@ export declare function resolveFixture(path: string): string;
|
|
|
26
26
|
*
|
|
27
27
|
* @param path The path to resolve relative to the fixture base. It will be normalized for the
|
|
28
28
|
* operating system.
|
|
29
|
-
*
|
|
29
|
+
*
|
|
30
|
+
* param encoding The text encoding of the file.
|
|
30
31
|
* @returns The file contents as a string or buffer.
|
|
31
32
|
*/
|
|
32
33
|
export declare function readFixture(path: string): Promise<Buffer>;
|
package/testFixtures.js
CHANGED
|
@@ -1,29 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createFixtureStream = exports.readFixture = exports.resolveFixture = exports.setFixtureBase = void 0;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const promises_1 = require("fs/promises");
|
|
9
|
-
const path_1 = require("path");
|
|
10
|
-
const normalize_path_1 = __importDefault(require("normalize-path"));
|
|
1
|
+
import { createReadStream } from 'fs';
|
|
2
|
+
import { readFile } from 'fs/promises';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
11
4
|
let baseDir;
|
|
12
5
|
/**
|
|
13
6
|
* Set the test fixture base path. This folder should contain a folder named `__fixtures__`.
|
|
14
7
|
*
|
|
15
8
|
* This is typically called in `jest.setup.ts`.
|
|
16
9
|
*
|
|
17
|
-
* @param
|
|
10
|
+
* @param meta The module meta object
|
|
18
11
|
* @example
|
|
19
12
|
* ```ts
|
|
20
|
-
* setFixtureBase(
|
|
13
|
+
* setFixtureBase(import.meta);
|
|
21
14
|
* ```
|
|
22
15
|
*/
|
|
23
|
-
function setFixtureBase(
|
|
24
|
-
baseDir =
|
|
16
|
+
export function setFixtureBase(meta) {
|
|
17
|
+
baseDir = meta.url;
|
|
25
18
|
}
|
|
26
|
-
exports.setFixtureBase = setFixtureBase;
|
|
27
19
|
/**
|
|
28
20
|
* Resolve the path to a test fixture.
|
|
29
21
|
*
|
|
@@ -31,14 +23,12 @@ exports.setFixtureBase = setFixtureBase;
|
|
|
31
23
|
* operating system.
|
|
32
24
|
* @returns The full path to the fixture path.
|
|
33
25
|
*/
|
|
34
|
-
function resolveFixture(path) {
|
|
35
|
-
return (
|
|
26
|
+
export function resolveFixture(path) {
|
|
27
|
+
return fileURLToPath(new URL(`__fixtures__/${path}`, baseDir));
|
|
36
28
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return (0, promises_1.readFile)(resolveFixture(path), encoding);
|
|
29
|
+
export function readFixture(path, encoding) {
|
|
30
|
+
return readFile(resolveFixture(path), encoding);
|
|
40
31
|
}
|
|
41
|
-
exports.readFixture = readFixture;
|
|
42
32
|
/**
|
|
43
33
|
* Create a read stream for a fixture.
|
|
44
34
|
*
|
|
@@ -46,8 +36,7 @@ exports.readFixture = readFixture;
|
|
|
46
36
|
* operating system.
|
|
47
37
|
* @returns A filesystem read stream for the fixture.
|
|
48
38
|
*/
|
|
49
|
-
function createFixtureStream(path) {
|
|
50
|
-
return
|
|
39
|
+
export function createFixtureStream(path) {
|
|
40
|
+
return createReadStream(resolveFixture(path));
|
|
51
41
|
}
|
|
52
|
-
exports.createFixtureStream = createFixtureStream;
|
|
53
42
|
//# sourceMappingURL=testFixtures.js.map
|
package/testFixtures.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testFixtures.js","sourceRoot":"","sources":["testFixtures.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testFixtures.js","sourceRoot":"","sources":["testFixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAc,MAAM,IAAI,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,IAAI,OAAe,CAAC;AAEpB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,gBAAgB,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC;AAcD,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,QAAyB;IACjE,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
package/testFixtures.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { createReadStream, ReadStream } from 'fs';
|
|
2
2
|
import { readFile } from 'fs/promises';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import normalizePath from 'normalize-path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
6
4
|
|
|
7
5
|
let baseDir: string;
|
|
8
6
|
|
|
@@ -11,14 +9,14 @@ let baseDir: string;
|
|
|
11
9
|
*
|
|
12
10
|
* This is typically called in `jest.setup.ts`.
|
|
13
11
|
*
|
|
14
|
-
* @param
|
|
12
|
+
* @param meta The module meta object
|
|
15
13
|
* @example
|
|
16
14
|
* ```ts
|
|
17
|
-
* setFixtureBase(
|
|
15
|
+
* setFixtureBase(import.meta);
|
|
18
16
|
* ```
|
|
19
17
|
*/
|
|
20
|
-
export function setFixtureBase(
|
|
21
|
-
baseDir =
|
|
18
|
+
export function setFixtureBase(meta: ImportMeta): void {
|
|
19
|
+
baseDir = meta.url;
|
|
22
20
|
}
|
|
23
21
|
|
|
24
22
|
/**
|
|
@@ -29,15 +27,17 @@ export function setFixtureBase(dir: string): void {
|
|
|
29
27
|
* @returns The full path to the fixture path.
|
|
30
28
|
*/
|
|
31
29
|
export function resolveFixture(path: string): string {
|
|
32
|
-
return
|
|
30
|
+
return fileURLToPath(new URL(`__fixtures__/${path}`, baseDir));
|
|
33
31
|
}
|
|
34
32
|
|
|
33
|
+
// eslint-disable-next-line jsdoc/require-returns-check
|
|
35
34
|
/**
|
|
36
35
|
* Read a test fixture.
|
|
37
36
|
*
|
|
38
37
|
* @param path The path to resolve relative to the fixture base. It will be normalized for the
|
|
39
38
|
* operating system.
|
|
40
|
-
*
|
|
39
|
+
*
|
|
40
|
+
* param encoding The text encoding of the file.
|
|
41
41
|
* @returns The file contents as a string or buffer.
|
|
42
42
|
*/
|
|
43
43
|
export function readFixture(path: string): Promise<Buffer>;
|
package/tsconfig.json
CHANGED
package/__mocks__/os.d.ts
DELETED
package/__mocks__/os.js
DELETED
package/__mocks__/os.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"os.js","sourceRoot":"","sources":["os.ts"],"names":[],"mappings":";AAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAKxC,iBAAS;IACP,GAAG,MAAM;IACT,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK;CAClB,CAAC"}
|