esbuild-auto-path-plugin 1.0.1 → 1.1.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2019 - 2023 smapiot
3
+ Copyright (c) 2019 - 2024 smapiot
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,94 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/index.ts
20
+ var src_exports = {};
21
+ __export(src_exports, {
22
+ autoPathPlugin: () => autoPathPlugin
23
+ });
24
+ module.exports = __toCommonJS(src_exports);
25
+ var import_promises = require("fs/promises");
26
+ var import_path = require("path");
27
+ var fallbackExtensions = [
28
+ ".png",
29
+ ".svg",
30
+ ".jpg",
31
+ ".jpeg",
32
+ ".webp",
33
+ ".mp4",
34
+ ".mp3",
35
+ ".ogg",
36
+ ".wav",
37
+ ".ogv",
38
+ ".wasm",
39
+ ".gif"
40
+ ];
41
+ function makeExtensions(extensions = fallbackExtensions) {
42
+ return extensions.reduce((obj, ext) => {
43
+ obj[ext] = "file";
44
+ return obj;
45
+ }, {});
46
+ }
47
+ var autoPathPlugin = (options = {}) => ({
48
+ name: "auto-path-plugin",
49
+ setup(build) {
50
+ const { loader = makeExtensions(options.defaultExtensions) } = build.initialOptions;
51
+ const extensions = [];
52
+ for (const ext of Object.keys(loader)) {
53
+ const l = loader[ext];
54
+ if (l === "file") {
55
+ extensions.push(ext);
56
+ delete loader[ext];
57
+ }
58
+ }
59
+ const filter = new RegExp(`(${extensions.map((ext) => `\\${ext}`).join("|")})$`);
60
+ build.onResolve({ filter }, (args) => {
61
+ if (args.namespace === "ref-stub") {
62
+ return {
63
+ path: args.path,
64
+ namespace: "ref-binary"
65
+ };
66
+ } else if (args.resolveDir !== "") {
67
+ return {
68
+ path: (0, import_path.isAbsolute)(args.path) ? args.path : (0, import_path.join)(args.resolveDir, args.path),
69
+ // for CSS we'll just use the path; no intermediate module needed
70
+ namespace: args.kind === "url-token" ? "ref-binary" : "ref-stub"
71
+ };
72
+ } else {
73
+ return;
74
+ }
75
+ });
76
+ build.onLoad({ filter: /.*/, namespace: "ref-stub" }, async (args) => ({
77
+ resolveDir: (0, import_path.resolve)(__dirname),
78
+ contents: [
79
+ `import path from ${JSON.stringify(args.path)}`,
80
+ `import { __bundleUrl__ } from ${JSON.stringify("../set-path.js")}`,
81
+ `export default __bundleUrl__ + path;`
82
+ ].join("\n")
83
+ }));
84
+ build.onLoad({ filter: /.*/, namespace: "ref-binary" }, async (args) => ({
85
+ contents: await (0, import_promises.readFile)(args.path),
86
+ loader: "file"
87
+ }));
88
+ }
89
+ });
90
+ // Annotate the CommonJS export names for ESM import in node:
91
+ 0 && (module.exports = {
92
+ autoPathPlugin
93
+ });
94
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["import { Plugin } from 'esbuild';\nimport { readFile } from 'fs/promises';\nimport { isAbsolute, join, resolve } from 'path';\n\nconst fallbackExtensions = [\n '.png',\n '.svg',\n '.jpg',\n '.jpeg',\n '.webp',\n '.mp4',\n '.mp3',\n '.ogg',\n '.wav',\n '.ogv',\n '.wasm',\n '.gif',\n];\n\ninterface AutoPathPluginOptions {\n defaultExtensions?: Array<string>;\n}\n\nfunction makeExtensions(extensions = fallbackExtensions) {\n return extensions.reduce((obj, ext) => {\n obj[ext] = 'file';\n return obj;\n }, {} as Record<string, 'file'>);\n}\n\nexport const autoPathPlugin = (options: AutoPathPluginOptions = {}): Plugin => ({\n name: 'auto-path-plugin',\n setup(build) {\n const { loader = makeExtensions(options.defaultExtensions) } = build.initialOptions;\n const extensions: Array<string> = [];\n\n for (const ext of Object.keys(loader)) {\n const l = loader[ext];\n\n if (l === 'file') {\n extensions.push(ext);\n delete loader[ext];\n }\n }\n\n const filter = new RegExp(`(${extensions.map((ext) => `\\\\${ext}`).join('|')})$`);\n\n build.onResolve({ filter }, (args) => {\n if (args.namespace === 'ref-stub') {\n return {\n path: args.path,\n namespace: 'ref-binary',\n };\n } else if (args.resolveDir !== '') {\n return {\n path: isAbsolute(args.path) ? args.path : join(args.resolveDir, args.path),\n // for CSS we'll just use the path; no intermediate module needed\n namespace: args.kind === 'url-token' ? 'ref-binary' : 'ref-stub',\n };\n } else {\n return; // Ignore unresolvable paths\n }\n });\n\n build.onLoad({ filter: /.*/, namespace: 'ref-stub' }, async (args) => ({\n resolveDir: resolve(__dirname),\n contents: [\n `import path from ${JSON.stringify(args.path)}`,\n `import { __bundleUrl__ } from ${JSON.stringify('../set-path.js')}`,\n `export default __bundleUrl__ + path;`,\n ].join('\\n'),\n }));\n\n build.onLoad({ filter: /.*/, namespace: 'ref-binary' }, async (args) => ({\n contents: (await readFile(args.path)) as unknown as Uint8Array,\n loader: 'file',\n }));\n },\n});\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAyB;AACzB,kBAA0C;AAE1C,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMA,SAAS,eAAe,aAAa,oBAAoB;AACvD,SAAO,WAAW,OAAO,CAAC,KAAK,QAAQ;AACrC,QAAI,GAAG,IAAI;AACX,WAAO;AAAA,EACT,GAAG,CAAC,CAA2B;AACjC;AAEO,IAAM,iBAAiB,CAAC,UAAiC,CAAC,OAAe;AAAA,EAC9E,MAAM;AAAA,EACN,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,eAAe,QAAQ,iBAAiB,EAAE,IAAI,MAAM;AACrE,UAAM,aAA4B,CAAC;AAEnC,eAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,YAAM,IAAI,OAAO,GAAG;AAEpB,UAAI,MAAM,QAAQ;AAChB,mBAAW,KAAK,GAAG;AACnB,eAAO,OAAO,GAAG;AAAA,MACnB;AAAA,IACF;AAEA,UAAM,SAAS,IAAI,OAAO,IAAI,WAAW,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,IAAI;AAE/E,UAAM,UAAU,EAAE,OAAO,GAAG,CAAC,SAAS;AACpC,UAAI,KAAK,cAAc,YAAY;AACjC,eAAO;AAAA,UACL,MAAM,KAAK;AAAA,UACX,WAAW;AAAA,QACb;AAAA,MACF,WAAW,KAAK,eAAe,IAAI;AACjC,eAAO;AAAA,UACL,UAAM,wBAAW,KAAK,IAAI,IAAI,KAAK,WAAO,kBAAK,KAAK,YAAY,KAAK,IAAI;AAAA;AAAA,UAEzE,WAAW,KAAK,SAAS,cAAc,eAAe;AAAA,QACxD;AAAA,MACF,OAAO;AACL;AAAA,MACF;AAAA,IACF,CAAC;AAED,UAAM,OAAO,EAAE,QAAQ,MAAM,WAAW,WAAW,GAAG,OAAO,UAAU;AAAA,MACrE,gBAAY,qBAAQ,SAAS;AAAA,MAC7B,UAAU;AAAA,QACR,oBAAoB,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,QAC7C,iCAAiC,KAAK,UAAU,gBAAgB,CAAC;AAAA,QACjE;AAAA,MACF,EAAE,KAAK,IAAI;AAAA,IACb,EAAE;AAEF,UAAM,OAAO,EAAE,QAAQ,MAAM,WAAW,aAAa,GAAG,OAAO,UAAU;AAAA,MACvE,UAAW,UAAM,0BAAS,KAAK,IAAI;AAAA,MACnC,QAAQ;AAAA,IACV,EAAE;AAAA,EACJ;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,70 @@
1
+ // src/index.ts
2
+ import { readFile } from "fs/promises";
3
+ import { isAbsolute, join, resolve } from "path";
4
+ var fallbackExtensions = [
5
+ ".png",
6
+ ".svg",
7
+ ".jpg",
8
+ ".jpeg",
9
+ ".webp",
10
+ ".mp4",
11
+ ".mp3",
12
+ ".ogg",
13
+ ".wav",
14
+ ".ogv",
15
+ ".wasm",
16
+ ".gif"
17
+ ];
18
+ function makeExtensions(extensions = fallbackExtensions) {
19
+ return extensions.reduce((obj, ext) => {
20
+ obj[ext] = "file";
21
+ return obj;
22
+ }, {});
23
+ }
24
+ var autoPathPlugin = (options = {}) => ({
25
+ name: "auto-path-plugin",
26
+ setup(build) {
27
+ const { loader = makeExtensions(options.defaultExtensions) } = build.initialOptions;
28
+ const extensions = [];
29
+ for (const ext of Object.keys(loader)) {
30
+ const l = loader[ext];
31
+ if (l === "file") {
32
+ extensions.push(ext);
33
+ delete loader[ext];
34
+ }
35
+ }
36
+ const filter = new RegExp(`(${extensions.map((ext) => `\\${ext}`).join("|")})$`);
37
+ build.onResolve({ filter }, (args) => {
38
+ if (args.namespace === "ref-stub") {
39
+ return {
40
+ path: args.path,
41
+ namespace: "ref-binary"
42
+ };
43
+ } else if (args.resolveDir !== "") {
44
+ return {
45
+ path: isAbsolute(args.path) ? args.path : join(args.resolveDir, args.path),
46
+ // for CSS we'll just use the path; no intermediate module needed
47
+ namespace: args.kind === "url-token" ? "ref-binary" : "ref-stub"
48
+ };
49
+ } else {
50
+ return;
51
+ }
52
+ });
53
+ build.onLoad({ filter: /.*/, namespace: "ref-stub" }, async (args) => ({
54
+ resolveDir: resolve(__dirname),
55
+ contents: [
56
+ `import path from ${JSON.stringify(args.path)}`,
57
+ `import { __bundleUrl__ } from ${JSON.stringify("../set-path.js")}`,
58
+ `export default __bundleUrl__ + path;`
59
+ ].join("\n")
60
+ }));
61
+ build.onLoad({ filter: /.*/, namespace: "ref-binary" }, async (args) => ({
62
+ contents: await readFile(args.path),
63
+ loader: "file"
64
+ }));
65
+ }
66
+ });
67
+ export {
68
+ autoPathPlugin
69
+ };
70
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["import { Plugin } from 'esbuild';\nimport { readFile } from 'fs/promises';\nimport { isAbsolute, join, resolve } from 'path';\n\nconst fallbackExtensions = [\n '.png',\n '.svg',\n '.jpg',\n '.jpeg',\n '.webp',\n '.mp4',\n '.mp3',\n '.ogg',\n '.wav',\n '.ogv',\n '.wasm',\n '.gif',\n];\n\ninterface AutoPathPluginOptions {\n defaultExtensions?: Array<string>;\n}\n\nfunction makeExtensions(extensions = fallbackExtensions) {\n return extensions.reduce((obj, ext) => {\n obj[ext] = 'file';\n return obj;\n }, {} as Record<string, 'file'>);\n}\n\nexport const autoPathPlugin = (options: AutoPathPluginOptions = {}): Plugin => ({\n name: 'auto-path-plugin',\n setup(build) {\n const { loader = makeExtensions(options.defaultExtensions) } = build.initialOptions;\n const extensions: Array<string> = [];\n\n for (const ext of Object.keys(loader)) {\n const l = loader[ext];\n\n if (l === 'file') {\n extensions.push(ext);\n delete loader[ext];\n }\n }\n\n const filter = new RegExp(`(${extensions.map((ext) => `\\\\${ext}`).join('|')})$`);\n\n build.onResolve({ filter }, (args) => {\n if (args.namespace === 'ref-stub') {\n return {\n path: args.path,\n namespace: 'ref-binary',\n };\n } else if (args.resolveDir !== '') {\n return {\n path: isAbsolute(args.path) ? args.path : join(args.resolveDir, args.path),\n // for CSS we'll just use the path; no intermediate module needed\n namespace: args.kind === 'url-token' ? 'ref-binary' : 'ref-stub',\n };\n } else {\n return; // Ignore unresolvable paths\n }\n });\n\n build.onLoad({ filter: /.*/, namespace: 'ref-stub' }, async (args) => ({\n resolveDir: resolve(__dirname),\n contents: [\n `import path from ${JSON.stringify(args.path)}`,\n `import { __bundleUrl__ } from ${JSON.stringify('../set-path.js')}`,\n `export default __bundleUrl__ + path;`,\n ].join('\\n'),\n }));\n\n build.onLoad({ filter: /.*/, namespace: 'ref-binary' }, async (args) => ({\n contents: (await readFile(args.path)) as unknown as Uint8Array,\n loader: 'file',\n }));\n },\n});\n"],
5
+ "mappings": ";AACA,SAAS,gBAAgB;AACzB,SAAS,YAAY,MAAM,eAAe;AAE1C,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMA,SAAS,eAAe,aAAa,oBAAoB;AACvD,SAAO,WAAW,OAAO,CAAC,KAAK,QAAQ;AACrC,QAAI,GAAG,IAAI;AACX,WAAO;AAAA,EACT,GAAG,CAAC,CAA2B;AACjC;AAEO,IAAM,iBAAiB,CAAC,UAAiC,CAAC,OAAe;AAAA,EAC9E,MAAM;AAAA,EACN,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,eAAe,QAAQ,iBAAiB,EAAE,IAAI,MAAM;AACrE,UAAM,aAA4B,CAAC;AAEnC,eAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,YAAM,IAAI,OAAO,GAAG;AAEpB,UAAI,MAAM,QAAQ;AAChB,mBAAW,KAAK,GAAG;AACnB,eAAO,OAAO,GAAG;AAAA,MACnB;AAAA,IACF;AAEA,UAAM,SAAS,IAAI,OAAO,IAAI,WAAW,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,IAAI;AAE/E,UAAM,UAAU,EAAE,OAAO,GAAG,CAAC,SAAS;AACpC,UAAI,KAAK,cAAc,YAAY;AACjC,eAAO;AAAA,UACL,MAAM,KAAK;AAAA,UACX,WAAW;AAAA,QACb;AAAA,MACF,WAAW,KAAK,eAAe,IAAI;AACjC,eAAO;AAAA,UACL,MAAM,WAAW,KAAK,IAAI,IAAI,KAAK,OAAO,KAAK,KAAK,YAAY,KAAK,IAAI;AAAA;AAAA,UAEzE,WAAW,KAAK,SAAS,cAAc,eAAe;AAAA,QACxD;AAAA,MACF,OAAO;AACL;AAAA,MACF;AAAA,IACF,CAAC;AAED,UAAM,OAAO,EAAE,QAAQ,MAAM,WAAW,WAAW,GAAG,OAAO,UAAU;AAAA,MACrE,YAAY,QAAQ,SAAS;AAAA,MAC7B,UAAU;AAAA,QACR,oBAAoB,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,QAC7C,iCAAiC,KAAK,UAAU,gBAAgB,CAAC;AAAA,QACjE;AAAA,MACF,EAAE,KAAK,IAAI;AAAA,IACb,EAAE;AAEF,UAAM,OAAO,EAAE,QAAQ,MAAM,WAAW,aAAa,GAAG,OAAO,UAAU;AAAA,MACvE,UAAW,MAAM,SAAS,KAAK,IAAI;AAAA,MACnC,QAAQ;AAAA,IACV,EAAE;AAAA,EACJ;AACF;",
6
+ "names": []
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esbuild-auto-path-plugin",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "Plugin for transforming bundles to use an auto path for assets.",
5
5
  "keywords": [
6
6
  "plugin",
@@ -11,10 +11,20 @@
11
11
  "author": "smapiot",
12
12
  "homepage": "https://piral.io",
13
13
  "license": "MIT",
14
- "main": "lib/index.js",
15
- "typings": "lib/index.d.ts",
14
+ "type": "module",
15
+ "main": "lib/cjs/index.cjs",
16
+ "module": "lib/esm/index.mjs",
17
+ "typings": "src/index.ts",
16
18
  "engines": {
17
- "node": ">=12.0"
19
+ "node": ">=16.0"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "import": "./lib/esm/index.mjs",
24
+ "require": "./lib/cjs/index.cjs",
25
+ "types": "./src/index.ts"
26
+ },
27
+ "./package.json": "./package.json"
18
28
  },
19
29
  "files": [
20
30
  "lib",
@@ -33,11 +43,13 @@
33
43
  "url": "https://github.com/smapiot/piral-cli-esbuild/issues"
34
44
  },
35
45
  "scripts": {
36
- "build": "tsc",
37
- "test": "echo \"Error: run tests from root\" && exit 1"
46
+ "test": "tsc --noEmit",
47
+ "build": "npm run build:cjs && npm run build:esm",
48
+ "build:cjs": "esbuild 'src/index.ts' --sourcemap --bundle --packages=external --platform=node --format=cjs --out-extension:.js=.cjs --outdir=lib/cjs",
49
+ "build:esm": "esbuild 'src/index.ts' --sourcemap --bundle --packages=external --platform=node --format=esm --out-extension:.js=.mjs --outdir=lib/esm --define:__filename=import.meta.url"
38
50
  },
39
51
  "devDependencies": {
40
- "esbuild": "^0.18.5"
52
+ "esbuild": "^0.24.0"
41
53
  },
42
- "gitHead": "0f10fe5282b46c8eeae2b4c43d1c5a088671ee97"
54
+ "gitHead": "4f8ea90f5c572c1fa901da3947a1307dc0958bf6"
43
55
  }
