ts-edifact
Version:
Edifact parser library
281 lines • 6.9 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.storeAllDefaultSpecs = exports.persist = exports.isDefined = void 0;
const fs = __importStar(require("fs"));
const tableBuilder_1 = require("./tableBuilder");
const messageStructureParser_1 = require("./edi/messageStructureParser");
function isDefined(value) {
return value !== undefined && value !== null;
}
exports.isDefined = isDefined;
function toString(data, pretty) {
if (pretty) {
return JSON.stringify(data, null, 2);
}
else {
return JSON.stringify(data);
}
}
function persist(data, path, pretty) {
const messageStructDef = toString(data.messageStructureDefinition, pretty);
const messageStructDefFileName = data.version + data.release + "_" + data.messageType + ".struct.json";
const segments = toString(data.segmentTable.entries);
const segmentsFileName = data.version + data.release + "_" + data.messageType + "." + tableBuilder_1.Suffix.Segments + ".json";
const elements = toString(data.elementTable.entries);
const elementsFileName = data.version + data.release + "_" + data.messageType + "." + tableBuilder_1.Suffix.Elements + ".json";
let p = path;
if (!p.endsWith("/")) {
p += "/";
}
fs.writeFileSync(p + messageStructDefFileName, messageStructDef);
fs.writeFileSync(p + segmentsFileName, segments);
fs.writeFileSync(p + elementsFileName, elements);
}
exports.persist = persist;
function storeAllDefaultSpecs(version, location) {
const types = [
"APERAK",
"AUTHOR",
"AVLREQ",
"AVLRSP",
"BALANC",
"BANSTA",
"BAPLIE",
"BAPLTE",
"BERMAN",
"BMISRM",
"BOPBNK",
"BOPCUS",
"BOPDIR",
"BOPINF",
"BUSCRD",
"CALINF",
"CASINT",
"CASRES",
"CHACCO",
"CLASET",
"CNTCND",
"COACSU",
"COARRI",
"CODECO",
"CODENO",
"COEDOR",
"COHAOR",
"COLREQ",
"COMDIS",
"CONAPW",
"CONDPV",
"CONDRA",
"CONDRO",
"CONEST",
"CONITT",
"CONPVA",
"CONQVA",
"CONRPW",
"CONTEN",
"CONWQD",
"COPARN",
"COPAYM",
"COPINO",
"COPRAR",
"COREOR",
"COSTCO",
"COSTOR",
"CREADV",
"CREEXT",
"CREMUL",
"CUSCAR",
"CUSDEC",
"CUSEXP",
"CUSPED",
"CUSREP",
"CUSRES",
"DEBADV",
"DEBMUL",
"DEBREC",
"DELFOR",
"DELJIT",
"DESADV",
"DESTIM",
"DGRECA",
"DIRDEB",
"DIRDEF",
"DMRDEF",
"DMSTAT",
"DOCADV",
"DOCAMA",
"DOCAMI",
"DOCAMR",
"DOCAPP",
"DOCARE",
"DOCINF",
"ENTREC",
"FINCAN",
"FINPAY",
"FINSTA",
"GENRAL",
"GESMES",
"HANMOV",
"ICASRP",
"ICSOLI",
"IFCSUM",
"IFTCCA",
"IFTDGN",
"IFTFCC",
"IFTIAG",
"IFTICL",
"IFTMAN",
"IFTMBC",
"IFTMBF",
"IFTMBP",
"IFTMCA",
"IFTMCS",
"IFTMFR",
"IFTMIN",
"IFTRIN",
"IFTSAI",
"IFTSTA",
"IFTSTQ",
"IHCEBI",
"IHCLME",
"IMPDEF",
"INFCON",
"INFENT",
"INSDES",
"INSPRE",
"INSREQ",
"INSRPT",
"INTCHG",
"INVOIC",
"INVRPT",
"IPPOAD",
"IPPOMO",
"ISENDS",
"ITRRPT",
"JAPRES",
"JINFDE",
"JOBAPP",
"JOBCON",
"JOBMOD",
"JOBOFF",
"JUPREQ",
"LEDGER",
"LREACT",
"LRECLM",
"MEDPID",
"MEDPRE",
"MEDREQ",
"MEDRPT",
"MEDRUC",
"MEQPOS",
"MOVINS",
"MSCONS",
"ORDCHG",
"ORDERS",
"ORDRSP",
"OSTENQ",
"OSTRPT",
"PARTIN",
"PASREQ",
"PASRSP",
"PAXLST",
"PAYDUC",
"PAYEXT",
"PAYMUL",
"PAYORD",
"PRICAT",
"PRIHIS",
"PROCST",
"PRODAT",
"PRODEX",
"PROINQ",
"PROSRV",
"PROTAP",
"PRPAID",
"QALITY",
"QUOTES",
"RDRMES",
"REBORD",
"RECADV",
"RECALC",
"RECECO",
"RECLAM",
"RECORD",
"REGENT",
"RELIST",
"REMADV",
"REPREM",
"REQDOC",
"REQOTE",
"RESETT",
"RESMSG",
"RESREQ",
"RESRSP",
"RETACC",
"RETANN",
"RETINS",
"RPCALL",
"SAFHAZ",
"SANCRT",
"SKDREQ",
"SKDUPD",
"SLSFCT",
"SLSRPT",
"SOCADE",
"SSIMOD",
"SSRECH",
"SSREGW",
"STATAC",
"STLRPT",
"SUPCOT",
"SUPMAN",
"SUPRES",
"TANSTA",
"TAXCON",
"TIQREQ",
"TIQRSP",
"TPFREP",
"TSDUPD",
"TUPREQ",
"TUPRSP",
"UTILMD",
"UTILTS",
"VATDEC",
"VESDEP",
"WASDIS",
"WKGRDC",
"WKGRRE"
];
for (const typeName of types) {
const structParser = new messageStructureParser_1.UNECEMessageStructureParser(version, typeName);
structParser.loadTypeSpec()
.then((result) => {
persist(result, location);
}).then(() => {
console.log(`Stored definition for type ${typeName} of version ${version} at location ${location}`);
}).catch((error) => {
console.warn(`Could not load Message structure and segment/element definitions for message type ${typeName} of version ${version}. Reason: ${error.message}`);
});
}
}
exports.storeAllDefaultSpecs = storeAllDefaultSpecs;
//# sourceMappingURL=util.js.map