diff --git a/package-lock.json b/package-lock.json index c36b912..a305320 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "@exact-realty/esbuild-plugin-inline-js", - "version": "1.0.4", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@exact-realty/esbuild-plugin-inline-js", - "version": "1.0.4", + "version": "1.1.0", "hasInstallScript": true, "license": "ISC", "devDependencies": { "@types/mocha": "^10.0.1", - "@types/node": "^18.16.3", + "@types/node": "^18.16.5", "@typescript-eslint/eslint-plugin": "^5.59.2", "@typescript-eslint/parser": "^5.59.2", "esbuild": "^0.17.18", @@ -577,9 +577,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", + "version": "18.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.5.tgz", + "integrity": "sha512-seOA34WMo9KB+UA78qaJoCO20RJzZGVXQ5Sh6FWu0g/hfT44nKXnej3/tCQl7FL97idFpBhisLYCTB50S0EirA==", "dev": true }, "node_modules/@types/semver": { diff --git a/package.json b/package.json index 34fc3f3..2927037 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@exact-realty/esbuild-plugin-inline-js", - "version": "1.0.8", + "version": "1.1.0", "description": "esbuild plugin for inline scripts", "main": "dist/index.js", "module": "./dist/index.mjs", @@ -31,7 +31,7 @@ "license": "ISC", "devDependencies": { "@types/mocha": "^10.0.1", - "@types/node": "^18.16.3", + "@types/node": "^18.16.5", "@typescript-eslint/eslint-plugin": "^5.59.2", "@typescript-eslint/parser": "^5.59.2", "esbuild": "^0.17.18", diff --git a/src/index.ts b/src/index.ts index afe3e09..41e719b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -88,41 +88,39 @@ export default ( }, ); - build.onResolve( - { filter: /\.inline\.(js|jsx|ts|tsx)$/ }, - async (a) => { - const { path, resolveDir, pluginData, namespace, kind } = a; - if ( - kind === 'entry-point' || - pluginData === skipResolve || - namespace === - '@exact-realty/esbuild-plugin-inline-js/loader' - ) { - return; - } + build.onResolve({ filter: /^inline:/ }, async (a) => { + const { path, resolveDir, pluginData, namespace, kind } = a; + if ( + kind === 'entry-point' || + pluginData === skipResolve || + namespace === + '@exact-realty/esbuild-plugin-inline-js/loader' + ) { + return; + } - const result = await build.resolve(path, { - resolveDir, - pluginData: skipResolve, - kind: 'require-resolve', - namespace, - }); + const pathWP = path.slice(7); - if (result.errors.length > 0) { - return { errors: result.errors }; - } + const result = await build.resolve(pathWP, { + resolveDir, + pluginData: skipResolve, + kind: 'require-resolve', + namespace, + }); - return { - external: false, - namespace: - '@exact-realty/esbuild-plugin-inline-js/loader', - path: result.path, - suffix: undefined, - watchDirs: [], - watchFiles: [result.path], - }; - }, - ); + if (result.errors.length > 0) { + return { errors: result.errors }; + } + + return { + external: false, + namespace: '@exact-realty/esbuild-plugin-inline-js/loader', + path: result.path, + suffix: undefined, + watchDirs: [], + watchFiles: [result.path], + }; + }); build.onResolve( { diff --git a/test/test-default-import.ts b/test/test-default-import.ts index 0477c76..0a7a692 100644 --- a/test/test-default-import.ts +++ b/test/test-default-import.ts @@ -15,7 +15,7 @@ import assert from 'node:assert/strict'; -import x from './sample.inline.ts'; +import x from 'inline:./sample.inline.ts'; assert.notEqual(x, ''); assert.equal((new Function(x)(), globalThis.result), 'Hello, World!'); diff --git a/test/test-non-existing.ts b/test/test-non-existing.ts index 063a830..85bd6a3 100644 --- a/test/test-non-existing.ts +++ b/test/test-non-existing.ts @@ -13,4 +13,4 @@ * PERFORMANCE OF THIS SOFTWARE. */ -export * as default from './this.file.does.not.exist.inline.ts'; +export * as default from 'inline:./this.file.does.not.exist.inline.ts'; diff --git a/test/test-path-import.ts b/test/test-path-import.ts index 432adbe..0dde350 100644 --- a/test/test-path-import.ts +++ b/test/test-path-import.ts @@ -18,7 +18,7 @@ import { createHash } from 'node:crypto'; import { join } from 'node:path'; import { readFileSync } from 'node:fs'; -import * as x from './external.inline.ts'; +import * as x from 'inline:./external.inline.ts'; assert.notEqual(x.default, ''); assert.equal( diff --git a/test/test-recursive-outer.inline.ts b/test/test-recursive-outer.inline.ts index c918dcf..97eb242 100644 --- a/test/test-recursive-outer.inline.ts +++ b/test/test-recursive-outer.inline.ts @@ -1,4 +1,4 @@ -import * as inner from './test-recursive-inner.inline.ts'; +import * as inner from 'inline:./test-recursive-inner.inline.ts'; (function () { new Function(inner.default)(); diff --git a/test/test-recursive.ts b/test/test-recursive.ts index 70d5b2d..857685c 100644 --- a/test/test-recursive.ts +++ b/test/test-recursive.ts @@ -15,7 +15,7 @@ import assert from 'node:assert/strict'; -import x from './test-recursive-outer.inline.ts'; +import x from 'inline:./test-recursive-outer.inline.ts'; assert.notEqual(x, ''); assert.equal((new Function(x)(), globalThis.result), 'Hello, World!'); diff --git a/test/test-simple.ts b/test/test-simple.ts index 0838448..f1e9911 100644 --- a/test/test-simple.ts +++ b/test/test-simple.ts @@ -16,7 +16,7 @@ import assert from 'node:assert/strict'; import { createHash } from 'node:crypto'; -import * as x from './sample.inline.ts'; +import * as x from 'inline:./sample.inline.ts'; assert.notEqual(x.default, ''); assert.equal( diff --git a/test/test.d.ts b/test/test.d.ts index 7b0d9d2..f4e3573 100644 --- a/test/test.d.ts +++ b/test/test.d.ts @@ -13,16 +13,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -declare module '*.inline.ts' { - const content: string; - export const contentBase64: string; - export const path: string; - export const sri: string; - - export default content; -} - -declare module '*.inline.js' { +declare module 'inline:*' { const content: string; export const contentBase64: string; export const path: string; diff --git a/tsconfig.json b/tsconfig.json index 5520c54..6c01877 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,10 +15,9 @@ "lib": ["es6", "ES2019.object", "dom"], "declaration": true }, - "include": ["src/**/*", "types/**/*"], + "include": ["src/**/*"], "exclude": [ "node_modules", "build" - ], - "types": ["node"] + ] }