@ms-cloudpack/esm-stub-utilities 0.3.3 → 0.4.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 CHANGED
@@ -2,7 +2,58 @@
2
2
  "name": "@ms-cloudpack/esm-stub-utilities",
3
3
  "entries": [
4
4
  {
5
- "date": "Tue, 18 Oct 2022 08:15:52 GMT",
5
+ "date": "Tue, 15 Nov 2022 08:12:36 GMT",
6
+ "tag": "@ms-cloudpack/esm-stub-utilities_v0.4.0",
7
+ "version": "0.4.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "dzearing@microsoft.com",
12
+ "package": "@ms-cloudpack/esm-stub-utilities",
13
+ "commit": "a71972309b615d683a5a3bac7a85c981fb6e89af",
14
+ "comment": "When we emit esm stubs, we now try to use import * for object exports, and import for function exports."
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@ms-cloudpack/esm-stub-utilities",
19
+ "comment": "Bump @ms-cloudpack/path-utilities to v1.1.1",
20
+ "commit": "a71972309b615d683a5a3bac7a85c981fb6e89af"
21
+ }
22
+ ]
23
+ }
24
+ },
25
+ {
26
+ "date": "Wed, 02 Nov 2022 08:11:20 GMT",
27
+ "tag": "@ms-cloudpack/esm-stub-utilities_v0.3.4",
28
+ "version": "0.3.4",
29
+ "comments": {
30
+ "patch": [
31
+ {
32
+ "author": "dzearing@microsoft.com",
33
+ "package": "@ms-cloudpack/esm-stub-utilities",
34
+ "commit": "3439c51ff4eb7cb624cf84fb2881a781eabca83f",
35
+ "comment": "README updates."
36
+ }
37
+ ]
38
+ }
39
+ },
40
+ {
41
+ "date": "Tue, 01 Nov 2022 08:11:03 GMT",
42
+ "tag": "@ms-cloudpack/esm-stub-utilities_v0.3.3",
43
+ "version": "0.3.3",
44
+ "comments": {
45
+ "none": [
46
+ {
47
+ "author": "dzearing@microsoft.com",
48
+ "package": "@ms-cloudpack/esm-stub-utilities",
49
+ "commit": "264fdebf12d3c964f2520feef232af76425cdc4c",
50
+ "comment": "Updating readme notes."
51
+ }
52
+ ]
53
+ }
54
+ },
55
+ {
56
+ "date": "Tue, 18 Oct 2022 08:16:24 GMT",
6
57
  "tag": "@ms-cloudpack/esm-stub-utilities_v0.3.3",
7
58
  "version": "0.3.3",
8
59
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,29 @@
1
1
  # Change Log - @ms-cloudpack/esm-stub-utilities
2
2
 
3
- This log was last generated on Tue, 18 Oct 2022 08:15:52 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 15 Nov 2022 08:12:36 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.4.0
8
+
9
+ Tue, 15 Nov 2022 08:12:36 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - When we emit esm stubs, we now try to use import * for object exports, and import for function exports. (dzearing@microsoft.com)
14
+ - Bump @ms-cloudpack/path-utilities to v1.1.1
15
+
16
+ ## 0.3.4
17
+
18
+ Wed, 02 Nov 2022 08:11:20 GMT
19
+
20
+ ### Patches
21
+
22
+ - README updates. (dzearing@microsoft.com)
23
+
7
24
  ## 0.3.3
8
25
 
9
- Tue, 18 Oct 2022 08:15:52 GMT
26
+ Tue, 18 Oct 2022 08:16:24 GMT
10
27
 
11
28
  ### Patches
12
29
 
package/README.md CHANGED
@@ -4,18 +4,29 @@ This library contains utilities for generating ESM stubs for CommonJS modules. S
4
4
 
5
5
  ## Usage
6
6
 
7
- Generate a stub given a JavaScript entry path:
7
+ Call `createESMStub` to generate a stub for the cjs entry:
8
8
 
9
9
  ```js
10
10
  import { createESMStub } from '@ms-cloudpack/esm-stub-utilities';
11
11
 
12
- const esmStub = await createESMStub('/path/to/entry.js', '/path/to/stub.js');
12
+ const esmStub = await createESMStub('/path/to/cjs/entry.js', '/path/to/esm/stub.js');
13
13
  ```
14
14
 
15
- This return an esm stub string, based on loading the package in node and parsing exported keys. Example output:
15
+ This call returns an esm stub string, but does not write the file. The path in the second argument is needed to derive import paths.
16
+
17
+ Example cjs file `entry.js`:
18
+
19
+ ```js
20
+ module.exports = {
21
+ named1: 'named1',
22
+ named2: 'named2',
23
+ };
24
+ ```
25
+
26
+ Example output (`stub.js`):
16
27
 
17
28
  ```js
18
- import content from '/path/to/entry.js';
29
+ import content from '../cjs/entry.js';
19
30
 
20
31
  export {
21
32
  default: content,
@@ -24,12 +35,13 @@ export {
24
35
  };
25
36
  ```
26
37
 
27
- Writes the path to the stub to a file:
38
+ To write the file in the same call, the `writeESMStub` helper does this (which writes the stub to the node_modules/.cache folder in
39
+ the package):
28
40
 
29
41
  ```js
30
42
  import { writeESMStub } from '@ms-cloudpack/esm-stub-utilities';
31
43
 
32
- await writeESMStub('./path/to/entry.js', './path/to/stub.js');
44
+ const stubPath = await writeESMStub('./path/to/entry.js');
33
45
  ```
34
46
 
35
47
  ## Special considerations
@@ -1,8 +1,8 @@
1
1
  import { slash } from '@ms-cloudpack/path-string-parsing';
2
2
  import path from 'path';
3
3
  import { initializeBrowserEnvironment } from './initializeBrowserEnvironment.js';
4
- import { tryRequire } from './tryRequire.cjs';
5
4
  import { forbiddenExportNames } from './forbiddenExportNames.js';
5
+ import { tryRequire } from './tryRequire.cjs';
6
6
  /**
7
7
  * Generates an ESM stub for CommonJS modules.
8
8
  * @param entryPath - The full path to the CommonJS entry file.
@@ -17,42 +17,37 @@ export async function createESMStub(entryPath, stubPath) {
17
17
  await initializeBrowserEnvironment();
18
18
  const packageExport = tryRequire(entryPath);
19
19
  if (packageExport !== undefined) {
20
- let isDefaultExported = false;
21
20
  const isExportObject = typeof packageExport === 'object';
22
21
  const isExportFunction = typeof packageExport === 'function';
23
- if (isExportObject || isExportFunction) {
22
+ if (isExportFunction || (isExportObject && !Array.isArray(packageExport))) {
24
23
  // Make sure to filter keywords.
25
24
  const namedExports = Object.keys(packageExport).filter((name) => forbiddenExportNames.indexOf(name) < 0);
26
- if (namedExports.length || isExportFunction) {
27
- result.push(`import packageExport from "${relativePath}";`);
28
- }
29
- if (namedExports.length) {
30
- result.push(`const {`);
31
- for (const namedExport of namedExports) {
32
- if (namedExport === 'default') {
33
- isDefaultExported = true;
34
- result.push(` default: __moduleDefault,`);
35
- }
36
- else {
37
- result.push(` ${namedExport},`);
38
- }
25
+ const hasDefaultExport = 'default' in packageExport;
26
+ if (namedExports.length || hasDefaultExport) {
27
+ result.push(`import ${isExportFunction ? '' : '* as '}packageExport from "${relativePath}";`);
28
+ if (namedExports.length) {
29
+ result.push(`const { ${namedExports.join(', ')} } = packageExport;`);
39
30
  }
40
- result.push(`} = packageExport;`, ``);
41
- if (isDefaultExported) {
42
- result.push(`export {`, ...namedExports.filter((n) => n !== 'default').map((n) => `${n},`), `__moduleDefault as default,`, `}`);
31
+ if (hasDefaultExport) {
32
+ result.push(`const defaultExport = (packageExport && packageExport.default?.default) ? packageExport?.default.default : packageExport?.default;`);
33
+ result.push(`export default defaultExport;`);
43
34
  }
44
35
  else {
45
- result.push(`export {`, ...namedExports.map((n) => ` ${n},`), ` packageExport as default,`, `}`);
36
+ result.push(`export default packageExport;`);
37
+ }
38
+ if (namedExports.length) {
39
+ result.push(`export { ${namedExports.join(', ')} }`);
46
40
  }
47
41
  }
48
- else if (isExportObject) {
42
+ else {
49
43
  // No named exports...
50
44
  // Object with no members? Must be a polyfill. Just import it and don't export anything.
51
- result.push(`import "${relativePath}";`);
52
- }
53
- else {
54
- // Must be a function. Export it as default.
55
- result.push(`export default packageExport;`);
45
+ if (isExportFunction) {
46
+ result.push(`export { default } from "${relativePath}";`);
47
+ }
48
+ else {
49
+ result.push(`import "${relativePath}";`);
50
+ }
56
51
  }
57
52
  }
58
53
  else if (typeof packageExport === 'boolean' || typeof packageExport === 'number') {
@@ -64,7 +59,7 @@ export async function createESMStub(entryPath, stubPath) {
64
59
  result.push(`export default ${JSON.stringify(packageExport)};`);
65
60
  }
66
61
  else {
67
- // not an object or function
62
+ // not an object or function (array or undefined)
68
63
  result.push(`export default packageExport;`);
69
64
  }
70
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createESMStub.js","sourceRoot":"","sources":["../src/createESMStub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,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,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAgB;IACrE,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpF,kCAAkC;IAClC,MAAM,4BAA4B,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAA4B,CAAC;IAEvE,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,MAAM,cAAc,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC;QACzD,MAAM,gBAAgB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;QAE7D,IAAI,cAAc,IAAI,gBAAgB,EAAE;YACtC,gCAAgC;YAChC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzG,IAAI,YAAY,CAAC,MAAM,IAAI,gBAAgB,EAAE;gBAC3C,MAAM,CAAC,IAAI,CAAC,8BAA8B,YAAY,IAAI,CAAC,CAAC;aAC7D;YAED,IAAI,YAAY,CAAC,MAAM,EAAE;gBACvB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEvB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;oBACtC,IAAI,WAAW,KAAK,SAAS,EAAE;wBAC7B,iBAAiB,GAAG,IAAI,CAAC;wBACzB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;qBAC5C;yBAAM;wBACL,MAAM,CAAC,IAAI,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;qBAClC;iBACF;gBAED,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBAEtC,IAAI,iBAAiB,EAAE;oBACrB,MAAM,CAAC,IAAI,CACT,UAAU,EACV,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAClE,6BAA6B,EAC7B,GAAG,CACJ,CAAC;iBACH;qBAAM;oBACL,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;iBACpG;aACF;iBAAM,IAAI,cAAc,EAAE;gBACzB,sBAAsB;gBACtB,wFAAwF;gBACxF,MAAM,CAAC,IAAI,CAAC,WAAW,YAAY,IAAI,CAAC,CAAC;aAC1C;iBAAM;gBACL,4CAA4C;gBAC5C,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;aAC9C;SACF;aAAM,IAAI,OAAO,aAAa,KAAK,SAAS,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YAClF,qBAAqB;YACrB,MAAM,CAAC,IAAI,CAAC,kBAAkB,aAAa,GAAG,CAAC,CAAC;SACjD;aAAM,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YAC5C,qBAAqB;YACrB,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SACjE;aAAM;YACL,4BAA4B;YAC5B,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;SAC9C;KACF;SAAM;QACL,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAAC,WAAW,YAAY,IAAI,CAAC,CAAC;KAC1C;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"createESMStub.js","sourceRoot":"","sources":["../src/createESMStub.ts"],"names":[],"mappings":"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"}
@@ -5,52 +5,74 @@ import { createESMStub } from './createESMStub.js';
5
5
  const dirname = path.dirname(fileURLToPath(import.meta.url));
6
6
  const testScenariosPath = path.join(dirname, '../test-scenarios');
7
7
  const stubPath = path.join(testScenariosPath, 'esm-stub.js');
8
+ // Remove absolute import paths from the generated stub.
9
+ const makeStubSafe = (stub) => {
10
+ return stub.replace(/from "[a-zA-Z0-9./:-]+";/g, 'from "---omitted for safety---"');
11
+ };
8
12
  describe('createESMStub', () => {
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";
12
- const {
13
- a,
14
- b,
15
- c,
16
- d,
17
- } = packageExport;
18
-
19
- export {
20
- a,
21
- b,
22
- c,
23
- d,
24
- packageExport as default,
25
- }"
13
+ it('should handle sorted-btree', async () => {
14
+ const testScenarioPath = path.join(testScenariosPath, 'b-tree.cjs');
15
+ const testScenarioStubPath = path.join(testScenariosPath, 'b-tree.stub.mjs');
16
+ const stub = await createESMStub(testScenarioPath, testScenarioStubPath);
17
+ expect(makeStubSafe(stub)).toMatchInlineSnapshot(`
18
+ "import * as packageExport from "---omitted for safety---"
19
+ const { defaultComparator, simpleComparator, asSet, EmptyBTree } = packageExport;
20
+ const defaultExport = (packageExport && packageExport.default?.default) ? packageExport?.default.default : packageExport?.default;
21
+ export default defaultExport;
22
+ export { defaultComparator, simpleComparator, asSet, EmptyBTree }"
23
+ `);
24
+ });
25
+ it('should handle yallist', async () => {
26
+ const testScenarioPath = path.join(testScenariosPath, 'yallist.cjs');
27
+ const testScenarioStubPath = path.join(testScenariosPath, 'yallist.stub.mjs');
28
+ const stub = await createESMStub(testScenarioPath, testScenarioStubPath);
29
+ expect(makeStubSafe(stub)).toMatchInlineSnapshot(`
30
+ "import packageExport from "---omitted for safety---"
31
+ const { Node, create } = packageExport;
32
+ export default packageExport;
33
+ export { Node, create }"
34
+ `);
35
+ });
36
+ it('should handle events', async () => {
37
+ const testScenarioPath = path.join(testScenariosPath, 'events.cjs');
38
+ const testScenarioStubPath = path.join(testScenariosPath, 'events.stub.mjs');
39
+ const stub = await createESMStub(testScenarioPath, testScenarioStubPath);
40
+ expect(makeStubSafe(stub)).toMatchInlineSnapshot(`
41
+ "import packageExport from "---omitted for safety---"
42
+ const { once, EventEmitter, defaultMaxListeners, init, listenerCount } = packageExport;
43
+ export default packageExport;
44
+ export { once, EventEmitter, defaultMaxListeners, init, listenerCount }"
45
+ `);
46
+ });
47
+ it('should handle object-assign', async () => {
48
+ const testScenarioPath = path.join(testScenariosPath, 'object-assign.cjs');
49
+ const testScenarioStubPath = path.join(testScenariosPath, 'object-assign.stub.mjs');
50
+ const stub = await createESMStub(testScenarioPath, testScenarioStubPath);
51
+ expect(makeStubSafe(stub)).toMatchInlineSnapshot(`"export { default } from "---omitted for safety---""`);
52
+ });
53
+ it(`should handle react-lifecycles-compat`, async () => {
54
+ const testScenarioPath = path.join(testScenariosPath, 'react-lifecycles-compat.cjs');
55
+ const testScenarioStubPath = path.join(testScenariosPath, 'react-lifecycles-compat.stub.mjs');
56
+ const stub = await createESMStub(testScenarioPath, testScenarioStubPath);
57
+ expect(makeStubSafe(stub)).toMatchInlineSnapshot(`
58
+ "import * as packageExport from "---omitted for safety---"
59
+ const { polyfill } = packageExport;
60
+ export default packageExport;
61
+ export { polyfill }"
26
62
  `);
27
63
  });
28
64
  it('should create an ESM stub for CommonJS object export with a named default', async () => {
29
65
  expect(await createESMStub(path.join(testScenariosPath, 'object-export-with-default.cjs'), stubPath))
30
66
  .toMatchInlineSnapshot(`
31
- "import packageExport from "./object-export-with-default.cjs";
32
- const {
33
- default: __moduleDefault,
34
- a,
35
- b,
36
- c,
37
- d,
38
- } = packageExport;
39
-
40
- export {
41
- a,
42
- b,
43
- c,
44
- d,
45
- __moduleDefault as default,
46
- }"
67
+ "import * as packageExport from "./object-export-with-default.cjs";
68
+ const { a, b, c, d } = packageExport;
69
+ const defaultExport = (packageExport && packageExport.default?.default) ? packageExport?.default.default : packageExport?.default;
70
+ export default defaultExport;
71
+ export { a, b, c, d }"
47
72
  `);
48
73
  });
49
74
  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";
52
- export default packageExport;"
53
- `);
75
+ expect(await createESMStub(path.join(testScenariosPath, 'function-export.cjs'), stubPath)).toMatchInlineSnapshot(`"export { default } from "./function-export.cjs";"`);
54
76
  });
55
77
  it('should create an ESM stub for CommonJS string export', async () => {
56
78
  expect(await createESMStub(path.join(testScenariosPath, 'string-export.cjs'), stubPath)).toMatchInlineSnapshot(`"export default "I am a string with \\"double quotes\\" and 'single quotes'";"`);
@@ -62,152 +84,60 @@ describe('createESMStub', () => {
62
84
  expect(await createESMStub(path.join(testScenariosPath, 'no-exports.cjs'), stubPath)).toMatchInlineSnapshot(`"import "./no-exports.cjs";"`);
63
85
  });
64
86
  it('can snapshot react', async () => {
65
- expect(await createESMStub('react', stubPath)).toMatchInlineSnapshot(`
66
- "import packageExport from "./../react";
67
- const {
68
- Fragment,
69
- StrictMode,
70
- Profiler,
71
- Suspense,
72
- Children,
73
- Component,
74
- PureComponent,
75
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
76
- cloneElement,
77
- createContext,
78
- createElement,
79
- createFactory,
80
- createRef,
81
- forwardRef,
82
- isValidElement,
83
- lazy,
84
- memo,
85
- useCallback,
86
- useContext,
87
- useDebugValue,
88
- useEffect,
89
- useImperativeHandle,
90
- useLayoutEffect,
91
- useMemo,
92
- useReducer,
93
- useRef,
94
- useState,
95
- version,
96
- } = packageExport;
97
-
98
- export {
99
- Fragment,
100
- StrictMode,
101
- Profiler,
102
- Suspense,
103
- Children,
104
- Component,
105
- PureComponent,
106
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
107
- cloneElement,
108
- createContext,
109
- createElement,
110
- createFactory,
111
- createRef,
112
- forwardRef,
113
- isValidElement,
114
- lazy,
115
- memo,
116
- useCallback,
117
- useContext,
118
- useDebugValue,
119
- useEffect,
120
- useImperativeHandle,
121
- useLayoutEffect,
122
- useMemo,
123
- useReducer,
124
- useRef,
125
- useState,
126
- version,
127
- packageExport as default,
128
- }"
87
+ expect(await createESMStub(path.join(testScenariosPath, 'react.development.cjs'), stubPath)).toMatchInlineSnapshot(`
88
+ "import * as packageExport from "./react.development.cjs";
89
+ const { Fragment, StrictMode, Profiler, Suspense, Children, Component, PureComponent, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version } = packageExport;
90
+ export default packageExport;
91
+ export { Fragment, StrictMode, Profiler, Suspense, Children, Component, PureComponent, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, cloneElement, createContext, createElement, createFactory, createRef, forwardRef, isValidElement, lazy, memo, useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, version }"
129
92
  `);
130
93
  });
131
94
  it('can snapshot react-dom', async () => {
132
- expect(await createESMStub('react-dom', stubPath)).toMatchInlineSnapshot(`
133
- "import packageExport from "./../react-dom";
134
- const {
135
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
136
- createPortal,
137
- findDOMNode,
138
- flushSync,
139
- hydrate,
140
- render,
141
- unmountComponentAtNode,
142
- unstable_batchedUpdates,
143
- unstable_createPortal,
144
- unstable_renderSubtreeIntoContainer,
145
- version,
146
- } = packageExport;
147
-
148
- export {
149
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
150
- createPortal,
151
- findDOMNode,
152
- flushSync,
153
- hydrate,
154
- render,
155
- unmountComponentAtNode,
156
- unstable_batchedUpdates,
157
- unstable_createPortal,
158
- unstable_renderSubtreeIntoContainer,
159
- version,
160
- packageExport as default,
161
- }"
95
+ expect(await createESMStub(path.join(testScenariosPath, 'react-dom.development.cjs'), stubPath))
96
+ .toMatchInlineSnapshot(`
97
+ "import * as packageExport from "./react-dom.development.cjs";
98
+ const { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, createPortal, findDOMNode, flushSync, hydrate, render, unmountComponentAtNode, unstable_batchedUpdates, unstable_createPortal, unstable_renderSubtreeIntoContainer, version } = packageExport;
99
+ export default packageExport;
100
+ export { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, createPortal, findDOMNode, flushSync, hydrate, render, unmountComponentAtNode, unstable_batchedUpdates, unstable_createPortal, unstable_renderSubtreeIntoContainer, version }"
162
101
  `);
163
102
  });
164
103
  it('can generate a stub for a browser-sensitive CommonJS module', async () => {
165
104
  expect(await createESMStub(path.join(testScenariosPath, 'browser-sensitive.cjs'), stubPath)).toMatchInlineSnapshot(`
166
- "import packageExport from "./browser-sensitive.cjs";
167
- const {
168
- getDiv,
169
- } = packageExport;
170
-
171
- export {
172
- getDiv,
173
- packageExport as default,
174
- }"
105
+ "import * as packageExport from "./browser-sensitive.cjs";
106
+ const { getDiv } = packageExport;
107
+ export default packageExport;
108
+ export { getDiv }"
175
109
  `);
176
110
  });
177
111
  it('can ignore JavaScript keywords in named exports', async () => {
178
112
  // Should be missing "delete" in the named exports.
179
113
  expect(await createESMStub(path.join(testScenariosPath, 'export-with-keyword.cjs'), stubPath))
180
114
  .toMatchInlineSnapshot(`
181
- "import packageExport from "./export-with-keyword.cjs";
182
- const {
183
- default: __moduleDefault,
184
- a,
185
- } = packageExport;
186
-
187
- export {
188
- a,
189
- __moduleDefault as default,
190
- }"
115
+ "import * as packageExport from "./export-with-keyword.cjs";
116
+ const { a } = packageExport;
117
+ const defaultExport = (packageExport && packageExport.default?.default) ? packageExport?.default.default : packageExport?.default;
118
+ export default defaultExport;
119
+ export { a }"
191
120
  `);
192
121
  });
193
122
  it('can generate a stub for node-fetch', async () => {
194
123
  expect(await createESMStub(path.join(testScenariosPath, 'node-fetch.cjs'), stubPath)).toMatchInlineSnapshot(`
195
124
  "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
- }"
125
+ const { Headers, Request, Response } = packageExport;
126
+ const defaultExport = (packageExport && packageExport.default?.default) ? packageExport?.default.default : packageExport?.default;
127
+ export default defaultExport;
128
+ export { Headers, Request, Response }"
209
129
  `);
210
130
  });
131
+ it('can generate a stub for diff-sequences', async () => {
132
+ expect(await createESMStub(path.join(testScenariosPath, 'diff-sequences.cjs'), stubPath)).toMatchInlineSnapshot(`
133
+ "import * as packageExport from "./diff-sequences.cjs";
134
+ const defaultExport = (packageExport && packageExport.default?.default) ? packageExport?.default.default : packageExport?.default;
135
+ export default defaultExport;"
136
+ `);
137
+ });
138
+ it('can generate a stub for isomorphic-ws', async () => {
139
+ expect(await createESMStub(path.join(testScenariosPath, 'isomorphic-ws.cjs'), stubPath)).toMatchInlineSnapshot(`"export { default } from "./isomorphic-ws.cjs";"`);
140
+ });
211
141
  it('can generate a stub from something that returns a boolean', async () => {
212
142
  expect(await createESMStub(path.join(testScenariosPath, 'boolean-return.cjs'), stubPath)).toMatchInlineSnapshot(`"export default true;"`);
213
143
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createESMStub.test.js","sourceRoot":"","sources":["../src/createESMStub.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createESMStub.test.js","sourceRoot":"","sources":["../src/createESMStub.test.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export const forbiddenExportNames = [
16
16
  'const',
17
17
  'continue',
18
18
  'debugger',
19
+ 'default',
19
20
  'delete',
20
21
  'do',
21
22
  'double',
@@ -1 +1 @@
1
- {"version":3,"file":"forbiddenExportNames.js","sourceRoot":"","sources":["../src/forbiddenExportNames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU;IACV,WAAW;IACX,OAAO;IACP,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,SAAS;IACT,OAAO;IACP,KAAK;IACL,UAAU;IACV,MAAM;IACN,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,WAAW;IACX,KAAK;IACL,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,cAAc;IACd,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"forbiddenExportNames.js","sourceRoot":"","sources":["../src/forbiddenExportNames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU;IACV,WAAW;IACX,OAAO;IACP,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,SAAS;IACT,OAAO;IACP,KAAK;IACL,UAAU;IACV,MAAM;IACN,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,WAAW;IACX,KAAK;IACL,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,cAAc;IACd,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -28,6 +28,10 @@ export async function initializeBrowserEnvironment() {
28
28
  globalThis.self = dom.window;
29
29
  globalThis.document = dom.window.document;
30
30
  globalThis.navigator = dom.window.navigator;
31
+ // Simulate WebSocket existence. (Needed for isomorphic-ws)
32
+ globalThis.WebSocket = globalThis.window.WebSocket = function () {
33
+ /* noop */
34
+ };
31
35
  // eslint-disable-next-line etc/no-deprecated
