@ms-cloudpack/package-utilities 2.2.2 → 2.3.1

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.
Files changed (60) hide show
  1. package/CHANGELOG.json +55 -1
  2. package/CHANGELOG.md +22 -2
  3. package/lib/PackageDefinitions.d.ts +1 -2
  4. package/lib/PackageDefinitions.js.map +1 -1
  5. package/lib/addExportsMapEntry.d.ts +2 -3
  6. package/lib/addExportsMapEntry.js +1 -0
  7. package/lib/addExportsMapEntry.js.map +1 -1
  8. package/lib/createExportsMap.d.ts +2 -3
  9. package/lib/createExportsMap.js.map +1 -1
  10. package/lib/createResolveMap.js.map +1 -1
  11. package/lib/findResolveMapEntry.d.ts +1 -1
  12. package/lib/flattenExportsMap.d.ts +2 -2
  13. package/lib/flattenExportsMap.js +26 -32
  14. package/lib/flattenExportsMap.js.map +1 -1
  15. package/lib/getExportPathFromEntry.d.ts +2 -2
  16. package/lib/getExportPathFromEntry.js +16 -20
  17. package/lib/getExportPathFromEntry.js.map +1 -1
  18. package/lib/getExportsMap.d.ts +2 -3
  19. package/lib/getExportsMap.js.map +1 -1
  20. package/lib/tsdoc-metadata.json +1 -1
  21. package/package.json +5 -5
  22. package/lib/PackageDefinitions.test.d.ts +0 -1
  23. package/lib/PackageDefinitions.test.js +0 -89
  24. package/lib/PackageDefinitions.test.js.map +0 -1
  25. package/lib/addExportsMapEntry.test.d.ts +0 -1
  26. package/lib/addExportsMapEntry.test.js +0 -182
  27. package/lib/addExportsMapEntry.test.js.map +0 -1
  28. package/lib/createExportsMap.test.d.ts +0 -1
  29. package/lib/createExportsMap.test.js +0 -313
  30. package/lib/createExportsMap.test.js.map +0 -1
  31. package/lib/createImportMap.test.d.ts +0 -1
  32. package/lib/createImportMap.test.js +0 -155
  33. package/lib/createImportMap.test.js.map +0 -1
  34. package/lib/createResolveMap.test.d.ts +0 -1
  35. package/lib/createResolveMap.test.js +0 -263
  36. package/lib/createResolveMap.test.js.map +0 -1
  37. package/lib/detectModuleType.test.d.ts +0 -1
  38. package/lib/detectModuleType.test.js +0 -32
  39. package/lib/detectModuleType.test.js.map +0 -1
  40. package/lib/findFileInPackage.test.d.ts +0 -1
  41. package/lib/findFileInPackage.test.js +0 -112
  42. package/lib/findFileInPackage.test.js.map +0 -1
  43. package/lib/findResolveMapEntry.test.d.ts +0 -1
  44. package/lib/findResolveMapEntry.test.js +0 -68
  45. package/lib/findResolveMapEntry.test.js.map +0 -1
  46. package/lib/flattenExportsMap.test.d.ts +0 -1
  47. package/lib/flattenExportsMap.test.js +0 -207
  48. package/lib/flattenExportsMap.test.js.map +0 -1
  49. package/lib/getExportPathFromEntry.test.d.ts +0 -1
  50. package/lib/getExportPathFromEntry.test.js +0 -38
  51. package/lib/getExportPathFromEntry.test.js.map +0 -1
  52. package/lib/getExportsMap.test.d.ts +0 -1
  53. package/lib/getExportsMap.test.js +0 -30
  54. package/lib/getExportsMap.test.js.map +0 -1
  55. package/lib/isExternalPackage.test.d.ts +0 -1
  56. package/lib/isExternalPackage.test.js +0 -13
  57. package/lib/isExternalPackage.test.js.map +0 -1
  58. package/lib/resolve.test.d.ts +0 -1
  59. package/lib/resolve.test.js +0 -13
  60. package/lib/resolve.test.js.map +0 -1
