Add existing to tracked
This commit is contained in:
+64
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
Copyright (c) 2025 Gildas Lormeau. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. The names of the authors may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
||||
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
import { FUNCTION_TYPE } from "./core/constants.js";
|
||||
import { configure } from "./core/configuration.js";
|
||||
import { configureZlibModule } from "./core/zlib-streams-inline.js";
|
||||
import { configureWorker } from "./core/codec-worker.js";
|
||||
import { terminateWorkers } from "./core/codec-pool.js";
|
||||
import { initModule, resetWasmModule, CompressionStreamZlib, DecompressionStreamZlib } from "./core/streams/zlib-wasm/zlib-streams-loader.js";
|
||||
|
||||
let modulePromise;
|
||||
|
||||
configureZlibModule(configure);
|
||||
configureWorker({
|
||||
initModule: config => {
|
||||
if (!modulePromise) {
|
||||
let { wasmURI } = config;
|
||||
// deno-lint-ignore valid-typeof
|
||||
if (typeof wasmURI == FUNCTION_TYPE) {
|
||||
wasmURI = wasmURI();
|
||||
}
|
||||
modulePromise = initModule(wasmURI, config);
|
||||
|
||||
}
|
||||
return modulePromise;
|
||||
}
|
||||
});
|
||||
configure({
|
||||
CompressionStreamZlib,
|
||||
DecompressionStreamZlib
|
||||
});
|
||||
|
||||
export { terminateWorkersAndModule as terminateWorkers };
|
||||
|
||||
function terminateWorkersAndModule() {
|
||||
modulePromise = null;
|
||||
terminateWorkers();
|
||||
resetWasmModule();
|
||||
}
|
||||
Reference in New Issue
Block a user