tahamajs/IE / Projects /front /node_modules /@zxing /text-encoding /es2015 /encoding /encoding-factory.js
| // This is free and unencumbered software released into the public domain. | |
| // See LICENSE.md for more information. | |
| import { Big5Decoder, Big5Encoder } from '../coders/big5'; | |
| import { EUCJPDecoder, EUCJPEncoder } from '../coders/euc-jp'; | |
| import { EUCKRDecoder, EUCKREncoder } from '../coders/euc-kr'; | |
| import { GB18030Decoder, GB18030Encoder } from '../coders/gb18030'; | |
| import { ISO2022JPDecoder, ISO2022JPEncoder } from '../coders/iso-2022-jp'; | |
| import { ShiftJISDecoder, ShiftJISEncoder } from '../coders/shift-jis'; | |
| import { SingleByteDecoder, SingleByteEncoder } from '../coders/single-byte'; | |
| import { UTF16Decoder, UTF16Encoder } from '../coders/utf-16'; | |
| import { UTF8Decoder, UTF8Encoder } from '../coders/utf-8'; | |
| import { XUserDefinedDecoder, XUserDefinedEncoder } from '../coders/x-user-defined'; | |
| import { encodings } from './encodings'; | |
| import { index } from './indexes'; | |
| import { getEncodingIndexes } from './encoding-indexes-provider'; | |
| // | |
| // Utilities | |
| // | |
| // import './encoding/utilities'; | |
| // | |
| // Implementation of Encoding specification | |
| // https://encoding.spec.whatwg.org/ | |
| // | |
| // | |
| // 4. Terminology | |
| // | |
| // import './encoding/terminology'; | |
| // | |
| // 5. Encodings | |
| // | |
| // import "./encoding/encodings"; | |
| // | |
| // 6. Indexes | |
| // | |
| // import './encoding/indexes'; | |
| const encodingIndexes = getEncodingIndexes(); | |
| // Registry of of encoder/decoder factories, by encoding name. | |
| /** @type {Object.<string, function({fatal:boolean}): Encoder>} */ | |
| // const encoders: Encoders = {}; | |
| /** @type {Object.<string, function({fatal:boolean}): Decoder>} */ | |
| // const decoders: Decoders = {}; | |
| // | |
| // 10. Legacy single-byte encodings | |
| // | |
| // 10.1 single-byte decoder | |
| // 10.2 single-byte encoder | |
| export const encoders = { | |
| // 9.1 utf-8 | |
| // 9.1.1 utf-8 decoder | |
| // 9.1.2 utf-8 encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'UTF-8': (options) => new UTF8Encoder(options), | |
| // | |
| // 11. Legacy multi-byte Chinese (simplified) encodings | |
| // | |
| // 11.1 gbk | |
| // 11.1.1 gbk decoder | |
| // gbk's decoder is gb18030's decoder. | |
| // 11.1.2 gbk encoder | |
| // gbk's encoder is gb18030's encoder with its gbk flag set. | |
| /** @param {{fatal: boolean}} options */ | |
| 'GBK': (options) => new GB18030Encoder(options, true), | |
| // 11.2 gb18030 | |
| // 11.2.1 gb18030 decoder | |
| // 11.2.2 gb18030 encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'gb18030': (options) => new GB18030Encoder(options), | |
| // | |
| // 12. Legacy multi-byte Chinese (traditional) encodings | |
| // | |
| // 12.1 Big5 | |
| // 12.1.1 Big5 decoder | |
| // 12.1.2 Big5 encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'Big5': (options) => new Big5Encoder(options), | |
| // | |
| // 13. Legacy multi-byte Japanese encodings | |
| // | |
| // 13.1 euc-jp | |
| // 13.1.1 euc-jp decoder | |
| // 13.1.2 euc-jp encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'EUC-JP': (options) => new EUCJPEncoder(options), | |
| // 13.2 iso-2022-jp | |
| // 13.2.1 iso-2022-jp decoder | |
| // 13.2.2 iso-2022-jp encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'ISO-2022-JP': (options) => new ISO2022JPEncoder(options), | |
| // 13.3 Shift_JIS | |
| // 13.3.1 Shift_JIS decoder | |
| // 13.3.2 Shift_JIS encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'Shift_JIS': (options) => new ShiftJISEncoder(options), | |
| // | |
| // 14. Legacy multi-byte Korean encodings | |
| // | |
| // 14.1 euc-kr | |
| // 14.1.1 euc-kr decoder | |
| // 14.1.2 euc-kr encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'EUC-KR': (options) => new EUCKREncoder(options), | |
| // | |
| // 15. Legacy miscellaneous encodings | |
| // | |
| // 15.1 replacement | |
| // Not needed - API throws RangeError | |
| // 15.2 Common infrastructure for utf-16be and utf-16le | |
| // 15.2.1 shared utf-16 decoder | |
| // 15.2.2 shared utf-16 encoder | |
| // 15.3 utf-16be | |
| // 15.3.1 utf-16be decoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'UTF-16BE': (options) => new UTF16Encoder(true, options), | |
| // 15.3.2 utf-16be encoder | |
| // 15.4 utf-16le | |
| // 15.4.1 utf-16le decoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'UTF-16LE': (options) => new UTF16Encoder(false, options), | |
| // 15.4.2 utf-16le encoder | |
| // 15.5 x-user-defined | |
| // 15.5.1 x-user-defined decoder | |
| // 15.5.2 x-user-defined encoder | |
| /** @param {{fatal: boolean}} options */ | |
| 'x-user-defined': (options) => new XUserDefinedEncoder(options), | |
| }; | |
| export const decoders = { | |
| /** @param {{fatal: boolean}} options */ | |
| 'UTF-8': (options) => new UTF8Decoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'GBK': (options) => new GB18030Decoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'gb18030': (options) => new GB18030Decoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'Big5': (options) => new Big5Decoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'EUC-JP': (options) => new EUCJPDecoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'ISO-2022-JP': (options) => new ISO2022JPDecoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'Shift_JIS': (options) => new ShiftJISDecoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'EUC-KR': (options) => new EUCKRDecoder(options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'UTF-16BE': (options) => new UTF16Decoder(true, options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'UTF-16LE': (options) => new UTF16Decoder(false, options), | |
| /** @param {{fatal: boolean}} options */ | |
| 'x-user-defined': (options) => new XUserDefinedDecoder(options), | |
| }; | |
| if (encodingIndexes) { | |
| encodings.forEach(function (category) { | |
| if (category.heading !== 'Legacy single-byte encodings') | |
| return; | |
| category.encodings.forEach(function (encoding) { | |
| const name = encoding.name; | |
| const idx = index(name.toLowerCase()); | |
| /** @param {{fatal: boolean}} options */ | |
| decoders[name] = function (options) { | |
| return new SingleByteDecoder(idx, options); | |
| }; | |
| /** @param {{fatal: boolean}} options */ | |
| encoders[name] = function (options) { | |
| return new SingleByteEncoder(idx, options); | |
| }; | |
| }); | |
| }); | |
| } | |
| //# sourceMappingURL=encoding-factory.js.map |
Xet Storage Details
- Size:
- 6.24 kB
- Xet hash:
- e54222307f10b6c94432a113993e076206602a8325ce265b9668aef4e28da720
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.