UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

56 lines 3.74 kB
export class PipeConverterBuilder { constructor(aliases = {}) { this.aliases = aliases; } pipe(converter) { return new PipeConverter([], this.aliases).pipe(converter); } } /** * Pipe multiple converter one after another */ export class PipeConverter { constructor(converters, aliases = {}) { this.converters = converters; this.aliases = aliases; } decode(body) { let output = body; for (let converter of this.converters) { if (typeof converter == 'function') { output = converter(output); } else { output = converter.decode(output); } } return output; } encode(value) { let output = value; const reversedConverters = [...this.converters].reverse(); for (let converter of reversedConverters) { if (typeof converter == 'function') { output = converter(output); } else { output = converter.encode(output); } } return output; } pipe(converter) { if (typeof converter === 'string') { if (!(converter in this.aliases)) { throw new Error(`Illegal argument, missing converter id: ${converter}`); } converter = this.aliases[converter]; } this.converters.push(converter); return this; } static pipe(converter) { return new PipeConverter([converter], {}); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9jbGllbnQvaW1wbC9zcmMvbGliL2NvbnZlcnRlci9ib2R5L3BpcGUtY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDUyxVQUEwRCxFQUFFO1FBQTVELFlBQU8sR0FBUCxPQUFPLENBQXFEO0lBQ2xFLENBQUM7SUFFRyxJQUFJLENBQUksU0FBb0Q7UUFDakUsT0FBTyxJQUFJLGFBQWEsQ0FBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBSSxTQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNTLFVBQXlDLEVBQ3pDLFVBQTBELEVBQUU7UUFENUQsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsWUFBTyxHQUFQLE9BQU8sQ0FBcUQ7SUFDbEUsQ0FBQztJQUVKLE1BQU0sQ0FBQyxJQUFnQjtRQUNyQixJQUFJLE1BQU0sR0FBUSxJQUFJLENBQUM7UUFDdkIsS0FBSyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3JDLElBQUksT0FBTyxTQUFTLElBQUksVUFBVSxFQUFFO2dCQUNsQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ25DO1NBQ0Y7UUFDRCxPQUFPLE1BQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVE7UUFDYixJQUFJLE1BQU0sR0FBUSxLQUFLLENBQUM7UUFDeEIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFELEtBQUssSUFBSSxTQUFTLElBQUksa0JBQWtCLEVBQUU7WUFDeEMsSUFBSSxPQUFPLFNBQVMsSUFBSSxVQUFVLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkM7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxJQUFJLENBQ1QsU0FBb0Q7UUFFcEQsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsU0FBUyxFQUFFLENBQUMsQ0FBQzthQUN6RTtZQUNELFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFXLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUksU0FBMkM7UUFDL0QsT0FBTyxJQUFJLGFBQWEsQ0FBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiJ9