@makakwastaken/ts-edifact
Version:
Edifact parser library
150 lines (149 loc) • 5.43 kB
JavaScript
/**
* @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.
*/ export 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;
}
}
export 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;
}
}
export 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;
}
}
export 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;
}
}
//# sourceMappingURL=separators.js.map