diff --git a/Justfile b/Justfile index 9b6c4924..a6cdb625 100644 --- a/Justfile +++ b/Justfile @@ -104,7 +104,8 @@ js: {{ESBUILD}} ./src/Javascript/Brain/index.ts \ --outdir={{BUILD_DIR}}/js/brain/ \ --splitting \ - --alias:brain.elm.js={{BUILD_DIR}}/js/brain.elm.js + --alias:brain.elm.js={{BUILD_DIR}}/js/brain.elm.js \ + --inject:./system/Js/node-shims.js # Main {{ESBUILD}} ./src/Javascript/index.ts \ @@ -132,7 +133,8 @@ js-prod: --outdir={{BUILD_DIR}}/js/brain/ \ --splitting \ --minify \ - --alias:brain.elm.js={{BUILD_DIR}}/js/brain.elm.js + --alias:brain.elm.js={{BUILD_DIR}}/js/brain.elm.js \ + --inject:./system/Js/node-shims.js # Main {{ESBUILD}} ./src/Javascript/index.ts \ diff --git a/src/Javascript/processing.ts b/src/Javascript/processing.ts index 48aa8346..e4e0b1c2 100644 --- a/src/Javascript/processing.ts +++ b/src/Javascript/processing.ts @@ -78,8 +78,11 @@ export function getTags(headUrl, getUrl, filename, options) { tokenizer.fileInfo.mimeType = fileMime tokenizer.fileInfo.url = getUrl - tokenizer.rangeRequestClient.url = getUrl - tokenizer.rangeRequestClient.resolvedUrl = undefined + + if (tokenizer.rangeRequestClient) { + tokenizer.rangeRequestClient.url = getUrl + tokenizer.rangeRequestClient.resolvedUrl = undefined + } return musicMetadata.parseFromTokenizer( tokenizer, diff --git a/system/Js/node-shims.js b/system/Js/node-shims.js new file mode 100644 index 00000000..41a0baf0 --- /dev/null +++ b/system/Js/node-shims.js @@ -0,0 +1,10 @@ +import BufferPolyfill from "buffer/" + +export let Buffer = BufferPolyfill.Buffer +export let global = globalThis +export let process = { env: { NODE_DEBUG: false } } +export let localStorage = globalThis.localStorage || { + getItem: () => null, + setItem: () => null, + removeItem: () => null +}