@devcomfort/text-transcoder
Version:
61 lines (54 loc) • 8.19 kB
TypeScript
import { z } from 'zod';
/**
* ### List of text encodings supported by the `text-decoding` library
*
* This constant array includes various character encodings used world-wide for different languages and systems.
*/
declare const encodings: readonly ["unicode-1-1-utf-8", "utf-8", "utf8", "UTF-8", "IBM866", "866", "cp866", "csibm866", "ibm866", "ISO-8859-2", "csisolatin2", "iso-8859-2", "iso-ir-101", "iso8859-2", "iso88592", "iso_8859-2", "iso_8859-2:1987", "l2", "latin2", "ISO-8859-3", "csisolatin3", "iso-8859-3", "iso-ir-109", "iso8859-3", "iso88593", "iso_8859-3", "iso_8859-3:1988", "l3", "latin3", "ISO-8859-4", "csisolatin4", "iso-8859-4", "iso-ir-110", "iso8859-4", "iso88594", "iso_8859-4", "iso_8859-4:1988", "l4", "latin4", "ISO-8859-5", "csisolatincyrillic", "cyrillic", "iso-8859-5", "iso-ir-144", "iso8859-5", "iso88595", "iso_8859-5", "iso_8859-5:1988", "ISO-8859-6", "arabic", "asmo-708", "csiso88596e", "csiso88596i", "csisolatinarabic", "ecma-114", "iso-8859-6", "iso-8859-6-e", "iso-8859-6-i", "iso-ir-127", "iso8859-6", "iso88596", "iso_8859-6", "iso_8859-6:1987", "ISO-8859-7", "csisolatingreek", "ecma-118", "elot_928", "greek", "greek8", "iso-8859-7", "iso-ir-126", "iso8859-7", "iso88597", "iso_8859-7", "iso_8859-7:1987", "sun_eu_greek", "ISO-8859-8", "csiso88598e", "csisolatinhebrew", "hebrew", "iso-8859-8", "iso-8859-8-e", "iso-ir-138", "iso8859-8", "iso88598", "iso_8859-8", "iso_8859-8:1988", "visual", "ISO-8859-8-I", "csiso88598i", "iso-8859-8-i", "logical", "ISO-8859-10", "csisolatin6", "iso-8859-10", "iso-ir-157", "iso8859-10", "iso885910", "l6", "latin6", "ISO-8859-13", "iso-8859-13", "iso8859-13", "iso885913", "ISO-8859-14", "iso-8859-14", "iso8859-14", "iso885914", "ISO-8859-15", "csisolatin9", "iso-8859-15", "iso8859-15", "iso885915", "iso_8859-15", "l9", "ISO-8859-16", "iso-8859-16", "cskoi8r", "koi", "koi8", "koi8-r", "koi8_r", "KOI8-U", "koi8-ru", "koi8-u", "macintosh", "csmacintosh", "mac", "macintosh", "x-mac-roman", "windows-874", "dos-874", "iso-8859-11", "iso8859-11", "iso885911", "tis-620", "windows-1250", "cp1250", "x-cp1250", "windows-1251", "cp1251", "x-cp1251", "windows-1252", "ansi_x3.4-1968", "ascii", "cp1252", "cp819", "csisolatin1", "ibm819", "iso-8859-1", "iso-ir-100", "iso8859-1", "iso88591", "iso_8859-1", "iso_8859-1:1987", "l1", "latin1", "us-ascii", "x-cp1252", "cp1253", "windows-1253", "x-cp1253", "cp1254", "csisolatin5", "iso-8859-9", "iso-ir-148", "iso8859-9", "iso88599", "iso_8859-9", "iso_8859-9:1989", "l5", "latin5", "windows-1254", "x-cp1254", "cp1255", "windows-1255", "x-cp1255", "cp1256", "windows-1256", "x-cp1256", "cp1257", "windows-1257", "x-cp1257", "cp1258", "windows-1258", "x-cp1258", "x-mac-cyrillic", "x-mac-ukrainian", "chinese", "csgb2312", "csiso58gb231280", "gb2312", "gb_2312", "gb_2312-80", "gbk", "iso-ir-58", "x-gbk", "gb18030", "big5", "big5-hkscs", "cn-big5", "csbig5", "x-x-big5", "cseucpkdfmtjapanese", "euc-jp", "x-euc-jp", "csiso2022jp", "iso-2022-jp", "csshiftjis", "ms932", "ms_kanji", "shift-jis", "shift_jis", "sjis", "windows-31j", "x-sjis", "cseuckr", "csksc56011987", "euc-kr", "iso-ir-149", "korean", "ks_c_5601-1987", "ks_c_5601-1989", "ksc5601", "ksc_5601", "windows-949", "csiso2022kr", "hz-gb-2312", "iso-2022-cn", "iso-2022-cn-ext", "iso-2022-kr", "utf-16be", "utf-16", "utf-16le", "x-user-defined"];
/**
* ### Text Encoder Schema
*
* This creates a type that only allows encodings from the `encodings` list.
* It provides type safety and runtime validation for encoding values.
*/
declare const Encoding: z.ZodEnum<["unicode-1-1-utf-8", "utf-8", "utf8", "UTF-8", "IBM866", "866", "cp866", "csibm866", "ibm866", "ISO-8859-2", "csisolatin2", "iso-8859-2", "iso-ir-101", "iso8859-2", "iso88592", "iso_8859-2", "iso_8859-2:1987", "l2", "latin2", "ISO-8859-3", "csisolatin3", "iso-8859-3", "iso-ir-109", "iso8859-3", "iso88593", "iso_8859-3", "iso_8859-3:1988", "l3", "latin3", "ISO-8859-4", "csisolatin4", "iso-8859-4", "iso-ir-110", "iso8859-4", "iso88594", "iso_8859-4", "iso_8859-4:1988", "l4", "latin4", "ISO-8859-5", "csisolatincyrillic", "cyrillic", "iso-8859-5", "iso-ir-144", "iso8859-5", "iso88595", "iso_8859-5", "iso_8859-5:1988", "ISO-8859-6", "arabic", "asmo-708", "csiso88596e", "csiso88596i", "csisolatinarabic", "ecma-114", "iso-8859-6", "iso-8859-6-e", "iso-8859-6-i", "iso-ir-127", "iso8859-6", "iso88596", "iso_8859-6", "iso_8859-6:1987", "ISO-8859-7", "csisolatingreek", "ecma-118", "elot_928", "greek", "greek8", "iso-8859-7", "iso-ir-126", "iso8859-7", "iso88597", "iso_8859-7", "iso_8859-7:1987", "sun_eu_greek", "ISO-8859-8", "csiso88598e", "csisolatinhebrew", "hebrew", "iso-8859-8", "iso-8859-8-e", "iso-ir-138", "iso8859-8", "iso88598", "iso_8859-8", "iso_8859-8:1988", "visual", "ISO-8859-8-I", "csiso88598i", "iso-8859-8-i", "logical", "ISO-8859-10", "csisolatin6", "iso-8859-10", "iso-ir-157", "iso8859-10", "iso885910", "l6", "latin6", "ISO-8859-13", "iso-8859-13", "iso8859-13", "iso885913", "ISO-8859-14", "iso-8859-14", "iso8859-14", "iso885914", "ISO-8859-15", "csisolatin9", "iso-8859-15", "iso8859-15", "iso885915", "iso_8859-15", "l9", "ISO-8859-16", "iso-8859-16", "cskoi8r", "koi", "koi8", "koi8-r", "koi8_r", "KOI8-U", "koi8-ru", "koi8-u", "macintosh", "csmacintosh", "mac", "macintosh", "x-mac-roman", "windows-874", "dos-874", "iso-8859-11", "iso8859-11", "iso885911", "tis-620", "windows-1250", "cp1250", "x-cp1250", "windows-1251", "cp1251", "x-cp1251", "windows-1252", "ansi_x3.4-1968", "ascii", "cp1252", "cp819", "csisolatin1", "ibm819", "iso-8859-1", "iso-ir-100", "iso8859-1", "iso88591", "iso_8859-1", "iso_8859-1:1987", "l1", "latin1", "us-ascii", "x-cp1252", "cp1253", "windows-1253", "x-cp1253", "cp1254", "csisolatin5", "iso-8859-9", "iso-ir-148", "iso8859-9", "iso88599", "iso_8859-9", "iso_8859-9:1989", "l5", "latin5", "windows-1254", "x-cp1254", "cp1255", "windows-1255", "x-cp1255", "cp1256", "windows-1256", "x-cp1256", "cp1257", "windows-1257", "x-cp1257", "cp1258", "windows-1258", "x-cp1258", "x-mac-cyrillic", "x-mac-ukrainian", "chinese", "csgb2312", "csiso58gb231280", "gb2312", "gb_2312", "gb_2312-80", "gbk", "iso-ir-58", "x-gbk", "gb18030", "big5", "big5-hkscs", "cn-big5", "csbig5", "x-x-big5", "cseucpkdfmtjapanese", "euc-jp", "x-euc-jp", "csiso2022jp", "iso-2022-jp", "csshiftjis", "ms932", "ms_kanji", "shift-jis", "shift_jis", "sjis", "windows-31j", "x-sjis", "cseuckr", "csksc56011987", "euc-kr", "iso-ir-149", "korean", "ks_c_5601-1987", "ks_c_5601-1989", "ksc5601", "ksc_5601", "windows-949", "csiso2022kr", "hz-gb-2312", "iso-2022-cn", "iso-2022-cn-ext", "iso-2022-kr", "utf-16be", "utf-16", "utf-16le", "x-user-defined"]>;
/**
* ### Typoe of text encodings supported by the `text-decoding` library
*
* This constant array includes various character encodings used world-wide for different languages and systems.
*/
type TEncoding = z.infer<typeof Encoding>;
/**
* Checks if the given string is a supported encoding
*
* This function uses Zod's safeParse method to validate
* if the input string matches any of the supported encodings
* defined in the Encoding schema.
*
* @param text - The string to check
* @returns true if the string is a supported encoding, false otherwise
*
* @example
* isSupportedEncoding("utf-8") // returns true
* isSupportedEncoding("invalid-encoding") // returns false
*/
declare function isSupportedEncoding(text: string): text is TEncoding;
/**
* Transcodes a string from one encoding to another
*
* @param str - The string to transcode
* @param start - The starting encoding of the input string
* @param end - The desired ending encoding for the output string
* @returns {string} The transcoded string
*
* @example
* transcode("Hello", "UTF-8", "ASCII")
*
* @remarks
* This function uses TextEncoder and TextDecoder from the text-decoding library.
* It first encodes the input string using the start encoding, then decodes it
* using the end encoding. The NONSTANDARD_allowLegacyEncoding option is used
* to allow legacy encodings.
*/
declare function transcode(str: string, start: TEncoding, end: TEncoding): string;
export { Encoding, type TEncoding, encodings, isSupportedEncoding, transcode };