@ms-cloudpack/package-utilities 0.7.0 → 0.9.0
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/CHANGELOG.json +67 -1
- package/CHANGELOG.md +27 -2
- package/lib/PackageDefinitions.d.ts +12 -0
- package/lib/PackageDefinitions.js +41 -0
- package/lib/PackageDefinitions.js.map +1 -0
- package/lib/PackageDefinitions.test.d.ts +1 -0
- package/lib/PackageDefinitions.test.js +89 -0
- package/lib/PackageDefinitions.test.js.map +1 -0
- package/lib/cleanEntry.d.ts +1 -0
- package/lib/cleanEntry.js +11 -0
- package/lib/cleanEntry.js.map +1 -0
- package/lib/createImportMap.js +19 -22
- package/lib/createImportMap.js.map +1 -1
- package/lib/createImportMap.test.js +25 -17
- package/lib/createImportMap.test.js.map +1 -1
- package/lib/createResolveMap.test.js +34 -33
- package/lib/createResolveMap.test.js.map +1 -1
- package/lib/detectModuleType.test.js +1 -0
- package/lib/detectModuleType.test.js.map +1 -1
- package/lib/evaluateImportsFromEntries.test.js +12 -11
- package/lib/evaluateImportsFromEntries.test.js.map +1 -1
- package/lib/getExportPathFromEntry.test.js +1 -0
- package/lib/getExportPathFromEntry.test.js.map +1 -1
- package/lib/getExportsMap.d.ts +5 -0
- package/lib/getExportsMap.js +75 -0
- package/lib/getExportsMap.js.map +1 -0
- package/lib/getExportsMap.test.d.ts +1 -0
- package/lib/getExportsMap.test.js +260 -0
- package/lib/getExportsMap.test.js.map +1 -0
- package/lib/index.d.ts +3 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/isExternalPackage.test.js +1 -0
- package/lib/isExternalPackage.test.js.map +1 -1
- package/lib/parseImportString.test.js +1 -0
- package/lib/parseImportString.test.js.map +1 -1
- package/lib/resolve.test.js +1 -0
- package/lib/resolve.test.js.map +1 -1
- package/lib/resolveImportFromPackage.test.js +1 -0
- package/lib/resolveImportFromPackage.test.js.map +1 -1
- package/lib/resolvePackageEntries.js +4 -3
- package/lib/resolvePackageEntries.js.map +1 -1
- package/lib/resolvePackageEntries.test.js +6 -0
- package/lib/resolvePackageEntries.test.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +4 -4
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,73 @@
|
|
|
2
2
|
"name": "@ms-cloudpack/package-utilities",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Sun, 04 Sep 2022 08:14:28 GMT",
|
|
6
|
+
"tag": "@ms-cloudpack/package-utilities_v0.9.0",
|
|
7
|
+
"version": "0.9.0",
|
|
8
|
+
"comments": {
|
|
9
|
+
"minor": [
|
|
10
|
+
{
|
|
11
|
+
"author": "dzearing@microsoft.com",
|
|
12
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
13
|
+
"commit": "33c2ca948b1ea905fa5a09f56bd443724d638fe3",
|
|
14
|
+
"comment": "Adding PackageDefinitions implementation."
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Sat, 03 Sep 2022 08:15:29 GMT",
|
|
21
|
+
"tag": "@ms-cloudpack/package-utilities_v0.8.1",
|
|
22
|
+
"version": "0.8.1",
|
|
23
|
+
"comments": {
|
|
24
|
+
"patch": [
|
|
25
|
+
{
|
|
26
|
+
"author": "beachball",
|
|
27
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
28
|
+
"comment": "Bump @ms-cloudpack/path-utilities to v0.3.2",
|
|
29
|
+
"commit": "ec909bf967a54b174cb1d50e7e55bd4b3ed02884"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"date": "Thu, 25 Aug 2022 08:12:52 GMT",
|
|
36
|
+
"tag": "@ms-cloudpack/package-utilities_v0.8.0",
|
|
37
|
+
"version": "0.8.0",
|
|
38
|
+
"comments": {
|
|
39
|
+
"none": [
|
|
40
|
+
{
|
|
41
|
+
"author": "email not defined",
|
|
42
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
43
|
+
"commit": "b5fd98ff781c880bb2e368c89cdd784acd43b156",
|
|
44
|
+
"comment": "Update babel monorepo to v7.18.13"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"date": "Wed, 24 Aug 2022 08:14:41 GMT",
|
|
51
|
+
"tag": "@ms-cloudpack/package-utilities_v0.8.0",
|
|
52
|
+
"version": "0.8.0",
|
|
53
|
+
"comments": {
|
|
54
|
+
"minor": [
|
|
55
|
+
{
|
|
56
|
+
"author": "dzearing@microsoft.com",
|
|
57
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
58
|
+
"commit": "3ba31149f7ca723c11f75bca3cc036e93887cd25",
|
|
59
|
+
"comment": "Adding getExportsMap utility plus tests to update how importMaps are generated. Integrated into the workflow."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"author": "beachball",
|
|
63
|
+
"package": "@ms-cloudpack/package-utilities",
|
|
64
|
+
"comment": "Bump @ms-cloudpack/package-overrides to v0.1.0",
|
|
65
|
+
"commit": "3ba31149f7ca723c11f75bca3cc036e93887cd25"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"date": "Tue, 16 Aug 2022 08:12:03 GMT",
|
|
6
72
|
"tag": "@ms-cloudpack/package-utilities_v0.7.0",
|
|
7
73
|
"version": "0.7.0",
|
|
8
74
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
# Change Log - @ms-cloudpack/package-utilities
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Sun, 04 Sep 2022 08:14:28 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.9.0
|
|
8
|
+
|
|
9
|
+
Sun, 04 Sep 2022 08:14:28 GMT
|
|
10
|
+
|
|
11
|
+
### Minor changes
|
|
12
|
+
|
|
13
|
+
- Adding PackageDefinitions implementation. (dzearing@microsoft.com)
|
|
14
|
+
|
|
15
|
+
## 0.8.1
|
|
16
|
+
|
|
17
|
+
Sat, 03 Sep 2022 08:15:29 GMT
|
|
18
|
+
|
|
19
|
+
### Patches
|
|
20
|
+
|
|
21
|
+
- Bump @ms-cloudpack/path-utilities to v0.3.2
|
|
22
|
+
|
|
23
|
+
## 0.8.0
|
|
24
|
+
|
|
25
|
+
Wed, 24 Aug 2022 08:14:41 GMT
|
|
26
|
+
|
|
27
|
+
### Minor changes
|
|
28
|
+
|
|
29
|
+
- Adding getExportsMap utility plus tests to update how importMaps are generated. Integrated into the workflow. (dzearing@microsoft.com)
|
|
30
|
+
- Bump @ms-cloudpack/package-overrides to v0.1.0
|
|
31
|
+
|
|
7
32
|
## 0.7.0
|
|
8
33
|
|
|
9
|
-
Tue, 16 Aug 2022 08:
|
|
34
|
+
Tue, 16 Aug 2022 08:12:03 GMT
|
|
10
35
|
|
|
11
36
|
### Minor changes
|
|
12
37
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PackageJson } from 'type-fest';
|
|
2
|
+
export declare type PackageDefinitionTransform = (definition: PackageJson) => PackageJson | undefined;
|
|
3
|
+
export declare class PackageDefinitions {
|
|
4
|
+
static getInstance(): PackageDefinitions;
|
|
5
|
+
private _cache;
|
|
6
|
+
private _transforms;
|
|
7
|
+
get(packagePath: string, options?: {
|
|
8
|
+
refresh: boolean;
|
|
9
|
+
}): Promise<PackageJson | undefined>;
|
|
10
|
+
registerTransform(callback: PackageDefinitionTransform): void;
|
|
11
|
+
clear(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { applyOverrides } from '@ms-cloudpack/package-overrides';
|
|
3
|
+
import { readJson } from '@ms-cloudpack/json-utilities';
|
|
4
|
+
let _singleton;
|
|
5
|
+
export class PackageDefinitions {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._cache = {};
|
|
8
|
+
this._transforms = [applyOverrides];
|
|
9
|
+
}
|
|
10
|
+
static getInstance() {
|
|
11
|
+
if (!_singleton) {
|
|
12
|
+
_singleton = new PackageDefinitions();
|
|
13
|
+
}
|
|
14
|
+
return _singleton;
|
|
15
|
+
}
|
|
16
|
+
async get(packagePath, options) {
|
|
17
|
+
let existingDefinition = this._cache[packagePath];
|
|
18
|
+
if (!existingDefinition || options?.refresh) {
|
|
19
|
+
try {
|
|
20
|
+
// Load the package and apply transforms.
|
|
21
|
+
const definition = await readJson(path.join(packagePath, 'package.json'));
|
|
22
|
+
// If we have loaded a definition, apply transforms and cache/return the result.
|
|
23
|
+
if (definition) {
|
|
24
|
+
existingDefinition = this._cache[packagePath] = this._transforms.reduce((def, transform) => transform(def) || def, definition);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
/* no-op */
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return existingDefinition;
|
|
32
|
+
}
|
|
33
|
+
registerTransform(callback) {
|
|
34
|
+
this._transforms.push(callback);
|
|
35
|
+
this.clear();
|
|
36
|
+
}
|
|
37
|
+
clear() {
|
|
38
|
+
this._cache = {};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=PackageDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageDefinitions.js","sourceRoot":"","sources":["../src/PackageDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,IAAI,UAA0C,CAAC;AAG/C,MAAM,OAAO,kBAAkB;IAA/B;QAQU,WAAM,GAAgC,EAAE,CAAC;QACzC,gBAAW,GAAiC,CAAC,cAAc,CAAC,CAAC;IAiCvE,CAAC;IAzCC,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,UAAU,EAAE;YACf,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;SACvC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAKD,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,OAA8B;QAC3D,IAAI,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,IAAI,OAAO,EAAE,OAAO,EAAE;YAC3C,IAAI;gBACF,yCAAyC;gBACzC,MAAM,UAAU,GAA4B,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;gBAEnG,gFAAgF;gBAChF,IAAI,UAAU,EAAE;oBACd,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACrE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,EACzC,UAAU,CACX,CAAC;iBACH;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,WAAW;aACZ;SACF;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,QAAoC;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { PackageDefinitions } from './PackageDefinitions.js';
|
|
2
|
+
import { testProject1Path } from './testPaths.js';
|
|
3
|
+
import { describe, it, expect } from '@jest/globals';
|
|
4
|
+
describe('PackageDefinitions', () => {
|
|
5
|
+
it('can get a package definition', async () => {
|
|
6
|
+
const definitions = new PackageDefinitions();
|
|
7
|
+
expect(await definitions.get(testProject1Path)).toMatchInlineSnapshot(`
|
|
8
|
+
{
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"b": "^1.0.0",
|
|
11
|
+
"c": "^1.0.0",
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": "./lib/index.js",
|
|
15
|
+
"./foo": "./lib/foo.js",
|
|
16
|
+
},
|
|
17
|
+
"name": "test-project-1",
|
|
18
|
+
"type": "module",
|
|
19
|
+
"version": "0.0.1",
|
|
20
|
+
}
|
|
21
|
+
`);
|
|
22
|
+
});
|
|
23
|
+
it('can return undefined when the package definition is missing', async () => {
|
|
24
|
+
const definitions = new PackageDefinitions();
|
|
25
|
+
expect(await definitions.get('./missing')).toBeUndefined();
|
|
26
|
+
});
|
|
27
|
+
it('can get package definitions with transforms', async () => {
|
|
28
|
+
const definitions = new PackageDefinitions();
|
|
29
|
+
definitions.registerTransform((definition) => ({
|
|
30
|
+
...definition,
|
|
31
|
+
name: 'transformed',
|
|
32
|
+
}));
|
|
33
|
+
expect(await definitions.get(testProject1Path)).toMatchInlineSnapshot(`
|
|
34
|
+
{
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"b": "^1.0.0",
|
|
37
|
+
"c": "^1.0.0",
|
|
38
|
+
},
|
|
39
|
+
"exports": {
|
|
40
|
+
".": "./lib/index.js",
|
|
41
|
+
"./foo": "./lib/foo.js",
|
|
42
|
+
},
|
|
43
|
+
"name": "transformed",
|
|
44
|
+
"type": "module",
|
|
45
|
+
"version": "0.0.1",
|
|
46
|
+
}
|
|
47
|
+
`);
|
|
48
|
+
});
|
|
49
|
+
it('can get package definitions with transforms and refresh', async () => {
|
|
50
|
+
const definitions = new PackageDefinitions();
|
|
51
|
+
let transformName = 'transformed';
|
|
52
|
+
let definition = await definitions.get(testProject1Path);
|
|
53
|
+
expect(definition?.name).toBe('test-project-1');
|
|
54
|
+
definitions.registerTransform((definition) => ({
|
|
55
|
+
...definition,
|
|
56
|
+
name: transformName,
|
|
57
|
+
}));
|
|
58
|
+
definition = await definitions.get(testProject1Path);
|
|
59
|
+
expect(definition?.name).toBe('transformed');
|
|
60
|
+
transformName = 'transformed2';
|
|
61
|
+
// This should return a cached version.
|
|
62
|
+
definition = await definitions.get(testProject1Path);
|
|
63
|
+
expect(definition?.name).toBe('transformed');
|
|
64
|
+
// Passing in refresh:true should reset.
|
|
65
|
+
definition = await definitions.get(testProject1Path, { refresh: true });
|
|
66
|
+
expect(definition?.name).toBe('transformed2');
|
|
67
|
+
});
|
|
68
|
+
it('can get package definitions with transforms and clear', async () => {
|
|
69
|
+
const definitions = new PackageDefinitions();
|
|
70
|
+
let transformName = 'transformed';
|
|
71
|
+
let definition = await definitions.get(testProject1Path);
|
|
72
|
+
expect(definition?.name).toBe('test-project-1');
|
|
73
|
+
definitions.registerTransform((definition) => ({
|
|
74
|
+
...definition,
|
|
75
|
+
name: transformName,
|
|
76
|
+
}));
|
|
77
|
+
definition = await definitions.get(testProject1Path);
|
|
78
|
+
expect(definition?.name).toBe('transformed');
|
|
79
|
+
transformName = 'transformed2';
|
|
80
|
+
// This should return a cached version.
|
|
81
|
+
definition = await definitions.get(testProject1Path);
|
|
82
|
+
expect(definition?.name).toBe('transformed');
|
|
83
|
+
// Clearing should reset.
|
|
84
|
+
definitions.clear();
|
|
85
|
+
definition = await definitions.get(testProject1Path);
|
|
86
|
+
expect(definition?.name).toBe('transformed2');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=PackageDefinitions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageDefinitions.test.js","sourceRoot":"","sources":["../src/PackageDefinitions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cleanEntry(entryName: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
export function cleanEntry(entryName) {
|
|
3
|
+
if (path.extname(entryName) === '') {
|
|
4
|
+
entryName += '.js';
|
|
5
|
+
}
|
|
6
|
+
if (!entryName.startsWith('./')) {
|
|
7
|
+
entryName = `./${entryName}`;
|
|
8
|
+
}
|
|
9
|
+
return entryName;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=cleanEntry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanEntry.js","sourceRoot":"","sources":["../src/cleanEntry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;QAClC,SAAS,IAAI,KAAK,CAAC;KACpB;IAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC/B,SAAS,GAAG,KAAK,SAAS,EAAE,CAAC;KAC9B;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/lib/createImportMap.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import { slash } from '@ms-cloudpack/path-utilities';
|
|
3
1
|
import { getPackageDefinition } from './getPackageDefinition.js';
|
|
4
|
-
import { getExportPathFromEntry } from './getExportPathFromEntry.js';
|
|
5
2
|
import { merge } from 'merge';
|
|
3
|
+
import { getExportsMap } from './getExportsMap.js';
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
6
|
export async function createImportMap(resolveMap, bundleServerUrl, packageDefinitions) {
|
|
7
|
+
var _a, _b;
|
|
7
8
|
const importMap = {
|
|
8
9
|
imports: {},
|
|
9
10
|
};
|
|
@@ -13,12 +14,10 @@ export async function createImportMap(resolveMap, bundleServerUrl, packageDefini
|
|
|
13
14
|
// Initialize scopes
|
|
14
15
|
importMap.scopes ?? (importMap.scopes = {});
|
|
15
16
|
for (const scopedEntry of Object.values(resolveEntry.scopedVersions)) {
|
|
17
|
+
const importMapForEntry = await getImportMapFromEntry(scopedEntry, bundleServerUrl, packageDefinitions);
|
|
16
18
|
for (const requiredById of Object.keys(scopedEntry.requiredBy)) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
...importMap.scopes[requiredByUrl],
|
|
20
|
-
...(await getImportMapFromEntry(scopedEntry, bundleServerUrl, packageDefinitions)),
|
|
21
|
-
};
|
|
19
|
+
const scopes = ((_a = importMap.scopes)[_b = `${bundleServerUrl}/${requiredById}/`] ?? (_a[_b] = {}));
|
|
20
|
+
merge(scopes, importMapForEntry);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
}
|
|
@@ -28,23 +27,21 @@ export async function createImportMap(resolveMap, bundleServerUrl, packageDefini
|
|
|
28
27
|
async function getImportMapFromEntry(entry, bundleServerUrl, packageDefinitions) {
|
|
29
28
|
const importMap = {};
|
|
30
29
|
const definition = packageDefinitions?.[entry.path] || (await getPackageDefinition(entry.path, true));
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const exportPath = getExportPathFromEntry(exportEntry);
|
|
39
|
-
if (exportPath) {
|
|
40
|
-
importMap[importAlias] = new URL(exportPath, baseUrl).href;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
30
|
+
// Only add packages wtih names that aren't typings packages.
|
|
31
|
+
if (definition?.name && !definition.name.startsWith('@types/')) {
|
|
32
|
+
const exportsMap = getExportsMap(definition);
|
|
33
|
+
if (Object.keys(exportsMap).length === 0) {
|
|
34
|
+
// Best effort exports map.
|
|
35
|
+
if (fs.existsSync(path.join(entry.path, 'index.js'))) {
|
|
36
|
+
exportsMap['.'] = './index.js';
|
|
43
37
|
}
|
|
44
38
|
}
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
const packagePrefix = `${definition.name}@${definition.version}/`;
|
|
40
|
+
const baseUrl = `${bundleServerUrl}/${packagePrefix}`;
|
|
41
|
+
for (const [exportName, exportPath] of Object.entries(exportsMap)) {
|
|
42
|
+
importMap[exportName.replace('.', definition.name)] = new URL(exportPath, baseUrl).href;
|
|
47
43
|
}
|
|
44
|
+
importMap[definition.name + '/'] = baseUrl;
|
|
48
45
|
}
|
|
49
46
|
return importMap;
|
|
50
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createImportMap.js","sourceRoot":"","sources":["../src/createImportMap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createImportMap.js","sourceRoot":"","sources":["../src/createImportMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAOxB,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,eAAuB,EACvB,kBAAgD;;IAEhD,MAAM,SAAS,GAAc;QAC3B,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACpD,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,qBAAqB,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAEzG,IAAI,YAAY,CAAC,cAAc,EAAE;YAC/B,oBAAoB;YACpB,SAAS,CAAC,MAAM,KAAhB,SAAS,CAAC,MAAM,GAAK,EAAE,EAAC;YAExB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;gBACpE,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;gBAExG,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;oBAC9D,MAAM,MAAM,GAAG,OAAC,SAAS,CAAC,MAAM,OAAC,GAAG,eAAe,IAAI,YAAY,GAAG,eAAM,EAAE,EAAC,CAAC;oBAChF,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;iBAClC;aACF;SACF;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,KAAsB,EACtB,eAAuB,EACvB,kBAAgD;IAEhD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtG,6DAA6D;IAC7D,IAAI,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,2BAA2B;YAE3B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE;gBACpD,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;aAChC;SACF;QACD,MAAM,aAAa,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC;QAClE,MAAM,OAAO,GAAG,GAAG,eAAe,IAAI,aAAa,EAAE,CAAC;QAEtD,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACjE,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;SACzF;QAED,SAAS,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;KAC5C;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { describe, it, expect } from '@jest/globals';
|
|
1
2
|
import { createImportMap } from './createImportMap.js';
|
|
2
3
|
const bundleServerUrl = 'http://localhost:12345';
|
|
3
4
|
const basicResolveMapEntry = { name: 'a', version: '1.0.0', path: 'path/a', requiredBy: {} };
|
|
@@ -13,9 +14,9 @@ describe('createImportMap', () => {
|
|
|
13
14
|
},
|
|
14
15
|
};
|
|
15
16
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
16
|
-
|
|
17
|
-
"imports":
|
|
18
|
-
"a": "http://localhost:12345/a@1.0.0/
|
|
17
|
+
{
|
|
18
|
+
"imports": {
|
|
19
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
19
20
|
},
|
|
20
21
|
}
|
|
21
22
|
`);
|
|
@@ -32,9 +33,10 @@ describe('createImportMap', () => {
|
|
|
32
33
|
},
|
|
33
34
|
};
|
|
34
35
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
35
|
-
|
|
36
|
-
"imports":
|
|
36
|
+
{
|
|
37
|
+
"imports": {
|
|
37
38
|
"a": "http://localhost:12345/a@1.0.0/foo/main.js",
|
|
39
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
38
40
|
},
|
|
39
41
|
}
|
|
40
42
|
`);
|
|
@@ -51,9 +53,10 @@ describe('createImportMap', () => {
|
|
|
51
53
|
},
|
|
52
54
|
};
|
|
53
55
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
54
|
-
|
|
55
|
-
"imports":
|
|
56
|
+
{
|
|
57
|
+
"imports": {
|
|
56
58
|
"a": "http://localhost:12345/a@1.0.0/foo/module.js",
|
|
59
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
57
60
|
},
|
|
58
61
|
}
|
|
59
62
|
`);
|
|
@@ -71,9 +74,10 @@ describe('createImportMap', () => {
|
|
|
71
74
|
},
|
|
72
75
|
};
|
|
73
76
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
74
|
-
|
|
75
|
-
"imports":
|
|
77
|
+
{
|
|
78
|
+
"imports": {
|
|
76
79
|
"a": "http://localhost:12345/a@1.0.0/foo/module.js",
|
|
80
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
77
81
|
},
|
|
78
82
|
}
|
|
79
83
|
`);
|
|
@@ -92,9 +96,10 @@ describe('createImportMap', () => {
|
|
|
92
96
|
},
|
|
93
97
|
};
|
|
94
98
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
95
|
-
|
|
96
|
-
"imports":
|
|
99
|
+
{
|
|
100
|
+
"imports": {
|
|
97
101
|
"a": "http://localhost:12345/a@1.0.0/foo/string.js",
|
|
102
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
98
103
|
},
|
|
99
104
|
}
|
|
100
105
|
`);
|
|
@@ -113,9 +118,10 @@ describe('createImportMap', () => {
|
|
|
113
118
|
},
|
|
114
119
|
};
|
|
115
120
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
116
|
-
|
|
117
|
-
"imports":
|
|
121
|
+
{
|
|
122
|
+
"imports": {
|
|
118
123
|
"a": "http://localhost:12345/a@1.0.0/foo/default.js",
|
|
124
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
119
125
|
},
|
|
120
126
|
}
|
|
121
127
|
`);
|
|
@@ -137,9 +143,10 @@ describe('createImportMap', () => {
|
|
|
137
143
|
},
|
|
138
144
|
};
|
|
139
145
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
140
|
-
|
|
141
|
-
"imports":
|
|
146
|
+
{
|
|
147
|
+
"imports": {
|
|
142
148
|
"a": "http://localhost:12345/a@1.0.0/foo/import.js",
|
|
149
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
143
150
|
},
|
|
144
151
|
}
|
|
145
152
|
`);
|
|
@@ -164,9 +171,10 @@ describe('createImportMap', () => {
|
|
|
164
171
|
},
|
|
165
172
|
};
|
|
166
173
|
expect(await createImportMap(resolveMap, bundleServerUrl, packages)).toMatchInlineSnapshot(`
|
|
167
|
-
|
|
168
|
-
"imports":
|
|
174
|
+
{
|
|
175
|
+
"imports": {
|
|
169
176
|
"a": "http://localhost:12345/a@1.0.0/foo/import.js",
|
|
177
|
+
"a/": "http://localhost:12345/a@1.0.0/",
|
|
170
178
|
"a/lib/Button": "http://localhost:12345/a@1.0.0/lib/Button.js",
|
|
171
179
|
},
|
|
172
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createImportMap.test.js","sourceRoot":"","sources":["../src/createImportMap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,MAAM,oBAAoB,GAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAE9G,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,UAAU,GAAe;YAC7B,CAAC,EAAE,oBAAoB;SACxB,CAAC;QACF,MAAM,QAAQ,GAAgC;YAC5C,QAAQ,EAAE;gBACR,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;QAEF,MAAM,CAAC,MAAM,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;KAM1F,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,UAAU,GAAe;YAC7B,CAAC,EAAE,oBAAoB;SACxB,CAAC;QACF,MAAM,QAAQ,GAAgC;YAC5C,QAAQ,EAAE;gBACR,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,eAAe;aACtB;SACF,CAAC;QAEF,MAAM,CAAC,MAAM,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"createImportMap.test.js","sourceRoot":"","sources":["../src/createImportMap.test.ts"],"names":[],"mappings":"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"}
|