diff --git a/package.json b/package.json index 1c772bd9a..0e9d5f979 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,9 @@ "prepublishOnly": "npm test" }, "dependencies": { - "@esbuild-kit/cjs-loader": "^2.0.0", - "@esbuild-kit/core-utils": "^1.1.2", - "@esbuild-kit/esm-loader": "^2.1.1" + "@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 ec37e9203..65309002c 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/core-utils': ^1.1.2 - '@esbuild-kit/esm-loader': ^2.1.1 + '@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': 2.0.0 - '@esbuild-kit/core-utils': 1.1.2 - '@esbuild-kit/esm-loader': 2.1.1 + '@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,23 +67,23 @@ packages: js-tokens: 4.0.0 dev: true - /@esbuild-kit/cjs-loader/2.0.0: - resolution: {integrity: sha512-1ijCpmiCQcOcr0dmwwwCpzv0inWpNtEgiXDWc74AL52AhvY108M26suhWe9PMDcF1esnPJf0YSeVBLLZS6SQvg==} + /@esbuild-kit/cjs-loader/2.0.1: + resolution: {integrity: sha512-KmE8XouKm6m05jPIsf5CTIZZ4171GHd+PUts1mtti2tzoiD228qCRjpkCwg540c3fMUweKupO+PIpkJ9+Z7vPg==} dependencies: - '@esbuild-kit/core-utils': 1.1.2 + '@esbuild-kit/core-utils': 1.2.0 get-tsconfig: 3.0.1 dev: false - /@esbuild-kit/core-utils/1.1.2: - resolution: {integrity: sha512-t5uqG23MYDR0e664jP4B6aPXnX1/mJVxbvJKgQDMzOS3NblKZEwwOG1D/JM7Sju+R+gpV6fD1N7L3ouHCLTAAA==} + /@esbuild-kit/core-utils/1.2.0: + resolution: {integrity: sha512-C+WS7LupKIvf/3hx6qHzHMroGI9Ypqvainghcuq8Le5LL8VA0lgZEG8sEa5YMuWEBvImHTJ6kBCNFws+bTbMjw==} dependencies: esbuild: 0.14.38 dev: false - /@esbuild-kit/esm-loader/2.1.1: - resolution: {integrity: sha512-SzB7wsSsKZToEvP29gslW6cjudrABMe6q4ZuDk9SDahdWg8QPo3HelLJu97VglhfVXm3gS6iCZbXyfjIWK6LHg==} + /@esbuild-kit/esm-loader/2.1.2: + resolution: {integrity: sha512-7p6ftgLQIZKIXV3KdOsQ4pYL6lJHc7mNfWTZBp+nI7ceVvxJwe1VoaQAP0zA81zadUoX5DsGi9RXMTxu1uYt7w==} dependencies: - '@esbuild-kit/core-utils': 1.1.2 + '@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';