@makakwastaken/ts-edifact
Version:
Edifact parser library
225 lines • 7.41 kB
JavaScript
"use strict";
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-non-null-assertion */
/**
* @author Roman Vottner
* @copyright 2020 Roman Vottner
* @license Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.sanitizeFloat = sanitizeFloat;
exports.toSegmentObject = toSegmentObject;
const util_1 = require("./util");
function sanitizeFloat(str, decimalSymbol) {
const updatedStr = str.replace(decimalSymbol, '.');
return Number.parseFloat(updatedStr);
}
/* istanbul ignore next */
function toSegmentObject(data, version, decimalSeparator) {
const formattedComponents = (0, util_1.formatComponents)(data.elements, data.name, decimalSeparator);
switch (data.name) {
case 'AJT':
return formattedComponents;
case 'ALC':
return formattedComponents;
case 'ALI':
return formattedComponents;
case 'APR':
return formattedComponents;
case 'ARD':
return formattedComponents;
case 'AUT':
return formattedComponents;
case 'BGM':
return formattedComponents;
case 'BUS':
return formattedComponents;
case 'CAV':
return formattedComponents;
case 'CCI':
return formattedComponents;
case 'CED':
return formattedComponents;
case 'CNT':
return formattedComponents;
case 'COD':
return formattedComponents;
case 'COM':
return formattedComponents;
case 'CPS':
return formattedComponents;
case 'CTA':
return formattedComponents;
case 'CUX':
return formattedComponents;
case 'DGS':
return formattedComponents;
case 'DLM':
return formattedComponents;
case 'DMS':
return formattedComponents;
case 'DOC':
return formattedComponents;
case 'DTM':
return formattedComponents;
case 'EFI':
return formattedComponents;
case 'EQA':
return formattedComponents;
case 'EQD':
return formattedComponents;
case 'ERC':
return formattedComponents;
case 'FII':
return formattedComponents;
case 'FTX':
return formattedComponents;
case 'GEI':
return formattedComponents;
case 'GIN':
return formattedComponents;
case 'GIR':
return formattedComponents;
case 'GIS': // removed since D02B
return formattedComponents;
case 'HAN':
return formattedComponents;
case 'HYN':
return formattedComponents;
case 'IDE':
return formattedComponents;
case 'IMD':
return formattedComponents;
case 'INP':
return formattedComponents;
case 'IRQ':
return formattedComponents;
case 'LIN':
return formattedComponents;
case 'LOC':
return formattedComponents;
case 'MEA':
return formattedComponents;
case 'MKS':
return formattedComponents;
case 'MOA':
return formattedComponents;
case 'MTD':
return formattedComponents;
case 'NAD':
return formattedComponents;
case 'PAC':
return formattedComponents;
case 'PAI':
return formattedComponents;
case 'PAT': // removed since D02B
return formattedComponents;
case 'PCD':
return formattedComponents;
case 'PCI':
return formattedComponents;
case 'PGI':
return formattedComponents;
case 'PIA':
return formattedComponents;
case 'PRI':
return formattedComponents;
case 'PYT':
return formattedComponents;
case 'QTY':
return formattedComponents;
case 'QVR':
return formattedComponents;
case 'RCS':
return formattedComponents;
case 'RFF':
return formattedComponents;
case 'RJL':
return formattedComponents;
case 'RNG':
return formattedComponents;
case 'RTE':
return formattedComponents;
case 'SEL':
return formattedComponents;
case 'SCC':
return formattedComponents;
case 'SEQ':
return formattedComponents;
case 'SGP':
return formattedComponents;
case 'STS':
return formattedComponents;
case 'TAX':
return formattedComponents;
case 'TDT': {
const lversion = version.toLowerCase();
if (lversion === 'd18b' ||
lversion === 'd18a' ||
lversion === 'd17b' ||
lversion === 'd17a' ||
lversion === 'd16b' ||
lversion === 'd16a' ||
lversion === 'd15b' ||
lversion === 'd15a' ||
lversion === 'd14b' ||
lversion === 'd14a' ||
lversion === 'd13b' ||
lversion === 'd13a' ||
lversion === 'd12b' ||
lversion === 'd12a' ||
lversion === 'd11b' ||
lversion === 'd11a') {
return formattedComponents;
}
if (version === 'd10b' ||
version === 'd10a' ||
lversion === 'd09b' ||
lversion === 'd09a' ||
lversion === 'd08b' ||
lversion === 'd08a' ||
lversion === 'd07b' ||
lversion === 'd07a' ||
lversion === 'd06b' ||
lversion === 'd06a' ||
lversion === 'd05b' ||
lversion === 'd05a' ||
lversion === 'd04b' ||
lversion === 'd04a' ||
lversion === 'd03b' ||
lversion === 'd03a' ||
lversion === 'd02b' ||
lversion === 'd02a') {
return formattedComponents;
}
return formattedComponents;
}
case 'TMD':
return formattedComponents;
case 'TOD':
return formattedComponents;
case 'TSR':
return formattedComponents;
case 'UNH':
return formattedComponents;
case 'UNS':
return formattedComponents;
case 'UNT':
return formattedComponents;
default:
return formattedComponents;
}
}
//# sourceMappingURL=edifact.js.map