@datastream/compress
Advanced tools
+15
-5
| import { createTransformStream } from "@datastream/core"; | ||
| import brotliPromise from "brotli-wasm"; | ||
| const { CompressStream, DecompressStream } = await brotliPromise; | ||
| const { CompressStream, DecompressStream, BrotliStreamResult } = await brotliPromise; | ||
| const brotliCompressStream = ({ quality } = {}, streamOptions) => { | ||
| const engine = new CompressStream(quality ?? 11); | ||
| const transform = (chunk) => { | ||
| return engine.compress(chunk); | ||
| const transform = (chunk, enqueue) => { | ||
| enqueue(engine.compress(chunk)); | ||
| }; | ||
| streamOptions.flush = (enqueue) => { | ||
| if (engine.result() === BrotliStreamResult.NeedsMoreInput) { | ||
| enqueue(engine.compress(void 0, 100)); | ||
| } | ||
| }; | ||
| return createTransformStream(transform, streamOptions); | ||
@@ -13,5 +18,10 @@ }; | ||
| const engine = new DecompressStream(); | ||
| const transform = (chunk) => { | ||
| return engine.decompress(chunk); | ||
| const transform = (chunk, enqueue) => { | ||
| enqueue(engine.decompress(chunk)); | ||
| }; | ||
| streamOptions.flush = (enqueue) => { | ||
| if (engine.result() === BrotliStreamResult.NeedsMoreInput) { | ||
| enqueue(engine.decompress(void 0, 100)); | ||
| } | ||
| }; | ||
| return createTransformStream(transform, streamOptions); | ||
@@ -18,0 +28,0 @@ }; |
| { | ||
| "version": 3, | ||
| "sources": ["brotli.web.js"], | ||
| "sourcesContent": ["// CompressionStream\n// - https://caniuse.com/?search=CompressionStream\n// - doesn't support `br` - https://github.com/httptoolkit/brotli-wasm\n// - not supported on firefox - https://bugzilla.mozilla.org/show_bug.cgi?id=1586639\n// - not supported in safari\nimport { createTransformStream } from '@datastream/core'\nimport brotliPromise from 'brotli-wasm' // Import the default export\nconst { CompressStream, DecompressStream } = await brotliPromise // Import is async in browsers due to wasm requirements!\n\n// https://github.com/httptoolkit/brotli-wasm/issues/14\nexport const brotliCompressStream = ({ quality } = {}, streamOptions) => {\n const engine = new CompressStream(quality ?? 11)\n const transform = (chunk) => {\n return engine.compress(chunk)\n }\n return createTransformStream(transform, streamOptions)\n}\nexport const brotliDecompressStream = (options, streamOptions) => {\n const engine = new DecompressStream()\n const transform = (chunk) => {\n return engine.decompress(chunk)\n }\n return createTransformStream(transform, streamOptions)\n}\n\nexport default {\n compressStream: brotliCompressStream,\n decompressStream: brotliDecompressStream\n}\n"], | ||
| "mappings": "AAKA,SAAS,6BAA6B;AACtC,OAAO,mBAAmB;AAC1B,MAAM,EAAE,gBAAgB,iBAAiB,IAAI,MAAM;AAG5C,MAAM,uBAAuB,CAAC,EAAE,QAAQ,IAAI,CAAC,GAAG,kBAAkB;AACvE,QAAM,SAAS,IAAI,eAAe,WAAW,EAAE;AAC/C,QAAM,YAAY,CAAC,UAAU;AAC3B,WAAO,OAAO,SAAS,KAAK;AAAA,EAC9B;AACA,SAAO,sBAAsB,WAAW,aAAa;AACvD;AACO,MAAM,yBAAyB,CAAC,SAAS,kBAAkB;AAChE,QAAM,SAAS,IAAI,iBAAiB;AACpC,QAAM,YAAY,CAAC,UAAU;AAC3B,WAAO,OAAO,WAAW,KAAK;AAAA,EAChC;AACA,SAAO,sBAAsB,WAAW,aAAa;AACvD;AAEA,IAAO,qBAAQ;AAAA,EACb,gBAAgB;AAAA,EAChB,kBAAkB;AACpB;", | ||
| "sourcesContent": ["// CompressionStream\n// - https://caniuse.com/?search=CompressionStream\n// - doesn't support `br` - https://github.com/httptoolkit/brotli-wasm\n// - not supported on firefox - https://bugzilla.mozilla.org/show_bug.cgi?id=1586639\n// - not supported in safari\nimport { createTransformStream } from '@datastream/core'\nimport brotliPromise from 'brotli-wasm' // Import the default export\nconst { CompressStream, DecompressStream, BrotliStreamResult } =\n await brotliPromise // Import is async in browsers due to wasm requirements!\n\n// https://github.com/httptoolkit/brotli-wasm/issues/14\nexport const brotliCompressStream = ({ quality } = {}, streamOptions) => {\n const engine = new CompressStream(quality ?? 11)\n const transform = (chunk, enqueue) => {\n enqueue(engine.compress(chunk))\n }\n streamOptions.flush = (enqueue) => {\n if (engine.result() === BrotliStreamResult.NeedsMoreInput) {\n enqueue(engine.compress(undefined, 100))\n }\n }\n return createTransformStream(transform, streamOptions)\n}\nexport const brotliDecompressStream = (options, streamOptions) => {\n const engine = new DecompressStream()\n const transform = (chunk, enqueue) => {\n enqueue(engine.decompress(chunk))\n }\n streamOptions.flush = (enqueue) => {\n if (engine.result() === BrotliStreamResult.NeedsMoreInput) {\n enqueue(engine.decompress(undefined, 100))\n }\n }\n return createTransformStream(transform, streamOptions)\n}\n\nexport default {\n compressStream: brotliCompressStream,\n decompressStream: brotliDecompressStream\n}\n"], | ||
| "mappings": "AAKA,SAAS,6BAA6B;AACtC,OAAO,mBAAmB;AAC1B,MAAM,EAAE,gBAAgB,kBAAkB,mBAAmB,IAC3D,MAAM;AAGD,MAAM,uBAAuB,CAAC,EAAE,QAAQ,IAAI,CAAC,GAAG,kBAAkB;AACvE,QAAM,SAAS,IAAI,eAAe,WAAW,EAAE;AAC/C,QAAM,YAAY,CAAC,OAAO,YAAY;AACpC,YAAQ,OAAO,SAAS,KAAK,CAAC;AAAA,EAChC;AACA,gBAAc,QAAQ,CAAC,YAAY;AACjC,QAAI,OAAO,OAAO,MAAM,mBAAmB,gBAAgB;AACzD,cAAQ,OAAO,SAAS,QAAW,GAAG,CAAC;AAAA,IACzC;AAAA,EACF;AACA,SAAO,sBAAsB,WAAW,aAAa;AACvD;AACO,MAAM,yBAAyB,CAAC,SAAS,kBAAkB;AAChE,QAAM,SAAS,IAAI,iBAAiB;AACpC,QAAM,YAAY,CAAC,OAAO,YAAY;AACpC,YAAQ,OAAO,WAAW,KAAK,CAAC;AAAA,EAClC;AACA,gBAAc,QAAQ,CAAC,YAAY;AACjC,QAAI,OAAO,OAAO,MAAM,mBAAmB,gBAAgB;AACzD,cAAQ,OAAO,WAAW,QAAW,GAAG,CAAC;AAAA,IAC3C;AAAA,EACF;AACA,SAAO,sBAAsB,WAAW,aAAa;AACvD;AAEA,IAAO,qBAAQ;AAAA,EACb,gBAAgB;AAAA,EAChB,kBAAkB;AACpB;", | ||
| "names": [] | ||
| } |
+4
-4
| { | ||
| "name": "@datastream/compress", | ||
| "version": "0.0.6", | ||
| "version": "0.0.7", | ||
| "description": "", | ||
@@ -168,7 +168,7 @@ "type": "module", | ||
| "dependencies": { | ||
| "@datastream/compress": "0.0.6", | ||
| "@datastream/core": "0.0.6", | ||
| "@datastream/compression": "file:./", | ||
| "@datastream/core": "0.0.7", | ||
| "brotli-wasm": "1.3.0" | ||
| }, | ||
| "gitHead": "2aa29caed5b1f2950d379c4f09b1e6046cd4ac32" | ||
| "gitHead": "0944e32006ed25dd98dfd4b8ad759a919eecac50" | ||
| } |
31727
3.33%370
2.78%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
Updated