UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

52 lines 3.73 kB
import { Buffer } from 'buffer'; export class StringConverter { constructor(encoding = 'ascii', options = { stripEndOfStringCharacter: true, replaceEmptyStringWithEndOfLineChar: false, addEndOfStringCharacter: false, }) { this.encoding = encoding; this.options = options; } encode(value) { if (typeof value === 'number') { value = value.toString(); } if (typeof value !== 'string') { value = ''; } if (this.options.addEndOfStringCharacter) { value += '\0'; } else if (!value && this.options.replaceEmptyStringWithEndOfLineChar) { return Uint8Array.from([0]); } let buffer = Buffer.from(value, this.encoding); return Uint8Array.from(buffer); } decode(value) { let str = Buffer.from(value).toString(this.encoding); if (this.options.stripEndOfStringCharacter) { const indexOfEndOfString = str.indexOf('\0'); if (indexOfEndOfString >= 0) { str = str.substring(0, indexOfEndOfString); } } return str; } /** * Get ascii instance * @deprecated use constructor instead */ static ascii() { if (!StringConverter._ascii) { StringConverter._ascii = new StringConverter('ascii', { replaceEmptyStringWithEndOfLineChar: true, stripEndOfStringCharacter: true, }); } return StringConverter._ascii; } } StringConverter._ascii = undefined; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2NsaWVudC9pbXBsL3NyYy9saWIvY29udmVydGVyL2JvZHkvc3RyaW5nLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFxQixNQUFNLFFBQVEsQ0FBQztBQUVuRCxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUNTLFdBQThCLE9BQU8sRUFDckMsVUFjSDtRQUNGLHlCQUF5QixFQUFFLElBQUk7UUFDL0IsbUNBQW1DLEVBQUUsS0FBSztRQUMxQyx1QkFBdUIsRUFBRSxLQUFLO0tBQy9CO1FBbkJNLGFBQVEsR0FBUixRQUFRLENBQTZCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBa0JiO0lBQ0EsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLEtBQUssR0FBSSxLQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNaO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ3hDLEtBQUssSUFBSSxJQUFJLENBQUM7U0FDZjthQUFNLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsRUFBRTtZQUNyRSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWlCO1FBQ3RCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUU7WUFDMUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksa0JBQWtCLElBQUksQ0FBQyxFQUFFO2dCQUMzQixHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQzthQUM1QztTQUNGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEtBQUs7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BELG1DQUFtQyxFQUFFLElBQUk7Z0JBQ3pDLHlCQUF5QixFQUFFLElBQUk7YUFDaEMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQzs7QUFoRWMsc0JBQU0sR0FBcUIsU0FBUyxDQUFDIn0=