@makakwastaken/ts-edifact
Version:
Edifact parser library
172 lines • 6.01 kB
JavaScript
"use strict";
/**
* @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.AnsiX12SeparatorsBuilder = exports.TradacomsSeparatorsBuilder = exports.EdifactSeparatorsBuilder = exports.Separators = void 0;
class Separators {
componentSeparator;
elementSeparator;
decimalSeparator;
releaseIndicator;
blankSpace;
segmentTerminator;
segmentTagDelimiter;
repetitionElementSeparator;
constructor(componentSeparator, elementSeparator, decimalSeparator, segmentTerminator, releaseIndicator, blankSapce, segmentTagDelimiter, repetitionElementSeparator) {
this.componentSeparator = componentSeparator;
this.elementSeparator = elementSeparator;
if (decimalSeparator) {
this.decimalSeparator = decimalSeparator;
}
else {
this.decimalSeparator = '.';
}
this.segmentTerminator = segmentTerminator;
if (releaseIndicator) {
this.releaseIndicator = releaseIndicator;
}
if (blankSapce) {
this.blankSpace = blankSapce;
}
if (segmentTagDelimiter) {
this.segmentTagDelimiter = segmentTagDelimiter;
}
if (repetitionElementSeparator) {
this.repetitionElementSeparator = repetitionElementSeparator;
}
}
static escapeIfNeeded(separator) {
let sep = separator;
if (separator === '+' ||
separator === '*' ||
separator === '\\' ||
separator === '~' ||
separator === '$' ||
separator === '(' ||
separator === ')' ||
separator === '^' ||
separator === '?' ||
separator === '.' ||
separator === '|' ||
separator === '{' ||
separator === '}' ||
separator === '[' ||
separator === ']') {
sep = `\\${sep}`;
}
return sep;
}
}
exports.Separators = Separators;
class EdifactSeparatorsBuilder {
_componentSeparator = ':';
_elementSeparator = '+';
_decimalSeparator = '.';
_releaseIndicator = '?';
_blankSpace = ' ';
_segmentTerminator = "'";
componentSeparator(componentSeparator) {
this._componentSeparator = componentSeparator;
return this;
}
elementSeparator(elementSeparator) {
this._elementSeparator = elementSeparator;
return this;
}
decimalSeparator(decimalSeparator) {
this._decimalSeparator = decimalSeparator;
return this;
}
releaseIndicator(releaseIndicator) {
this._releaseIndicator = releaseIndicator;
return this;
}
blankSpace(blankSpace) {
this._blankSpace = blankSpace;
return this;
}
segmentTerminator(segmentTerminator) {
this._segmentTerminator = segmentTerminator;
return this;
}
build() {
const separators = new Separators(this._componentSeparator, this._elementSeparator, this._decimalSeparator, this._segmentTerminator, this._releaseIndicator, this._blankSpace, undefined, undefined);
return separators;
}
}
exports.EdifactSeparatorsBuilder = EdifactSeparatorsBuilder;
class TradacomsSeparatorsBuilder {
_componentSeparator = ':';
_elementSeparator = '+';
_decimalSeparator = '.';
_segmentTagDelimiter = '=';
_segmentTerminator = "'";
componentSeparator(componentSeparator) {
this._componentSeparator = componentSeparator;
return this;
}
elementSeparator(elementSeparator) {
this._elementSeparator = elementSeparator;
return this;
}
decimalSeparator(decimalSeparator) {
this._decimalSeparator = decimalSeparator;
return this;
}
segmentTagDelimiter(segmentTagDelimiter) {
this._segmentTagDelimiter = segmentTagDelimiter;
return this;
}
segmentTerminator(segmentTerminator) {
this._segmentTerminator = segmentTerminator;
return this;
}
build() {
const separators = new Separators(this._componentSeparator, this._elementSeparator, this._decimalSeparator, this._segmentTerminator, undefined, undefined, this._segmentTagDelimiter, undefined);
return separators;
}
}
exports.TradacomsSeparatorsBuilder = TradacomsSeparatorsBuilder;
class AnsiX12SeparatorsBuilder {
_componentSeparator = ':';
_elementSeparator = '*';
_repetitionElementSeparator = '^';
_segmentTerminator = "'";
componentSeparator(componentSeparator) {
this._componentSeparator = componentSeparator;
return this;
}
elementSeparator(elementSeparator) {
this._elementSeparator = elementSeparator;
return this;
}
repetitionElementSeparator(repetitionElementSeparator) {
this._repetitionElementSeparator = repetitionElementSeparator;
return this;
}
segmentTerminator(segmentTerminator) {
this._segmentTerminator = segmentTerminator;
return this;
}
build() {
const separators = new Separators(this._componentSeparator, this._elementSeparator, undefined, this._segmentTerminator, undefined, undefined, undefined, this._repetitionElementSeparator);
return separators;
}
}
exports.AnsiX12SeparatorsBuilder = AnsiX12SeparatorsBuilder;
//# sourceMappingURL=separators.js.map