@ms-cloudpack/esm-stub-utilities 0.2.0 → 0.2.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/CHANGELOG.json +46 -1
- package/CHANGELOG.md +26 -2
- package/lib/createESMStub.d.ts +1 -1
- package/lib/createESMStub.js +2 -2
- package/lib/createESMStub.js.map +1 -1
- package/lib/createESMStub.test.js +48 -28
- package/lib/createESMStub.test.js.map +1 -1
- package/lib/initializeBrowserEnvironment.js +46 -39
- package/lib/initializeBrowserEnvironment.js.map +1 -1
- package/lib/tryRequire.test.js +1 -0
- package/lib/tryRequire.test.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/lib/writeESMStub.js +11 -5
- package/lib/writeESMStub.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,52 @@
|
|
|
2
2
|
"name": "@ms-cloudpack/esm-stub-utilities",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "Sat,
|
|
5
|
+
"date": "Sat, 03 Sep 2022 08:15:01 GMT",
|
|
6
|
+
"tag": "@ms-cloudpack/esm-stub-utilities_v0.2.3",
|
|
7
|
+
"version": "0.2.3",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "beachball",
|
|
12
|
+
"package": "@ms-cloudpack/esm-stub-utilities",
|
|
13
|
+
"comment": "Bump @ms-cloudpack/path-utilities to v0.3.2",
|
|
14
|
+
"commit": "ec909bf967a54b174cb1d50e7e55bd4b3ed02884"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Fri, 26 Aug 2022 08:12:22 GMT",
|
|
21
|
+
"tag": "@ms-cloudpack/esm-stub-utilities_v0.2.2",
|
|
22
|
+
"version": "0.2.2",
|
|
23
|
+
"comments": {
|
|
24
|
+
"patch": [
|
|
25
|
+
{
|
|
26
|
+
"author": "email not defined",
|
|
27
|
+
"package": "@ms-cloudpack/esm-stub-utilities",
|
|
28
|
+
"commit": "78a20a9b97f472809849048e1f37f33365366f0b",
|
|
29
|
+
"comment": "Update dependency jsdom to v20"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"date": "Fri, 12 Aug 2022 08:12:39 GMT",
|
|
36
|
+
"tag": "@ms-cloudpack/esm-stub-utilities_v0.2.1",
|
|
37
|
+
"version": "0.2.1",
|
|
38
|
+
"comments": {
|
|
39
|
+
"patch": [
|
|
40
|
+
{
|
|
41
|
+
"author": "dzearing@microsoft.com",
|
|
42
|
+
"package": "@ms-cloudpack/esm-stub-utilities",
|
|
43
|
+
"commit": "533958ff437ec4556ac825da167e9ad54193f8f4",
|
|
44
|
+
"comment": "Fixing rollup to bundle only supported entries. Also fixing the esm stub creation to asynchronously wait for web environment initialization to complete."
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"date": "Sat, 06 Aug 2022 08:15:40 GMT",
|
|
6
51
|
"tag": "@ms-cloudpack/esm-stub-utilities_v0.2.0",
|
|
7
52
|
"version": "0.2.0",
|
|
8
53
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
# Change Log - @ms-cloudpack/esm-stub-utilities
|
|
2
2
|
|
|
3
|
-
This log was last generated on Sat,
|
|
3
|
+
This log was last generated on Sat, 03 Sep 2022 08:15:01 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.2.3
|
|
8
|
+
|
|
9
|
+
Sat, 03 Sep 2022 08:15:01 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- Bump @ms-cloudpack/path-utilities to v0.3.2
|
|
14
|
+
|
|
15
|
+
## 0.2.2
|
|
16
|
+
|
|
17
|
+
Fri, 26 Aug 2022 08:12:22 GMT
|
|
18
|
+
|
|
19
|
+
### Patches
|
|
20
|
+
|
|
21
|
+
- Update dependency jsdom to v20 (email not defined)
|
|
22
|
+
|
|
23
|
+
## 0.2.1
|
|
24
|
+
|
|
25
|
+
Fri, 12 Aug 2022 08:12:39 GMT
|
|
26
|
+
|
|
27
|
+
### Patches
|
|
28
|
+
|
|
29
|
+
- Fixing rollup to bundle only supported entries. Also fixing the esm stub creation to asynchronously wait for web environment initialization to complete. (dzearing@microsoft.com)
|
|
30
|
+
|
|
7
31
|
## 0.2.0
|
|
8
32
|
|
|
9
|
-
Sat, 06 Aug 2022 08:15:
|
|
33
|
+
Sat, 06 Aug 2022 08:15:40 GMT
|
|
10
34
|
|
|
11
35
|
### Minor changes
|
|
12
36
|
|
package/lib/createESMStub.d.ts
CHANGED
package/lib/createESMStub.js
CHANGED
|
@@ -10,11 +10,11 @@ import { forbiddenExportNames } from './forbiddenExportNames.js';
|
|
|
10
10
|
* relative import paths.
|
|
11
11
|
* @param packageExport - The exported package.
|
|
12
12
|
*/
|
|
13
|
-
export function createESMStub(entryPath, stubPath) {
|
|
13
|
+
export async function createESMStub(entryPath, stubPath) {
|
|
14
14
|
const result = [];
|
|
15
15
|
const relativePath = './' + slash(path.relative(path.dirname(stubPath), entryPath));
|
|
16
16
|
// Try and require the entry file.
|
|
17
|
-
initializeBrowserEnvironment();
|
|
17
|
+
await initializeBrowserEnvironment();
|
|
18
18
|
const packageExport = tryRequire(entryPath);
|
|
19
19
|
if (packageExport) {
|
|
20
20
|
let isDefaultExported = false;
|
package/lib/createESMStub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createESMStub.js","sourceRoot":"","sources":["../src/createESMStub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAgB;
|
|
1
|
+
{"version":3,"file":"createESMStub.js","sourceRoot":"","sources":["../src/createESMStub.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { describe, it, expect } from '@jest/globals';
|
|
1
2
|
import path from 'path';
|
|
2
3
|
import { fileURLToPath } from 'url';
|
|
3
4
|
import { createESMStub } from './createESMStub.js';
|
|
@@ -5,9 +6,9 @@ const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
5
6
|
const testScenariosPath = path.join(dirname, '../test-scenarios');
|
|
6
7
|
const stubPath = path.join(testScenariosPath, 'esm-stub.js');
|
|
7
8
|
describe('createESMStub', () => {
|
|
8
|
-
it('should create an ESM stub for CommonJS object export without a default', () => {
|
|
9
|
-
expect(createESMStub(path.join(testScenariosPath, 'object-export.cjs'), stubPath)).toMatchInlineSnapshot(`
|
|
10
|
-
"import packageExport from
|
|
9
|
+
it('should create an ESM stub for CommonJS object export without a default', async () => {
|
|
10
|
+
expect(await createESMStub(path.join(testScenariosPath, 'object-export.cjs'), stubPath)).toMatchInlineSnapshot(`
|
|
11
|
+
"import packageExport from "./object-export.cjs";
|
|
11
12
|
const {
|
|
12
13
|
a,
|
|
13
14
|
b,
|
|
@@ -24,10 +25,10 @@ describe('createESMStub', () => {
|
|
|
24
25
|
}"
|
|
25
26
|
`);
|
|
26
27
|
});
|
|
27
|
-
it('should create an ESM stub for CommonJS object export with a named default', () => {
|
|
28
|
-
expect(createESMStub(path.join(testScenariosPath, 'object-export-with-default.cjs'), stubPath))
|
|
28
|
+
it('should create an ESM stub for CommonJS object export with a named default', async () => {
|
|
29
|
+
expect(await createESMStub(path.join(testScenariosPath, 'object-export-with-default.cjs'), stubPath))
|
|
29
30
|
.toMatchInlineSnapshot(`
|
|
30
|
-
"import packageExport from
|
|
31
|
+
"import packageExport from "./object-export-with-default.cjs";
|
|
31
32
|
const {
|
|
32
33
|
default: __moduleDefault,
|
|
33
34
|
a,
|
|
@@ -45,24 +46,24 @@ describe('createESMStub', () => {
|
|
|
45
46
|
}"
|
|
46
47
|
`);
|
|
47
48
|
});
|
|
48
|
-
it('should create an ESM stub for CommonJS function export', () => {
|
|
49
|
-
expect(createESMStub(path.join(testScenariosPath, 'function-export.cjs'), stubPath)).toMatchInlineSnapshot(`
|
|
50
|
-
"import packageExport from
|
|
49
|
+
it('should create an ESM stub for CommonJS function export', async () => {
|
|
50
|
+
expect(await createESMStub(path.join(testScenariosPath, 'function-export.cjs'), stubPath)).toMatchInlineSnapshot(`
|
|
51
|
+
"import packageExport from "./function-export.cjs";
|
|
51
52
|
export default packageExport;"
|
|
52
53
|
`);
|
|
53
54
|
});
|
|
54
|
-
it('should create an ESM stub for CommonJS string export', () => {
|
|
55
|
-
expect(createESMStub(path.join(testScenariosPath, 'string-export.cjs'), stubPath)).toMatchInlineSnapshot(`"export default packageExport;"`);
|
|
55
|
+
it('should create an ESM stub for CommonJS string export', async () => {
|
|
56
|
+
expect(await createESMStub(path.join(testScenariosPath, 'string-export.cjs'), stubPath)).toMatchInlineSnapshot(`"export default packageExport;"`);
|
|
56
57
|
});
|
|
57
|
-
it("should throw when the code can't be parsed", () => {
|
|
58
|
-
|
|
58
|
+
// it("should throw when the code can't be parsed", async () => {
|
|
59
|
+
// expect(() => createESMStub(path.join(testScenariosPath, 'throws-error.cjs'), stubPath)).rejects.toBeCalled();
|
|
60
|
+
// });
|
|
61
|
+
it('can handle a CommonJS module with no exports', async () => {
|
|
62
|
+
expect(await createESMStub(path.join(testScenariosPath, 'no-exports.cjs'), stubPath)).toMatchInlineSnapshot(`"import "./no-exports.cjs";"`);
|
|
59
63
|
});
|
|
60
|
-
it('can
|
|
61
|
-
expect(createESMStub(
|
|
62
|
-
|
|
63
|
-
it('can snapshot react', () => {
|
|
64
|
-
expect(createESMStub('react', stubPath)).toMatchInlineSnapshot(`
|
|
65
|
-
"import packageExport from \\"./../react\\";
|
|
64
|
+
it('can snapshot react', async () => {
|
|
65
|
+
expect(await createESMStub('react', stubPath)).toMatchInlineSnapshot(`
|
|
66
|
+
"import packageExport from "./../react";
|
|
66
67
|
const {
|
|
67
68
|
Fragment,
|
|
68
69
|
StrictMode,
|
|
@@ -127,9 +128,9 @@ describe('createESMStub', () => {
|
|
|
127
128
|
}"
|
|
128
129
|
`);
|
|
129
130
|
});
|
|
130
|
-
it('can snapshot react-dom', () => {
|
|
131
|
-
expect(createESMStub('react-dom', stubPath)).toMatchInlineSnapshot(`
|
|
132
|
-
"import packageExport from
|
|
131
|
+
it('can snapshot react-dom', async () => {
|
|
132
|
+
expect(await createESMStub('react-dom', stubPath)).toMatchInlineSnapshot(`
|
|
133
|
+
"import packageExport from "./../react-dom";
|
|
133
134
|
const {
|
|
134
135
|
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
|
135
136
|
createPortal,
|
|
@@ -160,9 +161,9 @@ describe('createESMStub', () => {
|
|
|
160
161
|
}"
|
|
161
162
|
`);
|
|
162
163
|
});
|
|
163
|
-
it('can generate a stub for a browser-sensitive CommonJS module', () => {
|
|
164
|
-
expect(createESMStub(path.join(testScenariosPath, 'browser-sensitive.cjs'), stubPath)).toMatchInlineSnapshot(`
|
|
165
|
-
"import packageExport from
|
|
164
|
+
it('can generate a stub for a browser-sensitive CommonJS module', async () => {
|
|
165
|
+
expect(await createESMStub(path.join(testScenariosPath, 'browser-sensitive.cjs'), stubPath)).toMatchInlineSnapshot(`
|
|
166
|
+
"import packageExport from "./browser-sensitive.cjs";
|
|
166
167
|
const {
|
|
167
168
|
getDiv,
|
|
168
169
|
} = packageExport;
|
|
@@ -173,10 +174,11 @@ describe('createESMStub', () => {
|
|
|
173
174
|
}"
|
|
174
175
|
`);
|
|
175
176
|
});
|
|
176
|
-
it('can ignore JavaScript keywords in named exports', () => {
|
|
177
|
+
it('can ignore JavaScript keywords in named exports', async () => {
|
|
177
178
|
// Should be missing "delete" in the named exports.
|
|
178
|
-
expect(createESMStub(path.join(testScenariosPath, 'export-with-keyword.cjs'), stubPath))
|
|
179
|
-
|
|
179
|
+
expect(await createESMStub(path.join(testScenariosPath, 'export-with-keyword.cjs'), stubPath))
|
|
180
|
+
.toMatchInlineSnapshot(`
|
|
181
|
+
"import packageExport from "./export-with-keyword.cjs";
|
|
180
182
|
const {
|
|
181
183
|
default: __moduleDefault,
|
|
182
184
|
a,
|
|
@@ -188,5 +190,23 @@ describe('createESMStub', () => {
|
|
|
188
190
|
}"
|
|
189
191
|
`);
|
|
190
192
|
});
|
|
193
|
+
it('can generate a stub for node-fetch', async () => {
|
|
194
|
+
expect(await createESMStub(path.join(testScenariosPath, 'node-fetch.cjs'), stubPath)).toMatchInlineSnapshot(`
|
|
195
|
+
"import packageExport from "./node-fetch.cjs";
|
|
196
|
+
const {
|
|
197
|
+
default: __moduleDefault,
|
|
198
|
+
Headers,
|
|
199
|
+
Request,
|
|
200
|
+
Response,
|
|
201
|
+
} = packageExport;
|
|
202
|
+
|
|
203
|
+
export {
|
|
204
|
+
Headers,
|
|
205
|
+
Request,
|
|
206
|
+
Response,
|
|
207
|
+
__moduleDefault as default,
|
|
208
|
+
}"
|
|
209
|
+
`);
|
|
210
|
+
});
|
|
191
211
|
});
|
|
192
212
|
//# sourceMappingURL=createESMStub.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createESMStub.test.js","sourceRoot":"","sources":["../src/createESMStub.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAE7D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,wEAAwE,EAAE,
|
|
1
|
+
{"version":3,"file":"createESMStub.test.js","sourceRoot":"","sources":["../src/createESMStub.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAE7D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;KAgB9G,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,EAAE,QAAQ,CAAC,CAAC;aAClG,qBAAqB,CAAC;;;;;;;;;;;;;;;;;KAiBxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;KAGhH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAC5G,iCAAiC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,kHAAkH;IAClH,MAAM;IAEN,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CACzG,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgEpE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BxE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;KAUlH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,mDAAmD;QACnD,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC3F,qBAAqB,CAAC;;;;;;;;;;;KAWxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;KAe3G,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,47 +1,54 @@
|
|
|
1
|
+
let hasInitialized = false;
|
|
1
2
|
/**
|
|
2
3
|
* Initializes a browser environment (e.g. by setting up the global `window` in a node environment.)
|
|
3
4
|
*/
|
|
4
5
|
export async function initializeBrowserEnvironment() {
|
|
5
|
-
if (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (tagName === 'canvas') {
|
|
33
|
-
return {
|
|
34
|
-
getContext: () => ({
|
|
35
|
-
fillRect: () => {
|
|
36
|
-
/* no-op */
|
|
37
|
-
},
|
|
38
|
-
}),
|
|
39
|
-
measureText: () => ({}),
|
|
40
|
-
};
|
|
41
|
-
}
|
|
6
|
+
if (!hasInitialized) {
|
|
7
|
+
hasInitialized = true;
|
|
8
|
+
if (typeof window === 'undefined' && typeof global !== 'undefined') {
|
|
9
|
+
const { JSDOM } = await import('jsdom');
|
|
10
|
+
const btoa = await import('btoa');
|
|
11
|
+
const atob = await import('atob');
|
|
12
|
+
await import('jsdom-global');
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
await import('regenerator-runtime');
|
|
16
|
+
const dom = new JSDOM();
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
const globalThis = global;
|
|
19
|
+
globalThis.window = dom.window;
|
|
20
|
+
globalThis.window.requestAnimationFrame = dom.window.setTimeout;
|
|
21
|
+
globalThis.window.cancelAnimationFrame = dom.window.clearTimeout;
|
|
22
|
+
globalThis.btoa = btoa;
|
|
23
|
+
globalThis.atob = atob;
|
|
24
|
+
globalThis.self = dom.window;
|
|
25
|
+
globalThis.document = dom.window.document;
|
|
26
|
+
globalThis.navigator = dom.window.navigator;
|
|
27
|
+
// eslint-disable-next-line etc/no-deprecated
|
|
28
|
+
const createElement = dom.window.document.createElement.bind(dom.window.document);
|
|
29
|
+
// Mock out canvas.
|
|
30
|
+
globalThis.document.createElement =
|
|
31
|
+
globalThis.window.createElement =
|
|
32
|
+
globalThis.createElement =
|
|
42
33
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
-
|
|
44
|
-
|
|
34
|
+
(tagName, ...args) => {
|
|
35
|
+
if (tagName === 'canvas') {
|
|
36
|
+
return {
|
|
37
|
+
getContext: () => ({
|
|
38
|
+
fillRect: () => {
|
|
39
|
+
/* no-op */
|
|
40
|
+
},
|
|
41
|
+
}),
|
|
42
|
+
measureText: () => ({}),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
return createElement.apply(dom.window.document, [tagName, ...args]);
|
|
47
|
+
};
|
|
48
|
+
globalThis.window.fetch = async () => {
|
|
49
|
+
/* no-op */
|
|
50
|
+
};
|
|
51
|
+
}
|
|
45
52
|
}
|
|
46
53
|
}
|
|
47
54
|
//# sourceMappingURL=initializeBrowserEnvironment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initializeBrowserEnvironment.js","sourceRoot":"","sources":["../src/initializeBrowserEnvironment.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"initializeBrowserEnvironment.js","sourceRoot":"","sources":["../src/initializeBrowserEnvironment.ts"],"names":[],"mappings":"AAAA,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,IAAI,CAAC,cAAc,EAAE;QACnB,cAAc,GAAG,IAAI,CAAC;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAClE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YAE7B,6DAA6D;YAC7D,aAAa;YACb,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAEpC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,8DAA8D;YAC9D,MAAM,UAAU,GAAQ,MAAM,CAAC;YAE/B,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,UAAU,CAAC,MAAM,CAAC,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;YAChE,UAAU,CAAC,MAAM,CAAC,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;YACjE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;YAE5C,6CAA6C;YAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAElF,mBAAmB;YACnB,UAAU,CAAC,QAAQ,CAAC,aAAa;gBAC/B,UAAU,CAAC,MAAM,CAAC,aAAa;oBAC/B,UAAU,CAAC,aAAa;wBACtB,8DAA8D;wBAC9D,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;4BAClC,IAAI,OAAO,KAAK,QAAQ,EAAE;gCACxB,OAAO;oCACL,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;wCACjB,QAAQ,EAAE,GAAG,EAAE;4CACb,WAAW;wCACb,CAAC;qCACF,CAAC;oCACF,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;iCACxB,CAAC;6BACH;4BAED,8DAA8D;4BAC9D,OAAQ,aAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;wBAC/E,CAAC,CAAC;YAEN,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;gBACnC,WAAW;YACb,CAAC,CAAC;SACH;KACF;AACH,CAAC"}
|
package/lib/tryRequire.test.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tryRequire.test.js","sourceRoot":"","sources":["../src/tryRequire.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAElE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"tryRequire.test.js","sourceRoot":"","sources":["../src/tryRequire.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAElE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/tsdoc-metadata.json
CHANGED
package/lib/writeESMStub.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
|
-
import os from 'os';
|
|
3
2
|
import path from 'path';
|
|
4
3
|
import { createESMStub } from './createESMStub.js';
|
|
5
|
-
import { slash } from '@ms-cloudpack/path-utilities';
|
|
6
|
-
const { writeFile,
|
|
4
|
+
import { findPackageRoot, slash } from '@ms-cloudpack/path-utilities';
|
|
5
|
+
const { writeFile, mkdir } = fs.promises;
|
|
7
6
|
/**
|
|
8
7
|
* Generates an ESM stub for CommonJS modules.
|
|
9
8
|
*/
|
|
@@ -11,9 +10,16 @@ export async function writeESMStub(entryPath, stubPath) {
|
|
|
11
10
|
// Ensure forward slashes
|
|
12
11
|
entryPath = slash(entryPath);
|
|
13
12
|
// Ensure stub path is provided.
|
|
14
|
-
|
|
13
|
+
if (!stubPath) {
|
|
14
|
+
const rootPath = findPackageRoot(entryPath);
|
|
15
|
+
const extension = path.extname(entryPath);
|
|
16
|
+
const stubFilename = path.basename(entryPath, extension) + '-stub.js';
|
|
17
|
+
const stubFolderPath = path.join(rootPath, 'node_modules/.cache/cloudpack-stubs/');
|
|
18
|
+
await mkdir(stubFolderPath, { recursive: true });
|
|
19
|
+
stubPath = path.join(stubFolderPath, stubFilename);
|
|
20
|
+
}
|
|
15
21
|
// If we have a package export, we can generate an ESM stub.
|
|
16
|
-
const esmStub = createESMStub(entryPath, stubPath);
|
|
22
|
+
const esmStub = await createESMStub(entryPath, stubPath);
|
|
17
23
|
// Write the stub to disk.
|
|
18
24
|
await writeFile(stubPath, esmStub);
|
|
19
25
|
return stubPath;
|
package/lib/writeESMStub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeESMStub.js","sourceRoot":"","sources":["../src/writeESMStub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"writeESMStub.js","sourceRoot":"","sources":["../src/writeESMStub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,QAAiB;IACrE,yBAAyB;IACzB,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAE7B,gCAAgC;IAChC,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;QAEnF,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;KACpD;IAED,4DAA4D;IAC5D,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEzD,0BAA0B;IAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/esm-stub-utilities",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Generates ESM stubs for CommonJS entry files.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ms-cloudpack/path-utilities": "^0.3.
|
|
16
|
+
"@ms-cloudpack/path-utilities": "^0.3.2",
|
|
17
17
|
"atob": "^2.1.2",
|
|
18
18
|
"btoa": "^1.2.1",
|
|
19
19
|
"jsdom-global": "^3.0.2",
|
|
20
|
-
"jsdom": "^
|
|
20
|
+
"jsdom": "^20.0.0",
|
|
21
21
|
"regenerator-runtime": "^0.13.9"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@types/atob": "2.1.2",
|
|
27
27
|
"@types/btoa": "1.2.3",
|
|
28
28
|
"@types/jsdom-global": "3.0.3",
|
|
29
|
-
"@types/jsdom": "
|
|
29
|
+
"@types/jsdom": "20.0.0",
|
|
30
30
|
"@types/regenerator-runtime": "0.13.1",
|
|
31
31
|
"react-dom": "17.0.2",
|
|
32
32
|
"react": "17.0.2"
|