Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions build/compress_binding.mjs

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions build/decompress_binding.mjs

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions compress.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import init from './build/compress_binding.mjs';

const _modulePromise = init();

function _compress(module, buffer) {
const result = module.compress(buffer);
if (result === false) throw new Error('ConvertTTFToWOFF2 failed');
return result;
}

export default async function compress (buffer) {
const module = await _modulePromise;
return _compress(module, buffer);
}

export async function getCompressSync() {
const module = await _modulePromise;
function compressSync(buffer) {
return _compress(module, buffer);
}
return compressSync;
}
22 changes: 22 additions & 0 deletions decompress.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import init from './build/decompress_binding.mjs';

const _modulePromise = init();

function _decompress(module, buffer) {
const result = module.decompress(buffer);
if (result === false) throw new Error('ConvertWOFF2ToTTF failed');
return result;
}

export default async function decompress (buffer) {
const module = await _modulePromise;
return _decompress(module, buffer);
}

export async function getDecompressSync() {
const module = await _modulePromise;
function decompressSync(buffer) {
return _decompress(module, buffer);
}
return decompressSync;
}
24 changes: 21 additions & 3 deletions src/Makefile
Original file line number Diff line number Diff line change
@@ -1,25 +1,43 @@
CARGS=--bind -s NODEJS_CATCH_REJECTION=0 -s NODEJS_CATCH_EXIT=0 -s ALLOW_MEMORY_GROWTH=1 -s SINGLE_FILE=1 -O3
CARGS=--bind -s ALLOW_MEMORY_GROWTH=1 -s SINGLE_FILE=1 -O3
UMDARGS=-s NODEJS_CATCH_REJECTION=0 -s NODEJS_CATCH_EXIT=0
ES6ARGS=-s MODULARIZE=1 -s EXPORT_ES6=1
FIXTURES=/src/wawoff2/test/fixtures

all:
mkdir -p /src/wawoff2/build

emcc $(CARGS) -I/src/woff2/include/ \
emcc $(CARGS) $(UMDARGS) -I/src/woff2/include/ \
-o /src/wawoff2/build/compress_binding.js \
/src/wawoff2/src/compress_binding.cc \
/src/build/woff2-wasm/libwoff2enc.a \
/src/build/woff2-wasm/libwoff2common.a \
/src/build/brotli-wasm/libbrotlienc.a \
/src/build/brotli-wasm/libbrotlicommon.a

emcc $(CARGS) -I/src/woff2/include/ \
emcc $(CARGS) $(UMDARGS) -I/src/woff2/include/ \
-o /src/wawoff2/build/decompress_binding.js \
/src/wawoff2/src/decompress_binding.cc \
/src/build/woff2-wasm/libwoff2dec.a \
/src/build/woff2-wasm/libwoff2common.a \
/src/build/brotli-wasm/libbrotlidec.a \
/src/build/brotli-wasm/libbrotlicommon.a

emcc $(CARGS) $(ES6ARGS) -I/src/woff2/include/ \
-o /src/wawoff2/build/compress_binding.mjs \
/src/wawoff2/src/compress_binding.cc \
/src/build/woff2-wasm/libwoff2enc.a \
/src/build/woff2-wasm/libwoff2common.a \
/src/build/brotli-wasm/libbrotlienc.a \
/src/build/brotli-wasm/libbrotlicommon.a

emcc $(CARGS) $(ES6ARGS) -I/src/woff2/include/ \
-o /src/wawoff2/build/decompress_binding.mjs \
/src/wawoff2/src/decompress_binding.cc \
/src/build/woff2-wasm/libwoff2dec.a \
/src/build/woff2-wasm/libwoff2common.a \
/src/build/brotli-wasm/libbrotlidec.a \
/src/build/brotli-wasm/libbrotlicommon.a

/src/build/woff2-native/woff2_compress $(FIXTURES)/sample.ttf
mv $(FIXTURES)/sample.woff2 $(FIXTURES)/sample_compressed.woff2

Expand Down