wasm-rquickjs 0.2.3

Tool for wrapping JavaScript modules as WebAssembly components using the QuickJS engine
Documentation
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.

export function normalizeEncoding(enc) {
    if (enc == null || enc === "utf8" || enc === "utf-8") return "utf8";
    return slowCases(enc);
}

export function slowCases(enc) {
    switch (enc.length) {
        case 4:
            if (enc === "UTF8") return "utf8";
            if (enc === "ucs2" || enc === "UCS2") return "utf16le";
            enc = `${enc}`.toLowerCase();
            if (enc === "utf8") return "utf8";
            if (enc === "ucs2") return "utf16le";
            break;
        case 3:
            if (
                enc === "hex" || enc === "HEX" ||
                `${enc}`.toLowerCase() === "hex"
            ) {
                return "hex";
            }
            break;
        case 5:
            if (enc === "ascii") return "ascii";
            if (enc === "ucs-2") return "utf16le";
            if (enc === "UTF-8") return "utf8";
            if (enc === "ASCII") return "ascii";
            if (enc === "UCS-2") return "utf16le";
            enc = `${enc}`.toLowerCase();
            if (enc === "utf-8") return "utf8";
            if (enc === "ascii") return "ascii";
            if (enc === "ucs-2") return "utf16le";
            break;
        case 6:
            if (enc === "base64") return "base64";
            if (enc === "latin1" || enc === "binary") return "latin1";
            if (enc === "BASE64") return "base64";
            if (enc === "LATIN1" || enc === "BINARY") return "latin1";
            enc = `${enc}`.toLowerCase();
            if (enc === "base64") return "base64";
            if (enc === "latin1" || enc === "binary") return "latin1";
            break;
        case 7:
            if (
                enc === "utf16le" || enc === "UTF16LE" ||
                `${enc}`.toLowerCase() === "utf16le"
            ) {
                return "utf16le";
            }
            break;
        case 8:
            if (
                enc === "utf-16le" || enc === "UTF-16LE" ||
                `${enc}`.toLowerCase() === "utf-16le"
            ) {
                return "utf16le";
            }
            break;
        case 9:
            if (
                enc === "base64url" || enc === "BASE64URL" ||
                `${enc}`.toLowerCase() === "base64url"
            ) {
                return "base64url";
            }
            break;
        default:
            if (enc === "") return "utf8";
    }
}