package/src/index.ts CHANGED
@@ -1,20 +1,20 @@
1
- import { Plugin } from "esbuild";
2
- import { readFile } from "fs/promises";
3
- import { isAbsolute, join, resolve } from "path";
1
+ import { Plugin } from 'esbuild';
2
+ import { readFile } from 'fs/promises';
3
+ import { isAbsolute, join, resolve } from 'path';
4
4
 
5
5
  const fallbackExtensions = [
6
- ".png",
7
- ".svg",
8
- ".jpg",
9
- ".jpeg",
10
- ".webp",
11
- ".mp4",
12
- ".mp3",
13
- ".ogg",
14
- ".wav",
15
- ".ogv",
16
- ".wasm",
17
- ".gif",
6
+ '.png',
7
+ '.svg',
8
+ '.jpg',
9
+ '.jpeg',
10
+ '.webp',
11
+ '.mp4',
12
+ '.mp3',
13
+ '.ogg',
14
+ '.wav',
15
+ '.ogv',
16
+ '.wasm',
17
+ '.gif',
18
18
  ];
19
19
 
20
20
  interface AutoPathPluginOptions {
@@ -23,62 +23,57 @@ interface AutoPathPluginOptions {
23
23
 
24
24
  function makeExtensions(extensions = fallbackExtensions) {
25
25
  return extensions.reduce((obj, ext) => {
26
- obj[ext] = "file";
26
+ obj[ext] = 'file';
27
27
  return obj;
28
- }, {} as Record<string, "file">);
28
+ }, {} as Record<string, 'file'>);
29
29
  }
