Erster Commit
This commit is contained in:
60
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.js
generated
vendored
Normal file
60
node_modules/ts-edifact/lib/edi/uneceMetaDataPageParser.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UNECEMetaDataPageParser = void 0;
|
||||
const messageStructureParser_1 = require("./messageStructureParser");
|
||||
const unecePageParser_1 = require("./unecePageParser");
|
||||
var State;
|
||||
(function (State) {
|
||||
State["initial"] = "initial";
|
||||
State["beforeMessageType"] = "beforeMessageType";
|
||||
State["afterMessageType"] = "afterMessageType";
|
||||
State["beforeMetaData"] = "beforeMetaData";
|
||||
State["afterMetaData"] = "afterMetaData";
|
||||
})(State || (State = {}));
|
||||
const SM_DEFINITION = {
|
||||
initial: State.initial,
|
||||
transitions: [
|
||||
{ from: State.initial, to: State.beforeMessageType },
|
||||
{ from: State.beforeMessageType, to: State.afterMessageType },
|
||||
{ from: State.afterMessageType, to: State.beforeMetaData },
|
||||
{ from: State.beforeMetaData, to: State.afterMetaData }
|
||||
]
|
||||
};
|
||||
class UNECEMetaDataPageParser extends unecePageParser_1.UNECEPageParser {
|
||||
constructor() {
|
||||
super(SM_DEFINITION);
|
||||
}
|
||||
setupHandler() {
|
||||
const handler = super.setupHandler();
|
||||
handler.onText = (text) => {
|
||||
switch (this.sm.state) {
|
||||
case State.initial:
|
||||
if (text.includes('Message Type')) {
|
||||
this.sm.transition(State.beforeMessageType);
|
||||
}
|
||||
break;
|
||||
case State.beforeMessageType:
|
||||
this.messageType = text;
|
||||
this.sm.transition(State.afterMessageType);
|
||||
break;
|
||||
case State.afterMessageType:
|
||||
if (!this.messageType) {
|
||||
this.throwCouldNotParsePage();
|
||||
}
|
||||
else {
|
||||
if (text.includes('Version') && text.includes('Release') && text.includes('Contr. Agency')) {
|
||||
const version = this.extractTextValue(text, /Version\s*: ([A-Z]*)\s/g, 1);
|
||||
const release = this.extractTextValue(text, /Release\s*: ([0-9A-Z]*)\s/g, 1);
|
||||
const controllingAgency = this.extractTextValue(text, /Contr. Agency\s*: ([0-9A-Z]*)\s/g, 1);
|
||||
this._spec = new messageStructureParser_1.EdifactMessageSpecificationImpl(this.messageType, version, release, controllingAgency);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: this.throwInvalidParserState(this.sm.state);
|
||||
}
|
||||
};
|
||||
return handler;
|
||||
}
|
||||
}
|
||||
exports.UNECEMetaDataPageParser = UNECEMetaDataPageParser;
|
||||
//# sourceMappingURL=uneceMetaDataPageParser.js.map
|
||||
Reference in New Issue
Block a user