32
36
  const createElement = dom.window.document.createElement.bind(dom.window.document);
33
37
  // Mock out canvas.
@@ -1 +1 @@
1
- {"version":3,"file":"initializeBrowserEnvironment.js","sourceRoot":"","sources":["../src/initializeBrowserEnvironment.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,4DAA4D;AAC5D,sDAAsD;AACtD,+DAA+D;AAC/D,wDAAwD;AACxD,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,MAAM,UAAU,GAAG,MAAa,CAAC;YAEjC,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,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,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"}
1
+ {"version":3,"file":"initializeBrowserEnvironment.js","sourceRoot":"","sources":["../src/initializeBrowserEnvironment.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,4DAA4D;AAC5D,sDAAsD;AACtD,+DAA+D;AAC/D,wDAAwD;AACxD,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,MAAM,UAAU,GAAG,MAAa,CAAC;YAEjC,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,2DAA2D;YAC3D,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG;gBACnD,UAAU;YACZ,CAAC,CAAC;YAEF,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,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,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"}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.33.1"
8
+ "packageVersion": "7.33.6"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/esm-stub-utilities",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "description": "Generates ESM stubs for CommonJS entry files.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -13,7 +13,7 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@ms-cloudpack/path-utilities": "^1.1.0",
16
+ "@ms-cloudpack/path-utilities": "^1.1.1",
17
17
  "@ms-cloudpack/path-string-parsing": "^1.0.0",
18
18
  "atob": "^2.1.2",
19
19
  "btoa": "^1.2.1",