From 3b5eb6664f673c29d74cb7645e01dcbdf43c8343 Mon Sep 17 00:00:00 2001 From: harttle Date: Sun, 3 Oct 2021 21:21:35 +0800 Subject: [PATCH] fix: remove "stream" dependency in browser bundles, #396 --- rollup.config.ts | 31 ++++++++++++------------ src/emitters/streamed-emitter-browser.ts | 12 +++++++++ 2 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 src/emitters/streamed-emitter-browser.ts diff --git a/rollup.config.ts b/rollup.config.ts index e0f1a9d79..23ec216d0 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -14,6 +14,16 @@ const treeshake = { propertyReadSideEffects: false } const input = './src/liquid.ts' +const replaceFS = { + include: './src/liquid-options.ts', + delimiters: ['', ''], + './fs/node': './fs/browser' +} +const replaceStream = { + include: './src/render/render.ts', + delimiters: ['', ''], + '../emitters/streamed-emitter': '../emitters/streamed-emitter-browser' +} const nodeCjs = { output: [{ @@ -65,11 +75,8 @@ const browserEsm = { }], external: ['path', 'fs'], plugins: [ - replace({ - include: './src/liquid-options.ts', - delimiters: ['', ''], - './fs/node': './fs/browser' - }), + replace(replaceFS), + replace(replaceStream), typescript({ tsconfigOverride: { include: [ 'src' ], @@ -94,11 +101,8 @@ const browserUmd = { banner }], plugins: [ - replace({ - include: './src/liquid-options.ts', - delimiters: ['', ''], - './fs/node': './fs/browser' - }), + replace(replaceFS), + replace(replaceStream), typescript({ tsconfigOverride: { include: [ 'src' ], @@ -122,11 +126,8 @@ const browserMin = { sourcemap }], plugins: [ - replace({ - include: './src/liquid-options.ts', - delimiters: ['', ''], - './fs/node': './fs/browser' - }), + replace(replaceFS), + replace(replaceStream), typescript({ tsconfigOverride: { include: [ 'src' ], diff --git a/src/emitters/streamed-emitter-browser.ts b/src/emitters/streamed-emitter-browser.ts new file mode 100644 index 000000000..4931ba6a7 --- /dev/null +++ b/src/emitters/streamed-emitter-browser.ts @@ -0,0 +1,12 @@ +import { Emitter } from './emitter' + +export class StreamedEmitter implements Emitter { + public buffer = ''; + public stream: NodeJS.ReadableStream = null as any + constructor () { + throw new Error('streaming not supported in browser') + } + public write: (html: any) => void + public error: (err: Error) => void + public end: () => void +}