@gjsify/module 0.4.0 → 0.4.3
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/package.json +45 -42
- package/src/index.spec.ts +0 -386
- package/src/index.ts +0 -453
- package/src/pnp.ts +0 -286
- package/src/test.mts +0 -5
- package/tsconfig.json +0 -29
- package/tsconfig.tsbuildinfo +0 -1
package/package.json
CHANGED
|
@@ -1,44 +1,47 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
"name": "@gjsify/module",
|
|
3
|
+
"version": "0.4.3",
|
|
4
|
+
"description": "Node.js module module for Gjs",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"module": "lib/esm/index.js",
|
|
7
|
+
"types": "lib/types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./lib/types/index.d.ts",
|
|
11
|
+
"default": "./lib/esm/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"lib"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"clear": "rm -rf lib tsconfig.tsbuildinfo tsconfig.types.tsbuildinfo test.gjs.mjs test.node.mjs || exit 0",
|
|
19
|
+
"check": "tsc --noEmit",
|
|
20
|
+
"build": "gjsify run build:gjsify && gjsify run build:types",
|
|
21
|
+
"build:gjsify": "gjsify build --library 'src/**/*.{ts,js}' --exclude 'src/**/*.spec.{mts,ts}' 'src/test.{mts,ts}'",
|
|
22
|
+
"build:types": "tsc",
|
|
23
|
+
"build:test": "gjsify run build:test:gjs && gjsify run build:test:node",
|
|
24
|
+
"build:test:gjs": "gjsify build src/test.mts --app gjs --outfile test.gjs.mjs",
|
|
25
|
+
"build:test:node": "gjsify build src/test.mts --app node --outfile test.node.mjs",
|
|
26
|
+
"test": "gjsify run build:gjsify && gjsify run build:test && gjsify run test:node && gjsify run test:gjs",
|
|
27
|
+
"test:gjs": "gjsify run test.gjs.mjs",
|
|
28
|
+
"test:node": "node test.node.mjs"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"gjs",
|
|
32
|
+
"node",
|
|
33
|
+
"module"
|
|
34
|
+
],
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@girs/gio-2.0": "2.88.0-4.0.0-rc.15",
|
|
37
|
+
"@girs/gjs": "4.0.0-rc.15",
|
|
38
|
+
"@girs/glib-2.0": "2.88.0-4.0.0-rc.15",
|
|
39
|
+
"@gjsify/utils": "workspace:^"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@gjsify/cli": "workspace:^",
|
|
43
|
+
"@gjsify/unit": "workspace:^",
|
|
44
|
+
"@types/node": "^25.6.2",
|
|
45
|
+
"typescript": "^6.0.3"
|
|
12
46
|
}
|
|
13
|
-
|
|
14
|
-
"scripts": {
|
|
15
|
-
"clear": "rm -rf lib tsconfig.tsbuildinfo tsconfig.types.tsbuildinfo test.gjs.mjs test.node.mjs || exit 0",
|
|
16
|
-
"check": "tsc --noEmit",
|
|
17
|
-
"build": "yarn build:gjsify && yarn build:types",
|
|
18
|
-
"build:gjsify": "gjsify build --library 'src/**/*.{ts,js}' --exclude 'src/**/*.spec.{mts,ts}' 'src/test.{mts,ts}'",
|
|
19
|
-
"build:types": "tsc",
|
|
20
|
-
"build:test": "yarn build:test:gjs && yarn build:test:node",
|
|
21
|
-
"build:test:gjs": "gjsify build src/test.mts --app gjs --outfile test.gjs.mjs",
|
|
22
|
-
"build:test:node": "gjsify build src/test.mts --app node --outfile test.node.mjs",
|
|
23
|
-
"test": "yarn build:gjsify && yarn build:test && yarn test:node && yarn test:gjs",
|
|
24
|
-
"test:gjs": "gjsify run test.gjs.mjs",
|
|
25
|
-
"test:node": "node test.node.mjs"
|
|
26
|
-
},
|
|
27
|
-
"keywords": [
|
|
28
|
-
"gjs",
|
|
29
|
-
"node",
|
|
30
|
-
"module"
|
|
31
|
-
],
|
|
32
|
-
"dependencies": {
|
|
33
|
-
"@girs/gio-2.0": "2.88.0-4.0.0-rc.15",
|
|
34
|
-
"@girs/gjs": "4.0.0-rc.15",
|
|
35
|
-
"@girs/glib-2.0": "2.88.0-4.0.0-rc.15",
|
|
36
|
-
"@gjsify/utils": "^0.4.0"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@gjsify/cli": "^0.4.0",
|
|
40
|
-
"@gjsify/unit": "^0.4.0",
|
|
41
|
-
"@types/node": "^25.6.2",
|
|
42
|
-
"typescript": "^6.0.3"
|
|
43
|
-
}
|
|
44
|
-
}
|
|
47
|
+
}
|
package/src/index.spec.ts
DELETED
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
// Ported from refs/node-test/parallel/test-module-{isBuiltin,builtinModules,createRequire}.js
|
|
2
|
-
// Original: MIT license, Node.js contributors
|
|
3
|
-
|
|
4
|
-
import { describe, it, expect } from '@gjsify/unit';
|
|
5
|
-
import { builtinModules, isBuiltin, createRequire } from 'node:module';
|
|
6
|
-
|
|
7
|
-
export default async () => {
|
|
8
|
-
await describe('module.builtinModules', async () => {
|
|
9
|
-
await it('should be an array', async () => {
|
|
10
|
-
expect(Array.isArray(builtinModules)).toBe(true);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
await it('should have more than 30 entries', async () => {
|
|
14
|
-
expect(builtinModules.length).toBeGreaterThan(30);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
await it('should contain only strings', async () => {
|
|
18
|
-
for (const mod of builtinModules) {
|
|
19
|
-
expect(typeof mod).toBe('string');
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
await it('should not contain duplicates', async () => {
|
|
24
|
-
const unique = new Set(builtinModules);
|
|
25
|
-
expect(unique.size).toBe(builtinModules.length);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
await it('should include fs', async () => {
|
|
29
|
-
expect(builtinModules).toContain('fs');
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
await it('should include path', async () => {
|
|
33
|
-
expect(builtinModules).toContain('path');
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
await it('should include os', async () => {
|
|
37
|
-
expect(builtinModules).toContain('os');
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
await it('should include crypto', async () => {
|
|
41
|
-
expect(builtinModules).toContain('crypto');
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
await it('should include http', async () => {
|
|
45
|
-
expect(builtinModules).toContain('http');
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
await it('should include net', async () => {
|
|
49
|
-
expect(builtinModules).toContain('net');
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
await it('should include stream', async () => {
|
|
53
|
-
expect(builtinModules).toContain('stream');
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
await it('should include events', async () => {
|
|
57
|
-
expect(builtinModules).toContain('events');
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
await it('should include buffer', async () => {
|
|
61
|
-
expect(builtinModules).toContain('buffer');
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
await it('should include util', async () => {
|
|
65
|
-
expect(builtinModules).toContain('util');
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
await it('should include dns', async () => {
|
|
69
|
-
expect(builtinModules).toContain('dns');
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
await it('should include https', async () => {
|
|
73
|
-
expect(builtinModules).toContain('https');
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
await it('should include tls', async () => {
|
|
77
|
-
expect(builtinModules).toContain('tls');
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
await it('should include dgram', async () => {
|
|
81
|
-
expect(builtinModules).toContain('dgram');
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
await it('should include assert', async () => {
|
|
85
|
-
expect(builtinModules).toContain('assert');
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
await it('should include querystring', async () => {
|
|
89
|
-
expect(builtinModules).toContain('querystring');
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
await it('should include url', async () => {
|
|
93
|
-
expect(builtinModules).toContain('url');
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
await it('should include string_decoder', async () => {
|
|
97
|
-
expect(builtinModules).toContain('string_decoder');
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
await it('should include timers', async () => {
|
|
101
|
-
expect(builtinModules).toContain('timers');
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
await it('should include zlib', async () => {
|
|
105
|
-
expect(builtinModules).toContain('zlib');
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
await it('should include child_process', async () => {
|
|
109
|
-
expect(builtinModules).toContain('child_process');
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
await it('should include cluster', async () => {
|
|
113
|
-
expect(builtinModules).toContain('cluster');
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
await it('should include console', async () => {
|
|
117
|
-
expect(builtinModules).toContain('console');
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
await it('should include domain', async () => {
|
|
121
|
-
expect(builtinModules).toContain('domain');
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
await it('should include http2', async () => {
|
|
125
|
-
expect(builtinModules).toContain('http2');
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
await it('should include module', async () => {
|
|
129
|
-
expect(builtinModules).toContain('module');
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
await it('should include perf_hooks', async () => {
|
|
133
|
-
expect(builtinModules).toContain('perf_hooks');
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
await it('should include process', async () => {
|
|
137
|
-
expect(builtinModules).toContain('process');
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
await it('should include readline', async () => {
|
|
141
|
-
expect(builtinModules).toContain('readline');
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
await it('should include tty', async () => {
|
|
145
|
-
expect(builtinModules).toContain('tty');
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
await it('should include v8', async () => {
|
|
149
|
-
expect(builtinModules).toContain('v8');
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
await it('should include vm', async () => {
|
|
153
|
-
expect(builtinModules).toContain('vm');
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
await it('should include worker_threads', async () => {
|
|
157
|
-
expect(builtinModules).toContain('worker_threads');
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
await it('should include bare names (without node: prefix)', async () => {
|
|
161
|
-
const bareModules = builtinModules.filter(m => !m.startsWith('node:'));
|
|
162
|
-
expect(bareModules.length).toBeGreaterThan(30);
|
|
163
|
-
expect(bareModules).toContain('fs');
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
await describe('module.isBuiltin', async () => {
|
|
168
|
-
await it('should be a function', async () => {
|
|
169
|
-
expect(typeof isBuiltin).toBe('function');
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
await it('should return true for fs', async () => {
|
|
173
|
-
expect(isBuiltin('fs')).toBe(true);
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
await it('should return true for path', async () => {
|
|
177
|
-
expect(isBuiltin('path')).toBe(true);
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
await it('should return true for os', async () => {
|
|
181
|
-
expect(isBuiltin('os')).toBe(true);
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
await it('should return true for crypto', async () => {
|
|
185
|
-
expect(isBuiltin('crypto')).toBe(true);
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
await it('should return true for http', async () => {
|
|
189
|
-
expect(isBuiltin('http')).toBe(true);
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
await it('should return true for node:fs', async () => {
|
|
193
|
-
expect(isBuiltin('node:fs')).toBe(true);
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
await it('should return true for node:path', async () => {
|
|
197
|
-
expect(isBuiltin('node:path')).toBe(true);
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
await it('should return true for node:os', async () => {
|
|
201
|
-
expect(isBuiltin('node:os')).toBe(true);
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
await it('should return true for node:crypto', async () => {
|
|
205
|
-
expect(isBuiltin('node:crypto')).toBe(true);
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
await it('should return true for node:events', async () => {
|
|
209
|
-
expect(isBuiltin('node:events')).toBe(true);
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
await it('should return true for node:stream', async () => {
|
|
213
|
-
expect(isBuiltin('node:stream')).toBe(true);
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
await it('should return true for node:buffer', async () => {
|
|
217
|
-
expect(isBuiltin('node:buffer')).toBe(true);
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
await it('should return true for node:util', async () => {
|
|
221
|
-
expect(isBuiltin('node:util')).toBe(true);
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
await it('should return false for npm packages', async () => {
|
|
225
|
-
expect(isBuiltin('@babel/core')).toBe(false);
|
|
226
|
-
expect(isBuiltin('lodash')).toBe(false);
|
|
227
|
-
expect(isBuiltin('express')).toBe(false);
|
|
228
|
-
});
|
|
229
|
-
|
|
230
|
-
await it('should return false for empty string', async () => {
|
|
231
|
-
expect(isBuiltin('')).toBe(false);
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
await it('should return false for nonexistent module', async () => {
|
|
235
|
-
expect(isBuiltin('nonexistent')).toBe(false);
|
|
236
|
-
});
|
|
237
|
-
|
|
238
|
-
await it('should return false for relative paths', async () => {
|
|
239
|
-
expect(isBuiltin('./fs')).toBe(false);
|
|
240
|
-
expect(isBuiltin('../path')).toBe(false);
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
await it('should return false for absolute paths', async () => {
|
|
244
|
-
expect(isBuiltin('/absolute/path')).toBe(false);
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
await it('should return true for subpath fs/promises', async () => {
|
|
248
|
-
expect(isBuiltin('fs/promises')).toBe(true);
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
await it('should return true for subpath dns/promises', async () => {
|
|
252
|
-
expect(isBuiltin('dns/promises')).toBe(true);
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
await it('should return true for subpath timers/promises', async () => {
|
|
256
|
-
expect(isBuiltin('timers/promises')).toBe(true);
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
await it('should return true for subpath node:fs/promises', async () => {
|
|
260
|
-
expect(isBuiltin('node:fs/promises')).toBe(true);
|
|
261
|
-
});
|
|
262
|
-
|
|
263
|
-
await it('should return false for scoped package with node name', async () => {
|
|
264
|
-
expect(isBuiltin('@types/node')).toBe(false);
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
await it('should return true for stream', async () => {
|
|
268
|
-
expect(isBuiltin('stream')).toBe(true);
|
|
269
|
-
});
|
|
270
|
-
|
|
271
|
-
await it('should return true for assert', async () => {
|
|
272
|
-
expect(isBuiltin('assert')).toBe(true);
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
await it('should return true for diagnostics_channel', async () => {
|
|
276
|
-
expect(isBuiltin('diagnostics_channel')).toBe(true);
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
await it('should return true for async_hooks', async () => {
|
|
280
|
-
expect(isBuiltin('async_hooks')).toBe(true);
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
await describe('module.createRequire', async () => {
|
|
285
|
-
await it('should be a function', async () => {
|
|
286
|
-
expect(typeof createRequire).toBe('function');
|
|
287
|
-
});
|
|
288
|
-
|
|
289
|
-
await it('should accept import.meta.url', async () => {
|
|
290
|
-
const req = createRequire(import.meta.url);
|
|
291
|
-
expect(typeof req).toBe('function');
|
|
292
|
-
});
|
|
293
|
-
|
|
294
|
-
await it('should throw for relative path', async () => {
|
|
295
|
-
let threw = false;
|
|
296
|
-
try {
|
|
297
|
-
createRequire('relative/path.js');
|
|
298
|
-
} catch {
|
|
299
|
-
threw = true;
|
|
300
|
-
}
|
|
301
|
-
expect(threw).toBe(true);
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
await it('returned require should have resolve', async () => {
|
|
305
|
-
const req = createRequire(import.meta.url);
|
|
306
|
-
expect(typeof req.resolve).toBe('function');
|
|
307
|
-
});
|
|
308
|
-
|
|
309
|
-
await it('returned require should have resolve.paths', async () => {
|
|
310
|
-
const req = createRequire(import.meta.url);
|
|
311
|
-
expect(typeof req.resolve.paths).toBe('function');
|
|
312
|
-
});
|
|
313
|
-
|
|
314
|
-
await it('returned require should have cache', async () => {
|
|
315
|
-
const req = createRequire(import.meta.url);
|
|
316
|
-
expect(req.cache).toBeDefined();
|
|
317
|
-
expect(typeof req.cache).toBe('object');
|
|
318
|
-
});
|
|
319
|
-
|
|
320
|
-
await it('returned require should have extensions', async () => {
|
|
321
|
-
const req = createRequire(import.meta.url);
|
|
322
|
-
expect(req.extensions).toBeDefined();
|
|
323
|
-
expect(typeof req.extensions).toBe('object');
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
await it('resolve.paths should return null for builtins', async () => {
|
|
327
|
-
const req = createRequire(import.meta.url);
|
|
328
|
-
expect(req.resolve.paths('fs')).toBeNull();
|
|
329
|
-
});
|
|
330
|
-
|
|
331
|
-
await it('resolve should return module name for fs', async () => {
|
|
332
|
-
const req = createRequire(import.meta.url);
|
|
333
|
-
expect(req.resolve('fs')).toBe('fs');
|
|
334
|
-
});
|
|
335
|
-
|
|
336
|
-
await it('resolve should return module name for path', async () => {
|
|
337
|
-
const req = createRequire(import.meta.url);
|
|
338
|
-
expect(req.resolve('path')).toBe('path');
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
await it('resolve should return module name for os', async () => {
|
|
342
|
-
const req = createRequire(import.meta.url);
|
|
343
|
-
expect(req.resolve('os')).toBe('os');
|
|
344
|
-
});
|
|
345
|
-
|
|
346
|
-
await it('resolve should return module name for events', async () => {
|
|
347
|
-
const req = createRequire(import.meta.url);
|
|
348
|
-
expect(req.resolve('events')).toBe('events');
|
|
349
|
-
});
|
|
350
|
-
|
|
351
|
-
await it('resolve should honor pkg.exports subpath maps (Phase C)', async () => {
|
|
352
|
-
// `@gjsify/rolldown-plugin-gjsify` exports `./shims/console-gjs` →
|
|
353
|
-
// `./lib/shims/console-gjs.js`. Without exports-map support this
|
|
354
|
-
// call fell back to the literal walk and returned a non-existent
|
|
355
|
-
// path; with the Phase-C resolver the spec-defined subpath wins.
|
|
356
|
-
const req = createRequire(import.meta.url);
|
|
357
|
-
const resolved = req.resolve('@gjsify/rolldown-plugin-gjsify/shims/console-gjs');
|
|
358
|
-
expect(typeof resolved).toBe('string');
|
|
359
|
-
expect(resolved.endsWith('/lib/shims/console-gjs.js')).toBe(true);
|
|
360
|
-
});
|
|
361
|
-
|
|
362
|
-
await it('resolve should honor pkg.exports root entry (.)', async () => {
|
|
363
|
-
// `@gjsify/rolldown-plugin-gjsify` root export is the object-form
|
|
364
|
-
// `{ "types": "./lib/index.d.ts", "default": "./lib/index.js" }`
|
|
365
|
-
// — exports-map resolution picks `default` for the runtime require.
|
|
366
|
-
const req = createRequire(import.meta.url);
|
|
367
|
-
const resolved = req.resolve('@gjsify/rolldown-plugin-gjsify');
|
|
368
|
-
expect(typeof resolved).toBe('string');
|
|
369
|
-
expect(resolved.endsWith('/lib/index.js')).toBe(true);
|
|
370
|
-
});
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
await describe('module exports', async () => {
|
|
374
|
-
await it('should export builtinModules', async () => {
|
|
375
|
-
expect(builtinModules).toBeDefined();
|
|
376
|
-
});
|
|
377
|
-
|
|
378
|
-
await it('should export isBuiltin', async () => {
|
|
379
|
-
expect(typeof isBuiltin).toBe('function');
|
|
380
|
-
});
|
|
381
|
-
|
|
382
|
-
await it('should export createRequire', async () => {
|
|
383
|
-
expect(typeof createRequire).toBe('function');
|
|
384
|
-
});
|
|
385
|
-
});
|
|
386
|
-
};
|