From d1a73331ea6c7081607aeae06388efbaf9101107 Mon Sep 17 00:00:00 2001 From: Orta Date: Tue, 6 Oct 2020 11:16:06 -0400 Subject: [PATCH] Backports #126 to the 1.x branch --- .github/workflows/publish.yaml | 5 +- modules/index.js | 51 +++++++++++++++++++ modules/package.json | 3 ++ package.json | 11 +++- .../index.js | 23 +++++++++ .../package.json | 6 +++ 6 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 modules/index.js create mode 100644 modules/package.json create mode 100644 test/validateModuleExportsMatchCommonJS/index.js create mode 100644 test/validateModuleExportsMatchCommonJS/package.json diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 29c8ead..9a88554 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -11,9 +11,10 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 14 registry-url: https://registry.npmjs.org/ - run: npm i + - run: node test/validateModuleExportsMatchCommonJS/index.js - run: npm publish env: - NODE_AUTH_TOKEN: ${{secrets.npm_token}} \ No newline at end of file + NODE_AUTH_TOKEN: ${{secrets.npm_token}} diff --git a/modules/index.js b/modules/index.js new file mode 100644 index 0000000..d241d04 --- /dev/null +++ b/modules/index.js @@ -0,0 +1,51 @@ +import tslib from '../tslib.js'; +const { + __extends, + __assign, + __rest, + __decorate, + __param, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, +} = tslib; +export { + __extends, + __assign, + __rest, + __decorate, + __param, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, +}; diff --git a/modules/package.json b/modules/package.json new file mode 100644 index 0000000..aafa0e4 --- /dev/null +++ b/modules/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} \ No newline at end of file diff --git a/package.json b/package.json index 72a6455..6e68dab 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "tslib", "author": "Microsoft Corp.", "homepage": "https://www.typescriptlang.org/", - "version": "1.13.0", + "version": "1.14.0", "license": "0BSD", "description": "Runtime library for TypeScript helper functions", "keywords": [ @@ -25,5 +25,12 @@ "module": "tslib.es6.js", "jsnext:main": "tslib.es6.js", "typings": "tslib.d.ts", - "sideEffects": false + "sideEffects": false, + "exports": { + ".": { + "import": "./modules/index.js", + "default": "./tslib.js" + }, + "./": "./" + } } diff --git a/test/validateModuleExportsMatchCommonJS/index.js b/test/validateModuleExportsMatchCommonJS/index.js new file mode 100644 index 0000000..0c1b613 --- /dev/null +++ b/test/validateModuleExportsMatchCommonJS/index.js @@ -0,0 +1,23 @@ +// When on node 14, it validates that all of the commonjs exports +// are correctly re-exported for es modules importers. + +const nodeMajor = Number(process.version.split(".")[0].slice(1)) +if (nodeMajor < 14) { + console.log("Skipping because node does not support module exports.") + process.exit(0) +} + +// ES Modules import via the ./modules folder +import * as esTSLib from "../../modules/index.js" + +// Force a commonjs resolve +import { createRequire } from "module"; +const commonJSTSLib = createRequire(import.meta.url)("../../tslib.js"); + +for (const key in commonJSTSLib) { + if (commonJSTSLib.hasOwnProperty(key)) { + if(!esTSLib[key]) throw new Error(`ESModules is missing ${key} - it needs to be re-exported in ./modules/index.js`) + } +} + +console.log("All exports in commonjs are available for es module consumers.") diff --git a/test/validateModuleExportsMatchCommonJS/package.json b/test/validateModuleExportsMatchCommonJS/package.json new file mode 100644 index 0000000..166e509 --- /dev/null +++ b/test/validateModuleExportsMatchCommonJS/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "scripts": { + "test": "node index.js" + } +}