30
30
 
31
31
  export const autoPathPlugin = (options: AutoPathPluginOptions = {}): Plugin => ({
32
- name: "auto-path-plugin",
32
+ name: 'auto-path-plugin',
33
33
  setup(build) {
34
- const { loader = makeExtensions(options.defaultExtensions) } =
35
- build.initialOptions;
34
+ const { loader = makeExtensions(options.defaultExtensions) } = build.initialOptions;
36
35
  const extensions: Array<string> = [];
37
36
 
38
37
  for (const ext of Object.keys(loader)) {
39
38
  const l = loader[ext];
40
39
 
41
- if (l === "file") {
40
+ if (l === 'file') {
42
41
  extensions.push(ext);
43
42
  delete loader[ext];
44
43
  }
45
44
  }
46
45
 
47
- const filter = new RegExp(
48
- `(${extensions.map((ext) => `\\${ext}`).join("|")})$`
49
- );
46
+ const filter = new RegExp(`(${extensions.map((ext) => `\\${ext}`).join('|')})$`);
50
47
 
51
48
  build.onResolve({ filter }, (args) => {
52
- if (args.namespace === "ref-stub") {
49
+ if (args.namespace === 'ref-stub') {
53
50
  return {
54
51
  path: args.path,
55
- namespace: "ref-binary",
52
+ namespace: 'ref-binary',
56
53
  };
57
- } else if (args.resolveDir !== "") {
54
+ } else if (args.resolveDir !== '') {
58
55
  return {
59
- path: isAbsolute(args.path)
60
- ? args.path
61
- : join(args.resolveDir, args.path),
56
+ path: isAbsolute(args.path) ? args.path : join(args.resolveDir, args.path),
62
57
  // for CSS we'll just use the path; no intermediate module needed
63
- namespace: args.kind === "url-token" ? "ref-binary" : "ref-stub",
58
+ namespace: args.kind === 'url-token' ? 'ref-binary' : 'ref-stub',
64
59
  };
65
60
  } else {
66
61
  return; // Ignore unresolvable paths
67
62
  }
68
63
  });
69
64
 
70
- build.onLoad({ filter: /.*/, namespace: "ref-stub" }, async (args) => ({
65
+ build.onLoad({ filter: /.*/, namespace: 'ref-stub' }, async (args) => ({
71
66
  resolveDir: resolve(__dirname),
72
67
  contents: [
73
68
  `import path from ${JSON.stringify(args.path)}`,
74
- `import { __bundleUrl__ } from ${JSON.stringify("../set-path.js")}`,
69
+ `import { __bundleUrl__ } from ${JSON.stringify('../set-path.js')}`,
75
70
  `export default __bundleUrl__ + path;`,
76
- ].join("\n"),
71
+ ].join('\n'),
77
72
  }));
78
73
 
79
- build.onLoad({ filter: /.*/, namespace: "ref-binary" }, async (args) => ({
80
- contents: await readFile(args.path),
81
- loader: "file",
74
+ build.onLoad({ filter: /.*/, namespace: 'ref-binary' }, async (args) => ({
75
+ contents: (await readFile(args.path)) as unknown as Uint8Array,
76
+ loader: 'file',
82
77
  }));
83
78
  },
84
79
  });
package/lib/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Plugin } from "esbuild";
2
- interface AutoPathPluginOptions {
3
- defaultExtensions?: Array<string>;
4
- }
5
- export declare const autoPathPlugin: (options?: AutoPathPluginOptions) => Plugin;
6
- export {};
package/lib/index.js DELETED
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.autoPathPlugin = void 0;
4
- const promises_1 = require("fs/promises");
5
- const path_1 = require("path");
6
- const fallbackExtensions = [
7
- ".png",
8
- ".svg",
9
- ".jpg",
10
- ".jpeg",
11
- ".webp",
12
- ".mp4",
13
- ".mp3",
14
- ".ogg",
15
- ".wav",
16
- ".ogv",
17
- ".wasm",
18
- ".gif",
19
- ];
20
- function makeExtensions(extensions = fallbackExtensions) {
21
- return extensions.reduce((obj, ext) => {
22
- obj[ext] = "file";
23
- return obj;
24
- }, {});
25
- }
26
- const autoPathPlugin = (options = {}) => ({
27
- name: "auto-path-plugin",
28
- setup(build) {
29
- const { loader = makeExtensions(options.defaultExtensions) } = build.initialOptions;
30
- const extensions = [];
31
- for (const ext of Object.keys(loader)) {
32
- const l = loader[ext];
33
- if (l === "file") {
34
- extensions.push(ext);
35
- delete loader[ext];
36
- }
37
- }
38
- const filter = new RegExp(`(${extensions.map((ext) => `\\${ext}`).join("|")})$`);
39
- build.onResolve({ filter }, (args) => {
40
- if (args.namespace === "ref-stub") {
41
- return {
42
- path: args.path,
43
- namespace: "ref-binary",
44
- };
45
- }
46
- else if (args.resolveDir !== "") {
47
- return {
48
- path: (0, path_1.isAbsolute)(args.path)
49
- ? args.path
50
- : (0, path_1.join)(args.resolveDir, args.path),
51
- // for CSS we'll just use the path; no intermediate module needed
52
- namespace: args.kind === "url-token" ? "ref-binary" : "ref-stub",
53
- };
54
- }
55
- else {
56
- return; // Ignore unresolvable paths
57
- }
58
- });
59
- build.onLoad({ filter: /.*/, namespace: "ref-stub" }, async (args) => ({
60
- resolveDir: (0, path_1.resolve)(__dirname),
61
- contents: [
62
- `import path from ${JSON.stringify(args.path)}`,
63
- `import { __bundleUrl__ } from ${JSON.stringify("../set-path.js")}`,
64
- `export default __bundleUrl__ + path;`,
65
- ].join("\n"),
66
- }));
67
- build.onLoad({ filter: /.*/, namespace: "ref-binary" }, async (args) => ({
68
- contents: await (0, promises_1.readFile)(args.path),
69
- loader: "file",
70
- }));
71
- },
72
- });
73
- exports.autoPathPlugin = autoPathPlugin;
74
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}