From f26f05bf8d89d36d43090b9404514b80564b2f6c Mon Sep 17 00:00:00 2001 From: Hiroki Osame Date: Tue, 24 May 2022 21:01:11 -0400 Subject: [PATCH 1/2] fix(typescript): resolve js to ts --- package.json | 4 ++-- pnpm-lock.yaml | 42 ++++++++++++++++++++++-------------- tests/specs/typescript/ts.ts | 24 +++++++++++++++++++++ 3 files changed, 52 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 1c772bd9a..7a33a4c25 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,9 @@ "prepublishOnly": "npm test" }, "dependencies": { - "@esbuild-kit/cjs-loader": "^2.0.0", + "@esbuild-kit/cjs-loader": "github:esbuild-kit/cjs-loader#built/resolve-ts-path", "@esbuild-kit/core-utils": "^1.1.2", - "@esbuild-kit/esm-loader": "^2.1.1" + "@esbuild-kit/esm-loader": "github:esbuild-kit/esm-loader#built/resolve-ts-path" }, "optionalDependencies": { "fsevents": "~2.3.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec37e9203..d16013750 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,9 @@ lockfileVersion: 5.4 specifiers: - '@esbuild-kit/cjs-loader': ^2.0.0 + '@esbuild-kit/cjs-loader': github:esbuild-kit/cjs-loader#built/resolve-ts-path '@esbuild-kit/core-utils': ^1.1.2 - '@esbuild-kit/esm-loader': ^2.1.1 + '@esbuild-kit/esm-loader': github:esbuild-kit/esm-loader#built/resolve-ts-path '@pvtnbr/eslint-config': ^0.22.0 '@types/cross-spawn': ^6.0.2 '@types/node': ^17.0.34 @@ -21,9 +21,9 @@ specifiers: typescript: ^4.6.4 dependencies: - '@esbuild-kit/cjs-loader': 2.0.0 + '@esbuild-kit/cjs-loader': github.com/esbuild-kit/cjs-loader/90a7377fd8b1574006249015e1990a6e3b381527 '@esbuild-kit/core-utils': 1.1.2 - '@esbuild-kit/esm-loader': 2.1.1 + '@esbuild-kit/esm-loader': github.com/esbuild-kit/esm-loader/e44e909773991b1b88373ccbab4686128c3feb8b optionalDependencies: fsevents: 2.3.2 @@ -67,25 +67,16 @@ packages: js-tokens: 4.0.0 dev: true - /@esbuild-kit/cjs-loader/2.0.0: - resolution: {integrity: sha512-1ijCpmiCQcOcr0dmwwwCpzv0inWpNtEgiXDWc74AL52AhvY108M26suhWe9PMDcF1esnPJf0YSeVBLLZS6SQvg==} - dependencies: - '@esbuild-kit/core-utils': 1.1.2 - get-tsconfig: 3.0.1 - dev: false - /@esbuild-kit/core-utils/1.1.2: resolution: {integrity: sha512-t5uqG23MYDR0e664jP4B6aPXnX1/mJVxbvJKgQDMzOS3NblKZEwwOG1D/JM7Sju+R+gpV6fD1N7L3ouHCLTAAA==} dependencies: esbuild: 0.14.38 dev: false - /@esbuild-kit/esm-loader/2.1.1: - resolution: {integrity: sha512-SzB7wsSsKZToEvP29gslW6cjudrABMe6q4ZuDk9SDahdWg8QPo3HelLJu97VglhfVXm3gS6iCZbXyfjIWK6LHg==} + /@esbuild-kit/core-utils/1.2.0: + resolution: {integrity: sha512-C+WS7LupKIvf/3hx6qHzHMroGI9Ypqvainghcuq8Le5LL8VA0lgZEG8sEa5YMuWEBvImHTJ6kBCNFws+bTbMjw==} dependencies: - '@esbuild-kit/core-utils': 1.1.2 - es-module-lexer: 0.10.5 - get-tsconfig: 3.0.1 + esbuild: 0.14.38 dev: false /@eslint/eslintrc/1.2.3: @@ -3488,3 +3479,22 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true + + github.com/esbuild-kit/cjs-loader/90a7377fd8b1574006249015e1990a6e3b381527: + resolution: {tarball: https://codeload.github.com/esbuild-kit/cjs-loader/tar.gz/90a7377fd8b1574006249015e1990a6e3b381527} + name: '@esbuild-kit/cjs-loader' + version: 0.0.0-semantic-release + dependencies: + '@esbuild-kit/core-utils': 1.2.0 + get-tsconfig: 3.0.1 + dev: false + + github.com/esbuild-kit/esm-loader/e44e909773991b1b88373ccbab4686128c3feb8b: + resolution: {tarball: https://codeload.github.com/esbuild-kit/esm-loader/tar.gz/e44e909773991b1b88373ccbab4686128c3feb8b} + name: '@esbuild-kit/esm-loader' + version: 0.0.0-semantic-release + dependencies: + '@esbuild-kit/core-utils': 1.2.0 + es-module-lexer: 0.10.5 + get-tsconfig: 3.0.1 + dev: false diff --git a/tests/specs/typescript/ts.ts b/tests/specs/typescript/ts.ts index 5b1bb4644..fb89fe496 100644 --- a/tests/specs/typescript/ts.ts +++ b/tests/specs/typescript/ts.ts @@ -32,6 +32,30 @@ export default testSuite(async ({ describe }, node: NodeApis) => { }); }); + describe('full path via .js', ({ test }) => { + const importPath = './lib/ts-ext-ts/index.js'; + + test('Load', async () => { + const nodeProcess = await node.load(importPath); + expect(nodeProcess.stderr).toMatch('Cannot find module'); + }); + + test('Import', async () => { + const nodeProcess = await node.import(importPath, { typescript: true }); + + expect(nodeProcess.stdout).toBe(`${node.isCJS ? outputCjs : outputEsm}\n{"default":1234}`); + expect(nodeProcess.stderr).toBe(''); + }); + + test('Require', async () => { + const nodeProcess = await node.require(importPath, { typescript: true }); + + // By "require()"ing an ESM file, it forces it to be compiled in a CJS context + expect(nodeProcess.stdout).toBe(`${outputCjs}\n{"default":1234}`); + expect(nodeProcess.stderr).toBe(''); + }); + }); + describe('extensionless', ({ test }) => { const importPath = './lib/ts-ext-ts/index'; From 6598179b3f12eff8e2ee3f6ad68596dec70ff8bc Mon Sep 17 00:00:00 2001 From: Hiroki Osame Date: Tue, 24 May 2022 21:18:15 -0400 Subject: [PATCH 2/2] chore: use stable loaders --- package.json | 6 +++--- pnpm-lock.yaml | 46 ++++++++++++++++++---------------------------- 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 7a33a4c25..0e9d5f979 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,9 @@ "prepublishOnly": "npm test" }, "dependencies": { - "@esbuild-kit/cjs-loader": "github:esbuild-kit/cjs-loader#built/resolve-ts-path", - "@esbuild-kit/core-utils": "^1.1.2", - "@esbuild-kit/esm-loader": "github:esbuild-kit/esm-loader#built/resolve-ts-path" + "@esbuild-kit/cjs-loader": "^2.0.1", + "@esbuild-kit/core-utils": "^1.2.0", + "@esbuild-kit/esm-loader": "^2.1.2" }, "optionalDependencies": { "fsevents": "~2.3.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d16013750..65309002c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,9 @@ lockfileVersion: 5.4 specifiers: - '@esbuild-kit/cjs-loader': github:esbuild-kit/cjs-loader#built/resolve-ts-path - '@esbuild-kit/core-utils': ^1.1.2 - '@esbuild-kit/esm-loader': github:esbuild-kit/esm-loader#built/resolve-ts-path + '@esbuild-kit/cjs-loader': ^2.0.1 + '@esbuild-kit/core-utils': ^1.2.0 + '@esbuild-kit/esm-loader': ^2.1.2 '@pvtnbr/eslint-config': ^0.22.0 '@types/cross-spawn': ^6.0.2 '@types/node': ^17.0.34 @@ -21,9 +21,9 @@ specifiers: typescript: ^4.6.4 dependencies: - '@esbuild-kit/cjs-loader': github.com/esbuild-kit/cjs-loader/90a7377fd8b1574006249015e1990a6e3b381527 - '@esbuild-kit/core-utils': 1.1.2 - '@esbuild-kit/esm-loader': github.com/esbuild-kit/esm-loader/e44e909773991b1b88373ccbab4686128c3feb8b + '@esbuild-kit/cjs-loader': 2.0.1 + '@esbuild-kit/core-utils': 1.2.0 + '@esbuild-kit/esm-loader': 2.1.2 optionalDependencies: fsevents: 2.3.2 @@ -67,10 +67,11 @@ packages: js-tokens: 4.0.0 dev: true - /@esbuild-kit/core-utils/1.1.2: - resolution: {integrity: sha512-t5uqG23MYDR0e664jP4B6aPXnX1/mJVxbvJKgQDMzOS3NblKZEwwOG1D/JM7Sju+R+gpV6fD1N7L3ouHCLTAAA==} + /@esbuild-kit/cjs-loader/2.0.1: + resolution: {integrity: sha512-KmE8XouKm6m05jPIsf5CTIZZ4171GHd+PUts1mtti2tzoiD228qCRjpkCwg540c3fMUweKupO+PIpkJ9+Z7vPg==} dependencies: - esbuild: 0.14.38 + '@esbuild-kit/core-utils': 1.2.0 + get-tsconfig: 3.0.1 dev: false /@esbuild-kit/core-utils/1.2.0: @@ -79,6 +80,14 @@ packages: esbuild: 0.14.38 dev: false + /@esbuild-kit/esm-loader/2.1.2: + resolution: {integrity: sha512-7p6ftgLQIZKIXV3KdOsQ4pYL6lJHc7mNfWTZBp+nI7ceVvxJwe1VoaQAP0zA81zadUoX5DsGi9RXMTxu1uYt7w==} + dependencies: + '@esbuild-kit/core-utils': 1.2.0 + es-module-lexer: 0.10.5 + get-tsconfig: 3.0.1 + dev: false + /@eslint/eslintrc/1.2.3: resolution: {integrity: sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3479,22 +3488,3 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true - - github.com/esbuild-kit/cjs-loader/90a7377fd8b1574006249015e1990a6e3b381527: - resolution: {tarball: https://codeload.github.com/esbuild-kit/cjs-loader/tar.gz/90a7377fd8b1574006249015e1990a6e3b381527} - name: '@esbuild-kit/cjs-loader' - version: 0.0.0-semantic-release - dependencies: - '@esbuild-kit/core-utils': 1.2.0 - get-tsconfig: 3.0.1 - dev: false - - github.com/esbuild-kit/esm-loader/e44e909773991b1b88373ccbab4686128c3feb8b: - resolution: {tarball: https://codeload.github.com/esbuild-kit/esm-loader/tar.gz/e44e909773991b1b88373ccbab4686128c3feb8b} - name: '@esbuild-kit/esm-loader' - version: 0.0.0-semantic-release - dependencies: - '@esbuild-kit/core-utils': 1.2.0 - es-module-lexer: 0.10.5 - get-tsconfig: 3.0.1 - dev: false