From 1174a319f10724bf9e3610705dc061bbeebb5f20 Mon Sep 17 00:00:00 2001 From: Joshua Byrd Date: Thu, 23 Apr 2026 14:20:58 +1000 Subject: [PATCH] Support script type module --- package-lock.json | 20 ++++++++++++++++---- package.json | 1 + src/index.ts | 4 ++-- src/main.ts | 8 +++++++- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6289687..c1e531d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@size-limit/esbuild-why": "^8.2.4", "@size-limit/preset-small-lib": "^8.2.4", "@types/jest": "^29.5.1", + "@types/node": "^25.6.0", "@typescript-eslint/eslint-plugin": "^5.59.2", "eslint": "^8.39.0", "husky": "^8.0.3", @@ -1863,10 +1864,14 @@ "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==", - "dev": true + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.19.0" + } }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -9078,6 +9083,13 @@ "node": ">=12.20" } }, + "node_modules/undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "dev": true, + "license": "MIT" + }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", diff --git a/package.json b/package.json index 20a48bb..64884d6 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "@size-limit/esbuild-why": "^8.2.4", "@size-limit/preset-small-lib": "^8.2.4", "@types/jest": "^29.5.1", + "@types/node": "^25.6.0", "@typescript-eslint/eslint-plugin": "^5.59.2", "eslint": "^8.39.0", "husky": "^8.0.3", diff --git a/src/index.ts b/src/index.ts index 458f0ae..be5e415 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,7 +11,7 @@ export const domainMatcher = /^(www|newsapp)\.abc\.net\.au$/; // Checks if a proxy is requested for this project and loads it if required. // The returned promise will only resolve if no proxy is loaded. -export const proxy = (project: string) => +export const proxy = (project: string, options: { type?: string } = {}) => new Promise((resolve, reject) => { // Never run on live/production. if ( @@ -24,6 +24,6 @@ export const proxy = (project: string) => // Load in a cheaky management keyboard shortcut import('./main').then(({ manager, init }) => { manager(); - init(project).then(resolve).catch(reject); + init(project, options).then(resolve).catch(reject); }); }); diff --git a/src/main.ts b/src/main.ts index e007b8b..e8ee628 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,7 +6,10 @@ declare global { } } -export const init = (project: string): Promise => { +export const init = ( + project: string, + options: { type?: string } = {} +): Promise => { return new Promise((resolve, reject) => { // If we're already in a dev environment, there's nothing to do here. if (process.env.NODE_ENV === 'development') { @@ -43,6 +46,9 @@ export const init = (project: string): Promise => { const scr = document.createElement('script'); scr.src = src; + if (options.type) { + scr.type = options.type; + } document.head.appendChild(scr); const msg = '[dev-proxy] Loaded script: ' + src + ` (${project})`; console.info(msg);