UNPKG

emvco-qr-sdk

Version:

A robust TypeScript SDK for decoding, validating, and processing EMVCo-compliant QR codes used in digital payment systems.

31 lines (30 loc) 1.6 kB
"use strict"; /** * Provides handler functions for different QR parsing modes. * Each handler converts TLV entities into a structure based on the selected strategy. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.getNamedHandler = exports.PARSE_MODE_HANDLERS = void 0; const qr_parse_mode_enum_1 = require("../../domain/enums/qr-parse-mode.enum"); const named_fields_mapper_1 = require("../mappers/named-fields.mapper"); const tlv_util_1 = require("../utils/resolvers/tlv.util"); const raw_object_mapper_service_1 = require("./raw-object-mapper.service"); /** * Map of handlers used to convert parsed TLVs into objects based on the QR parsing mode. */ exports.PARSE_MODE_HANDLERS = { [qr_parse_mode_enum_1.QRParseMode.TLV]: (tlvs) => tlvs, [qr_parse_mode_enum_1.QRParseMode.RAW_OBJECT]: (tlvs) => raw_object_mapper_service_1.RawObjectMapperService.map(tlvs), [qr_parse_mode_enum_1.QRParseMode.GLOBAL]: (tlvs) => named_fields_mapper_1.NamedFieldsMapper.map(tlvs, tlv_util_1.TLVUtil.getStandardName), [qr_parse_mode_enum_1.QRParseMode.CO]: (tlvs) => named_fields_mapper_1.NamedFieldsMapper.map(tlvs, tlv_util_1.TLVUtil.getColombianName, tlv_util_1.TLVUtil.getColombianSubtagName), }; /** * Returns the appropriate handler for mapping TLVs using named fields, restricted to GLOBAL or CO. * * @param mode - The QR parse mode to use (must be GLOBAL or CO). * @returns A function that maps TLVs to named key/value objects. */ const getNamedHandler = (mode) => { return exports.PARSE_MODE_HANDLERS[mode]; }; exports.getNamedHandler = getNamedHandler;