@@ -1,182 +0,0 @@
1
- import { describe, expect, it, afterEach } from '@jest/globals';
2
- import { addExportsMapEntry } from './addExportsMapEntry.js';
3
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
4
- import path from 'path';
5
- import fs from 'fs';
6
- const { rm } = fs.promises;
7
- describe('await addExportsMapEntry', () => {
8
- let testPath;
9
- afterEach(async () => {
10
- if (testPath) {
11
- await rm(testPath, { recursive: true });
12
- testPath = undefined;
13
- }
14
- });
15
- it('can ignore entries that have no physical file', async () => {
16
- const exportsMap = {};
17
- testPath = await createTestFileStructure({});
18
- await addExportsMapEntry({
19
- exports: exportsMap,
20
- packagePath: testPath,
21
- filePath: './lib/foo-sub1',
22
- });
23
- expect(exportsMap).toEqual({});
24
- });
25
- it('can add an entry with only an importPath', async () => {
26
- const exportsMap = {};
27
- testPath = await createTestFileStructure({
28
- 'lib/foo-sub1.js': '',
29
- });
30
- await addExportsMapEntry({
31
- exports: exportsMap,
32
- packagePath: testPath,
33
- importPath: './lib/foo-sub1',
34
- });
35
- expect(exportsMap).toMatchInlineSnapshot(`
36
- {
37
- "./lib/foo-sub1": {
38
- "default": "./lib/foo-sub1.js",
39
- },
40
- }
41
- `);
42
- });
43
- it('can add an entry with only a file path', async () => {
44
- const exportsMap = {};
45
- testPath = await createTestFileStructure({
46
- 'lib/foo-sub1.js': '',
47
- });
48
- await addExportsMapEntry({
49
- exports: exportsMap,
50
- packagePath: testPath,
51
- filePath: './lib/foo-sub1',
52
- });
53
- expect(exportsMap).toMatchInlineSnapshot(`
54
- {
55
- ".": {
56
- "default": "./lib/foo-sub1.js",
57
- },
58
- }
59
- `);
60
- });
61
- it('can add an entry with both import and file paths', async () => {
62
- const exportsMap = {};
63
- testPath = await createTestFileStructure({
64
- 'lib/foo-sub1.js': '',
65
- });
66
- await addExportsMapEntry({
67
- exports: exportsMap,
68
- packagePath: testPath,
69
- importPath: './foo',
70
- filePath: './lib/foo-sub1',
71
- });
72
- expect(exportsMap).toMatchInlineSnapshot(`
73
- {
74
- "./foo": {
75
- "default": "./lib/foo-sub1.js",
76
- },
77
- }
78
- `);
79
- });
80
- it('can add an entry that has source backing it', async () => {
81
- const exportsMap = {};
82
- testPath = await createTestFileStructure({
83
- 'src/foo-sub1.tsx': '',
84
- });
85
- await addExportsMapEntry({
86
- exports: exportsMap,
87
- packagePath: testPath,
88
- importPath: '.',
89
- filePath: './lib/foo-sub1',
90
- });
91
- expect(exportsMap).toMatchInlineSnapshot(`
92
- {
93
- ".": {
94
- "default": "./lib/foo-sub1.js",
95
- "source": "./src/foo-sub1.tsx",
96
- "types": "./lib/foo-sub1.d.ts",
97
- },
98
- }
99
- `);
100
- });
101
- it('can add an entry to an existing exports map', async () => {
102
- const exportsMap = {
103
- '.': './lib/index.js',
104
- };
105
- testPath = await createTestFileStructure({
106
- 'src/foo.tsx': '',
107
- });
108
- await addExportsMapEntry({
109
- exports: exportsMap,
110
- packagePath: testPath,
111
- importPath: './lib/foo',
112
- });
113
- expect(exportsMap).toMatchInlineSnapshot(`
114
- {
115
- ".": "./lib/index.js",
116
- "./lib/foo": {
117
- "default": "./lib/foo.js",
118
- "source": "./src/foo.tsx",
119
- "types": "./lib/foo.d.ts",
120
- },
121
- }
122
- `);
123
- });
124
- it('can add an entry to an external package like the "debug" package', async () => {
125
- const exportsMap = {};
126
- testPath = await createTestFileStructure({
127
- 'node_modules/debug/package.json': {
128
- name: 'debug',
129
- main: './src/index.js',
130
- browser: './src/browser.js',
131
- },
132
- 'node_modules/debug/src/index.js': '',
133
- 'node_modules/debug/src/browser.js': '',
134
- });
135
- const packagePath = path.join(testPath, 'node_modules/debug');
136
- await addExportsMapEntry({
137
- exports: exportsMap,
138
- packagePath,
139
- importPath: '.',
140
- filePath: './src/index.js',
141
- condition: 'require',
142
- });
143
- await addExportsMapEntry({
144
- exports: exportsMap,
145
- packagePath,
146
- importPath: '.',
147
- filePath: './src/browser.js',
148
- condition: 'browser',
149
- });
150
- expect(exportsMap).toMatchInlineSnapshot(`
151
- {
152
- ".": {
153
- "browser": "./src/browser.js",
154
- "require": "./src/index.js",
155
- },
156
- }
157
- `);
158
- });
159
- it('can add typings specified in input', async () => {
160
- const exportsMap = {};
161
- testPath = await createTestFileStructure({
162
- 'index.js': '',
163
- 'typings/index.d.ts': '',
164
- });
165
- await addExportsMapEntry({
166
- exports: exportsMap,
167
- packagePath: testPath,
168
- importPath: '.',
169
- filePath: './index.js',
170
- typesPath: './typings/index.d.ts',
171
- });
172
- expect(exportsMap).toMatchInlineSnapshot(`
173
- {
174
- ".": {
175
- "default": "./index.js",
176
- "types": "./typings/index.d.ts",
177
- },
178
- }
179
- `);
180
- });
181
- });
182
- //# sourceMappingURL=addExportsMapEntry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addExportsMapEntry.test.js","sourceRoot":"","sources":["../src/addExportsMapEntry.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,313 +0,0 @@
1
- import { describe, it, expect, afterEach } from '@jest/globals';
2
- import { createExportsMap } from './createExportsMap.js';
3
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
4
- import fs from 'fs';
5
- const { rm } = fs.promises;
6
- describe('createExportsMap', () => {
7
- let packagePath;
8
- afterEach(async () => {
9
- if (packagePath) {
10
- await rm(packagePath, { recursive: true });
11
- packagePath = undefined;
12
- }
13
- });
14
- it('can return a blank import map for something with nothing to export', async () => {
15
- packagePath = await createTestFileStructure({
16
- 'package.json': {},
17
- });
18
- expect(await createExportsMap(packagePath)).toEqual({});
19
- });
20
- it('can generate an exports map for a package with an implicit index.js file', async () => {
21
- packagePath = await createTestFileStructure({
22
- 'package.json': {},
23
- 'index.js': '',
24
- });
25
- expect(await createExportsMap(packagePath)).toEqual({
26
- '.': {
27
- default: './index.js',
28
- },
29
- });
30
- });
31
- it('can generate an exports map for a package with a main export as esm', async () => {
32
- packagePath = await createTestFileStructure({
33
- 'package.json': {
34
- type: 'module',
35
- },
36
- 'index.js': '',
37
- });
38
- const exportsMap = await createExportsMap(packagePath);
39
- expect(exportsMap).toEqual({
40
- '.': {
41
- import: './index.js',
42
- },
43
- });
44
- });
45
- it('can generate an exports map for a package with a main export as cjs and types', async () => {
46
- packagePath = await createTestFileStructure({
47
- 'package.json': { main: 'main', types: 'main.d.ts' },
48
- 'main.js': '',
49
- 'main.d.ts': '',
50
- });
51
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
52
- {
53
- ".": {
54
- "default": "./main.js",
55
- "types": "./main.d.ts",
56
- },
57
- }
58
- `);
59
- });
60
- it('can generate an exports map for a package with a module export', async () => {
61
- packagePath = await createTestFileStructure({
62
- 'package.json': { module: 'module', types: 'module.d.ts' },
63
- 'module.js': '',
64
- 'module.d.ts': '',
65
- });
66
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
67
- {
68
- ".": {
69
- "import": "./module.js",
70
- "types": "./module.d.ts",
71
- },
72
- }
73
- `);
74
- });
75
- it('can generate an exports map for a package with a main, module, and browser entry', async () => {
76
- packagePath = await createTestFileStructure({
77
- 'package.json': {
78
- name: 'browser-export',
79
- main: 'main.js',
80
- module: 'module.js',
81
- browser: 'browser.js',
82
- },
83
- 'main.js': '',
84
- 'module.js': '',
85
- 'browser.js': '',
86
- });
87
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
88
- {
89
- ".": {
90
- "browser": "./browser.js",
91
- "default": "./main.js",
92
- "import": "./module.js",
93
- },
94
- }
95
- `);
96
- });
97
- it('can expand browser mappings into additional entries', async () => {
98
- packagePath = await createTestFileStructure({
99
- 'package.json': {
100
- name: 'browser-export',
101
- main: 'main',
102
- browser: {
103
- main: 'browser.js',
104
- foo: 'foo-browser.js',
105
- },
106
- },
107
- 'main.js': '',
108
- 'foo.js': '',
109
- 'foo-browser.js': '',
110
- 'browser.js': '',
111
- });
112
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
113
- {
114
- ".": {
115
- "browser": "./browser.js",
116
- "default": "./main.js",
117
- },
118
- "./foo": {
119
- "browser": "./foo-browser.js",
120
- },
121
- }
122
- `);
123
- });
124
- it('can generate an exports map for a package with a type/source exports', async () => {
125
- packagePath = await createTestFileStructure({
126
- 'package.json': {
127
- name: 'browser-export',
128
- typings: './lib/index.d.ts',
129
- module: './lib/index.js',
130
- },
131
- 'lib/index.js': '',
132
- 'lib/index.d.ts': '',
133
- 'src/index.tsx': '',
134
- });
135
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
136
- {
137
- ".": {
138
- "import": "./lib/index.js",
139
- "source": "./src/index.tsx",
140
- "types": "./lib/index.d.ts",
141
- },
142
- }
143
- `);
144
- });
145
- it('can generate an exports map for an internal unbuilt package', async () => {
146
- packagePath = await createTestFileStructure({
147
- 'package.json': {
148
- name: 'browser-export',
149
- typings: './lib/index.d.ts',
150
- module: './lib/index.js',
151
- },
152
- 'src/index.tsx': '',
153
- });
154
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
155
- {
156
- ".": {
157
- "import": "./lib/index.js",
158
- "source": "./src/index.tsx",
159
- "types": "./lib/index.d.ts",
160
- },
161
- }
162
- `);
163
- });
164
- it('can generate an exports map and ignore a browser entry does not exist', async () => {
165
- packagePath = await createTestFileStructure({
166
- 'package.json': {
167
- main: 'main.js',
168
- module: 'module.js',
169
- browser: 'browser.js',
170
- },
171
- 'main.js': '',
172
- 'module.js': '',
173
- });
174
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
175
- {
176
- ".": {
177
- "default": "./main.js",
178
- "import": "./module.js",
179
- },
180
- }
181
- `);
182
- });
183
- it('can generate an exports map for an external package with implicit type exports', async () => {
184
- packagePath = await createTestFileStructure({
185
- 'package.json': {
186
- main: 'lib/main.js',
187
- typings: 'typings/main.d.ts',
188
- },
189
- 'lib/main.js': '',
190
- 'typings/main.d.ts': '',
191
- });
192
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
193
- {
194
- ".": {
195
- "default": "./lib/main.js",
196
- "types": "./typings/main.d.ts",
197
- },
198
- }
199
- `);
200
- });
201
- it(`can find exports from browser-only packages like uuid@3.4.0`, async () => {
202
- packagePath = await createTestFileStructure({
203
- 'package.json': {
204
- name: 'uuid',
205
- browser: {
206
- './lib/rng.js': './lib/rng-browser.js',
207
- './lib/sha1.js': './lib/sha1-browser.js',
208
- './lib/md5.js': './lib/md5-browser.js',
209
- },
210
- },
211
- 'lib/rng.js': '',
212
- 'lib/sha1.js': '',
213
- 'lib/md5.js': '',
214
- 'lib/rng-browser.js': '',
215
- 'lib/sha1-browser.js': '',
216
- 'lib/md5-browser.js': '',
217
- });
218
- const exportsMap = (await createExportsMap(packagePath));
219
- expect(typeof exportsMap).toEqual('object');
220
- expect(exportsMap?.['.']).toBeUndefined();
221
- expect(exportsMap).toMatchInlineSnapshot(`
222
- {
223
- "./lib/md5": {
224
- "browser": "./lib/md5-browser.js",
225
- },
226
- "./lib/rng": {
227
- "browser": "./lib/rng-browser.js",
228
- },
229
- "./lib/sha1": {
230
- "browser": "./lib/sha1-browser.js",
231
- },
232
- }
233
- `);
234
- expect(Object.keys(exportsMap).length).toBeGreaterThan(0);
235
- });
236
- it(`can build an exports map for styled components`, async () => {
237
- packagePath = await createTestFileStructure({
238
- 'package.json': {
239
- name: 'styled-components',
240
- main: 'dist/sc.cjs.js',
241
- module: 'dist/sc.esm.js',
242
- browser: {
243
- './dist/sc.esm.js': './dist/sc.browser.esm.js',
244
- './dist/sc.cjs.js': './dist/sc.browser.cjs.js',
245
- },
246
- },
247
- 'dist/sc.cjs.js': '',
248
- 'dist/sc.esm.js': '',
249
- 'dist/sc.browser.cjs.js': '',
250
- 'dist/sc.browser.esm.js': '',
251
- });
252
- expect(await createExportsMap(packagePath)).toMatchInlineSnapshot(`
253
- {
254
- ".": {
255
- "browser": "./dist/sc.browser.esm.js",
256
- "default": "./dist/sc.cjs.js",
257
- "import": "./dist/sc.esm.js",
258
- },
259
- "./dist/sc.cjs": {
260
- "browser": "./dist/sc.browser.cjs.js",
261
- },
262
- }
263
- `);
264
- });
265
- it(`can build an exports map for a CRA TS scenario`, async () => {
266
- packagePath = await createTestFileStructure({
267
- 'package.json': {},
268
- 'src/index.tsx': '',
269
- });
270
- const exportsMap = await createExportsMap(packagePath);
271
- expect(Object.keys(exportsMap).length).toBeGreaterThan(0);
272
- expect(exportsMap).toMatchInlineSnapshot(`
273
- {
274
- ".": {
275
- "default": "./lib/index.js",
276
- "source": "./src/index.tsx",
277
- "types": "./lib/index.d.ts",
278
- },
279
- }
280
- `);
281
- });
282
- it(`can build an exports map for a CRA JS scenario`, async () => {
283
- packagePath = await createTestFileStructure({
284
- 'package.json': {},
285
- 'src/index.js': '',
286
- });
287
- const exportsMap = await createExportsMap(packagePath);
288
- expect(exportsMap).toMatchInlineSnapshot(`
289
- {
290
- ".": {
291
- "default": "./lib/index.js",
292
- "source": "./src/index.js",
293
- "types": "./lib/index.d.ts",
294
- },
295
- }
296
- `);
297
- });
298
- it(`can find a root index file.`, async () => {
299
- packagePath = await createTestFileStructure({
300
- 'package.json': {},
301
- 'index.js': '',
302
- });
303
- const exportsMap = await createExportsMap(packagePath);
304
- expect(exportsMap).toMatchInlineSnapshot(`
305
- {
306
- ".": {
307
- "default": "./index.js",
308
- },
309
- }
310
- `);
311
- });
312
- });
313
- //# sourceMappingURL=createExportsMap.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createExportsMap.test.js","sourceRoot":"","sources":["../src/createExportsMap.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,155 +0,0 @@
1
- import { describe, it, expect, afterEach } from '@jest/globals';
2
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
3
- import { createImportMap } from './createImportMap.js';
4
- import { PackageDefinitions } from './PackageDefinitions.js';
5
- import fs from 'fs';
6
- const { rm } = fs.promises;
7
- const defaultServer = 'http://localhost:8080';
8
- describe('createImportMap', () => {
9
- let testPath;
10
- afterEach(async () => {
11
- if (testPath) {
12
- await rm(testPath, { recursive: true });
13
- testPath = undefined;
14
- }
15
- });
16
- it('can generate an import map for a package with a main', async () => {
17
- testPath = await createTestFileStructure({
18
- 'package.json': {
19
- name: 'foo',
20
- version: '1.0.0',
21
- main: './index.js',
22
- },
23
- 'index.js': '',
24
- });
25
- const resolveMap = {
26
- foo: {
27
- name: 'foo',
28
- version: '1.0.0',
29
- path: testPath,
30
- requiredBy: {},
31
- },
32
- };
33
- expect(await createImportMap(resolveMap, defaultServer)).toMatchInlineSnapshot(`
34
- {
35
- "imports": {
36
- "foo": "http://localhost:8080/foo@1.0.0/v0/bundled/index.js",
37
- },
38
- }
39
- `);
40
- });
41
- it('can return an unbundled entry for external packages with browser-esm', async () => {
42
- const resolveMap = {
43
- foo: {
44
- name: 'foo',
45
- version: '1.0.0',
46
- path: '/node_modules/foo',
47
- requiredBy: {},
48
- },
49
- };
50
- const packages = new PackageDefinitions({
51
- '/node_modules/foo': {
52
- name: 'foo',
53
- version: '1.0.0',
54
- exports: {
55
- '.': {
56
- 'browser-esm': './browser-esm.js',
57
- browser: './browser.js',
58
- default: './default.js',
59
- },
60
- },
61
- },
62
- });
63
- expect(await createImportMap(resolveMap, defaultServer, { packages })).toMatchInlineSnapshot(`
64
- {
65
- "imports": {
66
- "foo": "http://localhost:8080/foo@1.0.0/v0/unbundled/browser-esm.js",
67
- },
68
- }
69
- `);
70
- });
71
- it('can return a bundled entry for internal packages with browser-esm', async () => {
72
- const resolveMap = {
73
- foo: {
74
- name: 'foo',
75
- version: '1.0.0',
76
- path: '/foo',
77
- requiredBy: {},
78
- },
79
- };
80
- const packages = new PackageDefinitions({
81
- '/foo': {
82
- name: 'foo',
83
- version: '1.0.0',
84
- exports: {
85
- '.': {
86
- 'browser-esm': './browser-esm.js',
87
- browser: './browser.js',
88
- default: './default.js',
89
- },
90
- },
91
- },
92
- });
93
- expect(await createImportMap(resolveMap, defaultServer, { packages })).toMatchInlineSnapshot(`
94
- {
95
- "imports": {
96
- "foo": "http://localhost:8080/foo@1.0.0/v0/bundled/browser.js",
97
- },
98
- }
99
- `);
100
- });
101
- it('can generate an import map for a package and append a refresh version', async () => {
102
- testPath = await createTestFileStructure({
103
- 'package.json': {
104
- name: 'foo',
105
- version: '1.0.0',
106
- main: './index.js',
107
- },
108
- 'index.js': '',
109
- });
110
- const resolveMap = {
111
- foo: {
112
- name: 'foo',
113
- version: '1.0.0',
114
- path: testPath,
115
- requiredBy: {},
116
- },
117
- };
118
- expect(await createImportMap(resolveMap, defaultServer, { sessionVersion: 3 })).toMatchInlineSnapshot(`
119
- {
120
- "imports": {
121
- "foo": "http://localhost:8080/foo@1.0.0/v3/bundled/index.js",
122
- },
123
- }
124
- `);
125
- });
126
- it('can generate an import map for a package and append a refresh and task version', async () => {
127
- testPath = await createTestFileStructure({
128
- 'package.json': {
129
- name: 'foo',
130
- version: '1.0.0',
131
- main: './index.js',
132
- },
133
- 'index.js': '',
134
- });
135
- const resolveMap = {
136
- foo: {
137
- name: 'foo',
138
- version: '1.0.0',
139
- path: testPath,
140
- requiredBy: {},
141
- },
142
- };
143
- expect(await createImportMap(resolveMap, defaultServer, {
144
- sessionVersion: 3,
145
- targetVersions: { [testPath]: 2 },
146
- })).toMatchInlineSnapshot(`
147
- {
148
- "imports": {
149
- "foo": "http://localhost:8080/foo@1.0.0/v3.2/bundled/index.js",
150
- },
151
- }
152
- `);
153
- });
154
- });
155
- //# sourceMappingURL=createImportMap.test.js.map