Files
orca/mobile/modules/orca-gzip-utf8-codec/ios/OrcaGzipUtf8CodecModule.swift

22 lines
727 B
Swift

import ExpoModulesCore
// Sync avoids a thread hop when reading Uint8Array; each window takes only a few ms.
public class OrcaGzipUtf8CodecModule: Module {
public func definition() -> ModuleDefinition {
Name("OrcaGzipUtf8Codec")
Function("gunzip") { (input: Data, outputLimit: Int) throws -> Data in
try gunzipBounded(input, outputLimit: outputLimit)
}
Function("decodeUtf8") { (input: Data) -> String? in
decodeStrictUtf8(input)
}
// Async: a whole bundle asset can take tens of ms, too long to hold the JS thread.
AsyncFunction("brotliDecompress") { (input: Data, outputLimit: Int) throws -> Data in
try brotliDecompressBounded(input, outputLimit: outputLimit)
}
}
}