shader-minifier-wasm
Version:
Shader(GLSL) minifier using WebAssembly (powered by dotnet)
32 lines (31 loc) • 1.55 kB
JavaScript
import { createMinifier as internal } from "#AppBundle";
export async function createMinifier() {
const minifier = await internal();
return (sources, options = {}) => {
return minifier(Object.entries(sources).flat(), false, // version
options.outputName ?? "shader_code.h", // outputName
options.format ?? "c-variables", // outputFormat
options.verbose ?? false, // verbose
options.debug ?? false, // debug
options.fieldNames ?? "xyzw", // canonicalFieldNames
!!(options.preserveExternals || options.preserveAllGlobals), // preserveExternals
options.preserveAllGlobals ?? false, // preserveAllGlobals
options.hlsl ?? false, // hlsl
options.noInlining ?? false, // noInlining
options.noOverloading ?? false, // noOverloading
!!(options.aggressiveInlining && !options.noInlining), // aggroInlining
options.noSequence ?? false, // noSequence
options.noRenaming ?? false, // noRenaming
// noRenamingList
typeof options.noRenamingList === "string"
? options.noRenamingList.split(",")
: (options.noRenamingList ?? ["main", "mainImage"]), options.noRemoveUnused ?? false, // noRemoveUnused
options.moveDeclarations ?? false, // moveDeclarations
options.preprocess ?? false, // preprocess
options.exportKkpSymbolMaps ?? false);
};
}
export async function minify(sources, options = {}) {
const minifier = await createMinifier();
return minifier(sources, options);
}