UNPKG

@makakwastaken/ts-edifact

Version:
150 lines (149 loc) 5.43 kB
/** * @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