@pbkware/fielded-text-web 0.1.2 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -42
- package/dist/api/ft-reader.js +1 -1
- package/dist/api/ft-reader.js.map +1 -1
- package/dist/api/ft-serialization.js +4 -4
- package/dist/api/ft-serialization.js.map +1 -1
- package/dist/factory/ft-field-factory.js +1 -1
- package/dist/factory/ft-field-factory.js.map +1 -1
- package/dist/factory/ft-sequence-redirect-factory.js +3 -3
- package/dist/factory/ft-sequence-redirect-factory.js.map +1 -1
- package/dist/fields/definitions/ft-boolean-field-definition.js +1 -1
- package/dist/fields/definitions/ft-boolean-field-definition.js.map +1 -1
- package/dist/fields/definitions/ft-date-time-field-definition.js +1 -1
- package/dist/fields/definitions/ft-date-time-field-definition.js.map +1 -1
- package/dist/fields/definitions/ft-decimal-field-definition.js +1 -1
- package/dist/fields/definitions/ft-decimal-field-definition.js.map +1 -1
- package/dist/fields/definitions/ft-field-definition.js +1 -1
- package/dist/fields/definitions/ft-field-definition.js.map +1 -1
- package/dist/fields/definitions/ft-float-field-definition.js +1 -1
- package/dist/fields/definitions/ft-float-field-definition.js.map +1 -1
- package/dist/fields/definitions/ft-integer-field-definition.js +1 -1
- package/dist/fields/definitions/ft-integer-field-definition.js.map +1 -1
- package/dist/fields/definitions/ft-string-field-definition.js +1 -1
- package/dist/fields/definitions/ft-string-field-definition.js.map +1 -1
- package/dist/fields/instances/errors/ft-field-null-error.js +11 -0
- package/dist/fields/instances/errors/ft-field-null-error.js.map +1 -0
- package/dist/fields/instances/errors/ft-field-type-error.js +11 -0
- package/dist/fields/instances/errors/ft-field-type-error.js.map +1 -0
- package/dist/fields/instances/ft-boolean-field.js +14 -6
- package/dist/fields/instances/ft-boolean-field.js.map +1 -1
- package/dist/fields/instances/ft-date-time-field.js +26 -8
- package/dist/fields/instances/ft-date-time-field.js.map +1 -1
- package/dist/fields/instances/ft-decimal-field.js +14 -6
- package/dist/fields/instances/ft-decimal-field.js.map +1 -1
- package/dist/fields/instances/ft-field.js +315 -123
- package/dist/fields/instances/ft-field.js.map +1 -1
- package/dist/fields/instances/ft-float-field.js +14 -6
- package/dist/fields/instances/ft-float-field.js.map +1 -1
- package/dist/fields/instances/ft-generic-field.js +29 -67
- package/dist/fields/instances/ft-generic-field.js.map +1 -1
- package/dist/fields/instances/ft-integer-field.js +24 -8
- package/dist/fields/instances/ft-integer-field.js.map +1 -1
- package/dist/fields/instances/ft-string-field.js +13 -13
- package/dist/fields/instances/ft-string-field.js.map +1 -1
- package/dist/index.d.ts +616 -288
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/meta/sequences/core/ft-meta-sequence-list.js +4 -2
- package/dist/meta/sequences/core/ft-meta-sequence-list.js.map +1 -1
- package/dist/meta/sequences/redirects/ft-meta-sequence-redirect-list.js +1 -1
- package/dist/meta/sequences/redirects/ft-meta-sequence-redirect-list.js.map +1 -1
- package/dist/meta-serialization/format/ft-xml-meta-serialization.js +4 -6
- package/dist/meta-serialization/format/ft-xml-meta-serialization.js.map +1 -1
- package/dist/meta-serialization/styles/ft-number-styles-meta-serialization.js +1 -1
- package/dist/meta-serialization/styles/ft-number-styles-meta-serialization.js.map +1 -1
- package/dist/meta-serialization/types/date-time-meta-serialization.js +1 -1
- package/dist/meta-serialization/types/date-time-meta-serialization.js.map +1 -1
- package/dist/meta-serialization/types/enums/sequence-redirect-type-meta-serialisation.js +1 -1
- package/dist/meta-serialization/types/enums/sequence-redirect-type-meta-serialisation.js.map +1 -1
- package/dist/meta-serialization/types/float-meta-serialization.js +2 -2
- package/dist/meta-serialization/types/float-meta-serialization.js.map +1 -1
- package/dist/meta-serialization/types/integer-float-meta-serialization.js +2 -2
- package/dist/meta-serialization/types/integer-float-meta-serialization.js.map +1 -1
- package/dist/meta-serialization/utils/implicit-explicit-index-sorter.js +4 -10
- package/dist/meta-serialization/utils/implicit-explicit-index-sorter.js.map +1 -1
- package/dist/meta-serialization/utils/meta-serialization-sequence-name-resolver.js +25 -2
- package/dist/meta-serialization/utils/meta-serialization-sequence-name-resolver.js.map +1 -1
- package/dist/meta-serialization/utils/sequence-item-field-indices.js +2 -2
- package/dist/meta-serialization/utils/sequence-item-field-indices.js.map +1 -1
- package/dist/sequences/redirects/ft-case-insensitive-string-sequence-redirect.js +3 -1
- package/dist/sequences/redirects/ft-case-insensitive-string-sequence-redirect.js.map +1 -1
- package/dist/serialization/char-reader.js +2 -2
- package/dist/serialization/char-reader.js.map +1 -1
- package/dist/serialization/declaration-parser.js +1 -1
- package/dist/serialization/declaration-parser.js.map +1 -1
- package/dist/serialization/delimited-field-parser.js.map +1 -1
- package/dist/serialization/events/ft-field-heading-ready-event-args.js.map +1 -0
- package/dist/serialization/events/ft-field-value-ready-event-args.js.map +1 -0
- package/dist/serialization/events/ft-heading-line-finished-event-args.js.map +1 -0
- package/dist/serialization/events/ft-heading-line-started-event-args.js.map +1 -0
- package/dist/serialization/events/ft-record-finished-event-args.js.map +1 -0
- package/dist/serialization/events/ft-record-started-event-args.js.map +1 -0
- package/dist/serialization/events/ft-sequence-redirected-event-args.js.map +1 -0
- package/dist/serialization/fixed-width-field-parser.js +1 -1
- package/dist/serialization/fixed-width-field-parser.js.map +1 -1
- package/dist/serialization/ft-declared-parameters.js +9 -8
- package/dist/serialization/ft-declared-parameters.js.map +1 -1
- package/dist/serialization/{serialization-core.js → ft-serialization-core.js} +114 -11
- package/dist/serialization/ft-serialization-core.js.map +1 -0
- package/dist/{types/errors/ft-serialization-error.js → serialization/ft-serialization-error-code.js} +2 -2
- package/dist/serialization/ft-serialization-error-code.js.map +1 -0
- package/dist/{types/errors/ft-serialization-exception.js → serialization/ft-serialization-error.js} +7 -7
- package/dist/serialization/ft-serialization-error.js.map +1 -0
- package/dist/serialization/ft-serialization-reader.js +19 -47
- package/dist/serialization/ft-serialization-reader.js.map +1 -1
- package/dist/serialization/ft-serialization-writer.js +86 -49
- package/dist/serialization/ft-serialization-writer.js.map +1 -1
- package/dist/serialization/heading-line-record-parser.js +7 -7
- package/dist/serialization/heading-line-record-parser.js.map +1 -1
- package/dist/serialization/line-parser.js +1 -1
- package/dist/serialization/line-parser.js.map +1 -1
- package/dist/serialization/{ft-text-reader.js → text-reader/ft-string-reader.js} +1 -13
- package/dist/serialization/text-reader/ft-string-reader.js.map +1 -0
- package/dist/serialization/text-reader/ft-text-reader.js +13 -0
- package/dist/serialization/text-reader/ft-text-reader.js.map +1 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types/enums/ft-heading-constraint.js +5 -0
- package/dist/types/enums/ft-heading-constraint.js.map +1 -1
- package/dist/utils/ft-comma-text.js +247 -0
- package/dist/utils/ft-comma-text.js.map +1 -0
- package/dist/utils/ft-internal-error.js +129 -0
- package/dist/utils/ft-internal-error.js.map +1 -0
- package/dist/utils/ft-result.js +2 -0
- package/dist/utils/ft-result.js.map +1 -0
- package/dist/utils/number-parse.js +33 -0
- package/dist/utils/number-parse.js.map +1 -0
- package/dist/utils/string-builder.js +40 -0
- package/dist/utils/string-builder.js.map +1 -0
- package/package.json +25 -27
- package/src/api/ft-reader.ts +2 -1
- package/src/api/ft-serialization.ts +13 -13
- package/src/factory/ft-field-factory.ts +1 -1
- package/src/factory/ft-sequence-redirect-factory.ts +4 -4
- package/src/fields/definitions/ft-boolean-field-definition.ts +1 -1
- package/src/fields/definitions/ft-date-time-field-definition.ts +1 -1
- package/src/fields/definitions/ft-decimal-field-definition.ts +1 -1
- package/src/fields/definitions/ft-field-definition.ts +1 -1
- package/src/fields/definitions/ft-float-field-definition.ts +1 -1
- package/src/fields/definitions/ft-generic-field-definition.ts +1 -1
- package/src/fields/definitions/ft-integer-field-definition.ts +1 -1
- package/src/fields/definitions/ft-string-field-definition.ts +1 -1
- package/src/fields/instances/errors/ft-field-null-error.ts +10 -0
- package/src/fields/instances/errors/ft-field-type-error.ts +10 -0
- package/src/fields/instances/ft-boolean-field.ts +17 -6
- package/src/fields/instances/ft-date-time-field.ts +28 -7
- package/src/fields/instances/ft-decimal-field.ts +17 -6
- package/src/fields/instances/ft-field.ts +329 -145
- package/src/fields/instances/ft-float-field.ts +17 -6
- package/src/fields/instances/ft-generic-field.ts +32 -88
- package/src/fields/instances/ft-integer-field.ts +29 -7
- package/src/fields/instances/ft-string-field.ts +15 -12
- package/src/index.ts +21 -12
- package/src/meta/sequences/core/ft-meta-sequence-list.ts +4 -3
- package/src/meta/sequences/redirects/ft-meta-sequence-redirect-list.ts +1 -1
- package/src/meta-serialization/format/ft-xml-meta-serialization.ts +4 -7
- package/src/meta-serialization/styles/ft-number-styles-meta-serialization.ts +1 -1
- package/src/meta-serialization/types/date-time-meta-serialization.ts +1 -1
- package/src/meta-serialization/types/enums/meta-element-type-meta-serialization.ts +4 -4
- package/src/meta-serialization/types/enums/sequence-redirect-type-meta-serialisation.ts +1 -1
- package/src/meta-serialization/types/float-meta-serialization.ts +2 -2
- package/src/meta-serialization/types/integer-float-meta-serialization.ts +2 -2
- package/src/meta-serialization/utils/implicit-explicit-index-sorter.ts +18 -12
- package/src/meta-serialization/utils/meta-serialization-sequence-name-resolver.ts +25 -2
- package/src/meta-serialization/utils/sequence-item-field-indices.ts +2 -2
- package/src/sequences/redirects/ft-case-insensitive-string-sequence-redirect.ts +3 -1
- package/src/serialization/char-reader.ts +2 -2
- package/src/serialization/declaration-parser.ts +1 -1
- package/src/serialization/delimited-field-parser.ts +3 -3
- package/src/serialization/fixed-width-field-parser.ts +4 -4
- package/src/serialization/ft-declared-parameters.ts +12 -11
- package/src/serialization/{serialization-core.ts → ft-serialization-core.ts} +133 -17
- package/src/{types/errors/ft-serialization-error.ts → serialization/ft-serialization-error-code.ts} +2 -2
- package/src/{types/errors/ft-serialization-exception.ts → serialization/ft-serialization-error.ts} +14 -9
- package/src/serialization/ft-serialization-reader.ts +21 -54
- package/src/serialization/ft-serialization-writer.ts +97 -64
- package/src/serialization/heading-line-record-parser.ts +10 -10
- package/src/serialization/line-parser.ts +1 -1
- package/src/serialization/{ft-text-reader.ts → text-reader/ft-string-reader.ts} +1 -24
- package/src/serialization/text-reader/ft-text-reader.ts +24 -0
- package/src/types/enums/ft-heading-constraint.ts +5 -0
- package/src/utils/ft-comma-text.ts +285 -0
- package/src/utils/ft-internal-error.ts +143 -0
- package/src/utils/ft-result.ts +1 -0
- package/src/utils/number-parse.ts +35 -0
- package/src/utils/string-builder.ts +47 -0
- package/LICENSE +0 -21
- package/dist/serialization/ft-text-reader.js.map +0 -1
- package/dist/serialization/serialization-core.js.map +0 -1
- package/dist/types/errors/ft-internal-error.js +0 -14
- package/dist/types/errors/ft-internal-error.js.map +0 -1
- package/dist/types/errors/ft-serialization-error.js.map +0 -1
- package/dist/types/errors/ft-serialization-exception.js.map +0 -1
- package/dist/types/events/ft-field-heading-ready-event-args.js.map +0 -1
- package/dist/types/events/ft-field-value-ready-event-args.js.map +0 -1
- package/dist/types/events/ft-heading-line-finished-event-args.js.map +0 -1
- package/dist/types/events/ft-heading-line-started-event-args.js.map +0 -1
- package/dist/types/events/ft-record-finished-event-args.js.map +0 -1
- package/dist/types/events/ft-record-started-event-args.js.map +0 -1
- package/dist/types/events/ft-sequence-redirected-event-args.js.map +0 -1
- package/src/types/errors/ft-internal-error.ts +0 -15
- /package/dist/{types → serialization}/events/ft-field-heading-ready-event-args.js +0 -0
- /package/dist/{types → serialization}/events/ft-field-value-ready-event-args.js +0 -0
- /package/dist/{types → serialization}/events/ft-heading-line-finished-event-args.js +0 -0
- /package/dist/{types → serialization}/events/ft-heading-line-started-event-args.js +0 -0
- /package/dist/{types → serialization}/events/ft-record-finished-event-args.js +0 -0
- /package/dist/{types → serialization}/events/ft-record-started-event-args.js +0 -0
- /package/dist/{types → serialization}/events/ft-sequence-redirected-event-args.js +0 -0
- /package/src/{types → serialization}/events/ft-field-heading-ready-event-args.ts +0 -0
- /package/src/{types → serialization}/events/ft-field-value-ready-event-args.ts +0 -0
- /package/src/{types → serialization}/events/ft-heading-line-finished-event-args.ts +0 -0
- /package/src/{types → serialization}/events/ft-heading-line-started-event-args.ts +0 -0
- /package/src/{types → serialization}/events/ft-record-finished-event-args.ts +0 -0
- /package/src/{types → serialization}/events/ft-record-started-event-args.ts +0 -0
- /package/src/{types → serialization}/events/ft-sequence-redirected-event-args.ts +0 -0
package/dist/{types/errors/ft-serialization-error.js → serialization/ft-serialization-error-code.js}
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Enumeration of serialization error codes.
|
|
3
3
|
* @public
|
|
4
4
|
*/
|
|
5
|
-
export const
|
|
5
|
+
export const FtSerializationErrorCode = {
|
|
6
6
|
Abort: 'Abort',
|
|
7
7
|
DeclarationParameterNameIsZeroLength: 'DeclarationParameterNameIsZeroLength',
|
|
8
8
|
DeclaredParameterNameContainsSeparator: 'DeclaredParameterNameContainsSeparator',
|
|
@@ -46,4 +46,4 @@ export const FtSerializationError = {
|
|
|
46
46
|
MetaReferenceUrlNoHandler: 'MetaReferenceUrlNoHandler',
|
|
47
47
|
LoadMetaFromUrl: 'LoadMetaFromUrl',
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=ft-serialization-error.js.map
|
|
49
|
+
//# sourceMappingURL=ft-serialization-error-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ft-serialization-error-code.js","sourceRoot":"","sources":["../../src/serialization/ft-serialization-error-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,OAAO;IACd,oCAAoC,EAAE,sCAAsC;IAC5E,sCAAsC,EAAE,wCAAwC;IAChF,qCAAqC,EAAE,uCAAuC;IAC9E,gCAAgC,EAAE,kCAAkC;IACpE,kCAAkC,EAAE,oCAAoC;IACxE,sCAAsC,EAAE,wCAAwC;IAChF,mCAAmC,EAAE,qCAAqC;IAC1E,qCAAqC,EAAE,uCAAuC;IAC9E,kCAAkC,EAAE,oCAAoC;IACxE,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAChD,0BAA0B,EAAE,4BAA4B;IACxD,qBAAqB,EAAE,uBAAuB;IAC9C,wBAAwB,EAAE,0BAA0B;IACpD,mBAAmB,EAAE,qBAAqB;IAC1C,qCAAqC,EAAE,uCAAuC;IAC9E,mCAAmC,EAAE,qCAAqC;IAC1E,0CAA0C,EAAE,4CAA4C;IACxF,wCAAwC,EAAE,0CAA0C;IACpF,yCAAyC,EAAE,2CAA2C;IACtF,uCAAuC,EAAE,yCAAyC;IAClF,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,0BAA0B,EAAE,4BAA4B;IACxD,6BAA6B,EAAE,+BAA+B;IAC9D,cAAc,EAAE,gBAAgB;IAChC,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,qBAAqB,EAAE,uBAAuB;IAC9C,wBAAwB,EAAE,0BAA0B;IACpD,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,0BAA0B,EAAE,4BAA4B;IACxD,gBAAgB,EAAE,kBAAkB;IACpC,yBAAyB,EAAE,2BAA2B;IACtD,eAAe,EAAE,iBAAiB;CAC1B,CAAC"}
|
package/dist/{types/errors/ft-serialization-exception.js → serialization/ft-serialization-error.js}
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FtSerializationErrorCode } from './ft-serialization-error-code.js';
|
|
2
2
|
/**
|
|
3
3
|
* Exception thrown during fielded text serialization/deserialization.
|
|
4
4
|
* @public
|
|
5
5
|
*/
|
|
6
|
-
export class
|
|
6
|
+
export class FtSerializationError extends Error {
|
|
7
7
|
_error;
|
|
8
8
|
_fieldName;
|
|
9
9
|
_fieldIndex;
|
|
10
10
|
_sequenceName;
|
|
11
11
|
_sequenceItemIndex;
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(errorCode, fieldOrMessage, messageOrInner, innerException) {
|
|
13
13
|
let message;
|
|
14
14
|
let field = undefined;
|
|
15
15
|
let inner = undefined;
|
|
@@ -36,11 +36,11 @@ export class FtSerializationException extends Error {
|
|
|
36
36
|
message = '';
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
const errorName =
|
|
39
|
+
const errorName = FtSerializationErrorCode[errorCode];
|
|
40
40
|
const fullMessage = errorName + (message ? ': ' + message : '');
|
|
41
41
|
super(fullMessage);
|
|
42
|
-
this.name = '
|
|
43
|
-
this._error =
|
|
42
|
+
this.name = 'FtSerializationError';
|
|
43
|
+
this._error = errorCode;
|
|
44
44
|
if (field === undefined) {
|
|
45
45
|
this._fieldName = undefined;
|
|
46
46
|
this._fieldIndex = -1;
|
|
@@ -75,4 +75,4 @@ export class FtSerializationException extends Error {
|
|
|
75
75
|
return this._sequenceItemIndex;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
//# sourceMappingURL=ft-serialization-
|
|
78
|
+
//# sourceMappingURL=ft-serialization-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ft-serialization-error.js","sourceRoot":"","sources":["../../src/serialization/ft-serialization-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC5B,MAAM,CAA2B;IACjC,UAAU,CAAqB;IAC/B,WAAW,CAAS;IACpB,aAAa,CAAqB;IAClC,kBAAkB,CAAS;IAE5C,YACE,SAAmC,EACnC,cAA4C,EAC5C,cAA+B,EAC/B,cAAsB;QAEtB,IAAI,OAAe,CAAC;QACpB,IAAI,KAAK,GAAwB,SAAS,CAAC;QAC3C,IAAI,KAAK,GAAsB,SAAS,CAAC;QAEzC,sBAAsB;QACtB,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,uDAAuD;YACvD,OAAO,GAAG,cAAc,CAAC;YACzB,IAAI,cAAc,YAAY,KAAK,EAAE,CAAC;gBACpC,KAAK,GAAG,cAAc,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,uGAAuG;YACvG,KAAK,GAAG,cAAc,CAAC;YACvB,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;gBACvC,OAAO,GAAG,cAAc,CAAC;gBACzB,KAAK,GAAG,cAAc,CAAC;YACzB,CAAC;iBAAM,IAAI,cAAc,YAAY,KAAK,EAAE,CAAC;gBAC3C,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;gBACjC,KAAK,GAAG,cAAc,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,KAAK,CAAC,WAAW,CAAC,CAAC;QAEnB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAExB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;YAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;YACnC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -4,22 +4,22 @@ import { FtLineType } from '../types/enums/ft-line-type.js';
|
|
|
4
4
|
import { FtMetaReferenceType } from '../types/enums/ft-meta-reference-type.js';
|
|
5
5
|
import { FtMetaSerializationFormat } from '../types/enums/ft-meta-serialization-format.js';
|
|
6
6
|
import { FtReadRecordResult } from '../types/enums/ft-read-record-result.js';
|
|
7
|
-
import { FtUnreachableCaseError } from '../
|
|
8
|
-
import { FtSerializationError } from '../types/errors/ft-serialization-error.js';
|
|
9
|
-
import { FtSerializationException } from '../types/errors/ft-serialization-exception.js';
|
|
7
|
+
import { FtUnreachableCaseError } from '../utils/ft-internal-error.js';
|
|
10
8
|
import { CharReader } from './char-reader.js';
|
|
11
9
|
import { DeclarationParser } from './declaration-parser.js';
|
|
12
10
|
import { EmbeddedMetaParser } from './embedded-meta-parser.js';
|
|
13
11
|
import { FtDeclaredParameters } from './ft-declared-parameters.js';
|
|
14
|
-
import {
|
|
12
|
+
import { FtSerializationCore } from './ft-serialization-core.js';
|
|
13
|
+
import { FtSerializationErrorCode } from './ft-serialization-error-code.js';
|
|
14
|
+
import { FtSerializationError } from './ft-serialization-error.js';
|
|
15
15
|
import { HeadingLineRecordParser } from './heading-line-record-parser.js';
|
|
16
16
|
import { LineEndedType, LineParser } from './line-parser.js';
|
|
17
|
-
import {
|
|
17
|
+
import { FtTextReader } from './text-reader/ft-text-reader.js';
|
|
18
18
|
/**
|
|
19
19
|
* Reader for fielded text streams. Coordinates all parsing components.
|
|
20
20
|
* @public
|
|
21
21
|
*/
|
|
22
|
-
export class FtSerializationReader extends
|
|
22
|
+
export class FtSerializationReader extends FtSerializationCore {
|
|
23
23
|
/**
|
|
24
24
|
* Event fired when seeking through records.
|
|
25
25
|
*/
|
|
@@ -368,34 +368,6 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
368
368
|
this.setSeeking(false);
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
|
-
/**
|
|
372
|
-
* Get a field object by index.
|
|
373
|
-
*/
|
|
374
|
-
getField(idx) {
|
|
375
|
-
return this.fieldList.get(idx);
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Get a field object by name.
|
|
379
|
-
*/
|
|
380
|
-
getFieldByName(name) {
|
|
381
|
-
return this.fieldList.getByName(name);
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Get a field value by index.
|
|
385
|
-
*/
|
|
386
|
-
getFieldValue(idx) {
|
|
387
|
-
return this.fieldList.get(idx).asObject;
|
|
388
|
-
}
|
|
389
|
-
/**
|
|
390
|
-
* Get a field value by name.
|
|
391
|
-
*/
|
|
392
|
-
getFieldValueByName(name) {
|
|
393
|
-
const field = this.fieldList.getByName(name);
|
|
394
|
-
if (!field) {
|
|
395
|
-
throw new Error(`Field not found: ${name}`);
|
|
396
|
-
}
|
|
397
|
-
return field.asObject;
|
|
398
|
-
}
|
|
399
371
|
/**
|
|
400
372
|
* Load metadata from a pre-parsed FtMeta object.
|
|
401
373
|
* @param meta - The metadata to load.
|
|
@@ -443,7 +415,7 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
443
415
|
getFileMetaAsText(fileMetaReference) {
|
|
444
416
|
// Descendants can override this method. Clients can subscribe to onRequireFileMetaAsText event
|
|
445
417
|
if (!this.onRequireFileMetaAsText) {
|
|
446
|
-
throw new
|
|
418
|
+
throw new FtSerializationError(FtSerializationErrorCode.MetaReferenceFileNoHandler, 'Meta reference is file but no handler provided to retrieve file content');
|
|
447
419
|
}
|
|
448
420
|
else {
|
|
449
421
|
return this.onRequireFileMetaAsText(fileMetaReference);
|
|
@@ -452,7 +424,7 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
452
424
|
getUrlMetaAsText(urlMetaReference) {
|
|
453
425
|
// Descendants can override this method. Clients can subscribe to onRequireUrlMetaAsText event
|
|
454
426
|
if (!this.onRequireUrlMetaAsText) {
|
|
455
|
-
throw new
|
|
427
|
+
throw new FtSerializationError(FtSerializationErrorCode.MetaReferenceUrlNoHandler, 'Meta reference is URL but no handler provided to retrieve URL content');
|
|
456
428
|
}
|
|
457
429
|
else {
|
|
458
430
|
return this.onRequireUrlMetaAsText(urlMetaReference);
|
|
@@ -556,7 +528,7 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
556
528
|
// Must be a heading line
|
|
557
529
|
this._lineType = FtLineType.Heading;
|
|
558
530
|
if (this._metaEmbedded && !this._embeddedMetaRead) {
|
|
559
|
-
throw new
|
|
531
|
+
throw new FtSerializationError(FtSerializationErrorCode.EmbeddedMetaNotFound, 'Embedded meta line not blank or comment');
|
|
560
532
|
}
|
|
561
533
|
else {
|
|
562
534
|
if (!(this.headingLineCount > 0 && !this._headingLinesRead)) {
|
|
@@ -587,7 +559,7 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
587
559
|
}
|
|
588
560
|
else {
|
|
589
561
|
if (!this.ignoreBlankLines) {
|
|
590
|
-
throw new
|
|
562
|
+
throw new FtSerializationError(FtSerializationErrorCode.RecordNotEnoughFields, 'Blank records not allowed');
|
|
591
563
|
}
|
|
592
564
|
}
|
|
593
565
|
}
|
|
@@ -674,7 +646,7 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
674
646
|
if (this._lineParser.inLine) {
|
|
675
647
|
this.finishLastLine();
|
|
676
648
|
if (this.lastLineEndedType === FtLastLineEndedType.Always) {
|
|
677
|
-
throw new
|
|
649
|
+
throw new FtSerializationError(FtSerializationErrorCode.LastLineEndedError, 'Always ended but in line');
|
|
678
650
|
}
|
|
679
651
|
else {
|
|
680
652
|
this._lineParser.exitLine();
|
|
@@ -687,17 +659,17 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
687
659
|
}
|
|
688
660
|
else {
|
|
689
661
|
if (!this.ignoreBlankLines) {
|
|
690
|
-
throw new
|
|
662
|
+
throw new FtSerializationError(FtSerializationErrorCode.LastLineEndedError, 'Never ended but out of line');
|
|
691
663
|
}
|
|
692
664
|
else {
|
|
693
665
|
// Since last line cannot be ended, there is another ignored blank line
|
|
694
666
|
// Throw exception if blank line not allowed
|
|
695
667
|
switch (this._lineType) {
|
|
696
668
|
case FtLineType.Signature:
|
|
697
|
-
throw new
|
|
669
|
+
throw new FtSerializationError(FtSerializationErrorCode.IncompleteDeclaration, 'Declaration missing second line');
|
|
698
670
|
case FtLineType.Heading:
|
|
699
671
|
if (!this._headingLinesRead) {
|
|
700
|
-
throw new
|
|
672
|
+
throw new FtSerializationError(FtSerializationErrorCode.InsufficientHeadingLines, '');
|
|
701
673
|
}
|
|
702
674
|
break;
|
|
703
675
|
}
|
|
@@ -727,7 +699,7 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
727
699
|
case FtLineType.Comment:
|
|
728
700
|
if (!this._headerRead) {
|
|
729
701
|
if (this._metaEmbedded && !this._embeddedMetaRead) {
|
|
730
|
-
throw new
|
|
702
|
+
throw new FtSerializationError(FtSerializationErrorCode.EmbeddedMetaNotFound, 'End of file encountered');
|
|
731
703
|
}
|
|
732
704
|
}
|
|
733
705
|
break;
|
|
@@ -736,7 +708,7 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
736
708
|
this.finishEmbeddedMeta();
|
|
737
709
|
}
|
|
738
710
|
else {
|
|
739
|
-
throw new
|
|
711
|
+
throw new FtSerializationError(FtSerializationErrorCode.IncompleteEmbeddedMeta, 'End of file encountered');
|
|
740
712
|
}
|
|
741
713
|
break;
|
|
742
714
|
case FtLineType.Blank:
|
|
@@ -843,15 +815,15 @@ export class FtSerializationReader extends SerializationCore {
|
|
|
843
815
|
checkCompleteness() {
|
|
844
816
|
if (!this._headerRead) {
|
|
845
817
|
if (this._declared && !this._declarationRead) {
|
|
846
|
-
throw new
|
|
818
|
+
throw new FtSerializationError(FtSerializationErrorCode.IncompleteDeclaration, '');
|
|
847
819
|
}
|
|
848
820
|
else {
|
|
849
821
|
if (this._metaEmbedded && !this._embeddedMetaRead) {
|
|
850
|
-
throw new
|
|
822
|
+
throw new FtSerializationError(FtSerializationErrorCode.IncompleteEmbeddedMeta, '');
|
|
851
823
|
}
|
|
852
824
|
else {
|
|
853
825
|
if (this.headingLineCount > 0 && !this._headingLinesRead) {
|
|
854
|
-
throw new
|
|
826
|
+
throw new FtSerializationError(FtSerializationErrorCode.InsufficientHeadingLines, this._headingLineReadCount.toString());
|
|
855
827
|
}
|
|
856
828
|
}
|
|
857
829
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ft-serialization-reader.js","sourceRoot":"","sources":["../../src/serialization/ft-serialization-reader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ft-serialization-reader.js","sourceRoot":"","sources":["../../src/serialization/ft-serialization-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { FtWriterSettings } from '../api/ft-writer-settings.js';
|
|
2
2
|
import { FtXmlMetaSerialization } from '../meta-serialization/format/ft-xml-meta-serialization.js';
|
|
3
|
-
import { FtDataType } from '../types/enums/ft-data-type.js';
|
|
4
3
|
import { FtEndOfLineAutoWriteType } from '../types/enums/ft-end-of-line-auto-write-type.js';
|
|
5
4
|
import { FtEndOfLineType } from '../types/enums/ft-end-of-line-type.js';
|
|
6
5
|
import { FtLastLineEndedType } from '../types/enums/ft-last-line-ended-type.js';
|
|
@@ -9,17 +8,17 @@ import { FtPadAlignment } from '../types/enums/ft-pad-alignment.js';
|
|
|
9
8
|
import { FtPadCharType } from '../types/enums/ft-pad-char-type.js';
|
|
10
9
|
import { FtQuotedType } from '../types/enums/ft-quoted-type.js';
|
|
11
10
|
import { FtTruncateType } from '../types/enums/ft-truncate-type.js';
|
|
12
|
-
import { FtUnreachableCaseError } from '../
|
|
13
|
-
import { FtSerializationError } from '../types/errors/ft-serialization-error.js';
|
|
14
|
-
import { FtSerializationException } from '../types/errors/ft-serialization-exception.js';
|
|
11
|
+
import { FtUnreachableCaseError } from '../utils/ft-internal-error.js';
|
|
15
12
|
import { FtDeclaredParametersFormatter } from './formatting/ft-declared-parameters-formatter.js';
|
|
16
13
|
import { FtDeclaredParameters } from './ft-declared-parameters.js';
|
|
17
|
-
import {
|
|
14
|
+
import { FtSerializationCore } from './ft-serialization-core.js';
|
|
15
|
+
import { FtSerializationErrorCode } from './ft-serialization-error-code.js';
|
|
16
|
+
import { FtSerializationError } from './ft-serialization-error.js';
|
|
18
17
|
/**
|
|
19
18
|
* Writer for fielded text streams. Coordinates all writing logic.
|
|
20
19
|
* @public
|
|
21
20
|
*/
|
|
22
|
-
export class FtSerializationWriter extends
|
|
21
|
+
export class FtSerializationWriter extends FtSerializationCore {
|
|
23
22
|
static DECLARATION_LINE2_BEFORE_COMMENT_CHARS = ' ';
|
|
24
23
|
static EMBEDDED_META_BEFORE_COMMENT_CHARS = ' ';
|
|
25
24
|
_loadedMeta = undefined;
|
|
@@ -77,7 +76,7 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
77
76
|
*/
|
|
78
77
|
writeHeader() {
|
|
79
78
|
if (this._headerWritten) {
|
|
80
|
-
throw new
|
|
79
|
+
throw new FtSerializationError(FtSerializationErrorCode.HeaderAlreadyWritten, 'Header already written');
|
|
81
80
|
}
|
|
82
81
|
if (this._settings?.declared) {
|
|
83
82
|
this.writeDeclaration();
|
|
@@ -111,96 +110,134 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
111
110
|
this._writer?.flush();
|
|
112
111
|
}
|
|
113
112
|
/**
|
|
114
|
-
* Set a field value by index.
|
|
113
|
+
* Set a field value by index. Accepts `null` to set the field to null.
|
|
114
|
+
*
|
|
115
|
+
* @param idx - The 0-based index of the field to set.
|
|
116
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
117
|
+
*
|
|
118
|
+
* @throws FtTypeError if the value being set is not of the field's expected type.
|
|
115
119
|
*/
|
|
116
120
|
setFieldValue(idx, value) {
|
|
117
|
-
this.fieldList.get(idx).
|
|
121
|
+
this.fieldList.get(idx).nullableValue = value;
|
|
118
122
|
}
|
|
119
123
|
/**
|
|
120
124
|
* Set a field value by name.
|
|
125
|
+
*
|
|
126
|
+
* @param name - The name of the field to set.
|
|
127
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
128
|
+
*
|
|
129
|
+
* @throws FtTypeError if the value being set is not of the field's expected type.
|
|
121
130
|
*/
|
|
122
131
|
setFieldValueByName(name, value) {
|
|
123
132
|
const field = this.fieldList.getByName(name);
|
|
124
133
|
if (!field) {
|
|
125
134
|
throw new Error(`Field not found: ${name}`);
|
|
126
135
|
}
|
|
127
|
-
field.
|
|
136
|
+
field.nullableValue = value;
|
|
128
137
|
}
|
|
129
138
|
/**
|
|
130
139
|
* Set a field to null.
|
|
140
|
+
*
|
|
141
|
+
* @param idx - The 0-based index of the field to set.
|
|
131
142
|
*/
|
|
132
143
|
setNull(idx) {
|
|
133
144
|
this.fieldList.get(idx).setNull();
|
|
134
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Set a field to null.
|
|
148
|
+
*
|
|
149
|
+
* @param name - The name of the field to set.
|
|
150
|
+
*/
|
|
151
|
+
setNullByName(name) {
|
|
152
|
+
const field = this.fieldList.getByName(name);
|
|
153
|
+
if (!field) {
|
|
154
|
+
throw new Error(`Field not found: ${name}`);
|
|
155
|
+
}
|
|
156
|
+
field.setNull();
|
|
157
|
+
}
|
|
135
158
|
/**
|
|
136
159
|
* Set a boolean field.
|
|
160
|
+
*
|
|
161
|
+
* @param idx - The 0-based index of the field to set.
|
|
162
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
137
163
|
*/
|
|
138
164
|
setBoolean(idx, value) {
|
|
139
165
|
const field = this.fieldList.get(idx);
|
|
140
|
-
|
|
141
|
-
throw new Error(`Invalid cast: field ${idx} is not boolean`);
|
|
142
|
-
}
|
|
143
|
-
field.value = value;
|
|
166
|
+
field.asNullableBoolean = value;
|
|
144
167
|
}
|
|
145
168
|
/**
|
|
146
|
-
* Set a
|
|
169
|
+
* Set a DateTime field's value.
|
|
170
|
+
*
|
|
171
|
+
* @param idx - The 0-based index of the field to set.
|
|
172
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
147
173
|
*/
|
|
148
174
|
setDateTime(idx, value) {
|
|
149
175
|
const field = this.fieldList.get(idx);
|
|
150
|
-
|
|
151
|
-
throw new Error(`Invalid cast: field ${idx} is not datetime`);
|
|
152
|
-
}
|
|
153
|
-
field.value = value;
|
|
176
|
+
field.asNullableDateTime = value;
|
|
154
177
|
}
|
|
155
178
|
/**
|
|
156
179
|
* Set a decimal field.
|
|
180
|
+
*
|
|
181
|
+
* @param idx - The 0-based index of the field to set.
|
|
182
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
157
183
|
*/
|
|
158
184
|
setDecimal(idx, value) {
|
|
159
185
|
const field = this.fieldList.get(idx);
|
|
160
|
-
|
|
161
|
-
throw new Error(`Invalid cast: field ${idx} is not decimal`);
|
|
162
|
-
}
|
|
163
|
-
field.value = value;
|
|
186
|
+
field.asNullableDecimal = value;
|
|
164
187
|
}
|
|
165
188
|
/**
|
|
166
189
|
* Set a float field.
|
|
190
|
+
*
|
|
191
|
+
* @param idx - The 0-based index of the field to set.
|
|
192
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
167
193
|
*/
|
|
168
194
|
setFloat(idx, value) {
|
|
169
195
|
const field = this.fieldList.get(idx);
|
|
170
|
-
|
|
171
|
-
throw new Error(`Invalid cast: field ${idx} is not float`);
|
|
172
|
-
}
|
|
173
|
-
field.value = value;
|
|
196
|
+
field.asNullableFloat = value;
|
|
174
197
|
}
|
|
175
198
|
/**
|
|
176
199
|
* Set an integer field.
|
|
200
|
+
*
|
|
201
|
+
* @param idx - The 0-based index of the field to set.
|
|
202
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
177
203
|
*/
|
|
178
204
|
setInteger(idx, value) {
|
|
179
205
|
const field = this.fieldList.get(idx);
|
|
180
|
-
|
|
181
|
-
|
|
206
|
+
switch (typeof value) {
|
|
207
|
+
case 'bigint':
|
|
208
|
+
field.asBigInt = value;
|
|
209
|
+
break;
|
|
210
|
+
case 'number':
|
|
211
|
+
field.asInteger = value;
|
|
212
|
+
break;
|
|
213
|
+
default:
|
|
214
|
+
field.setNull();
|
|
215
|
+
break;
|
|
182
216
|
}
|
|
183
|
-
field.value = typeof value === 'bigint' ? value : BigInt(value);
|
|
184
217
|
}
|
|
185
218
|
/**
|
|
186
219
|
* Set a string field.
|
|
220
|
+
*
|
|
221
|
+
* @param idx - The 0-based index of the field to set.
|
|
222
|
+
* @param value - The value to set for the field. Can be `null` to set the field to null.
|
|
187
223
|
*/
|
|
188
224
|
setString(idx, value) {
|
|
189
225
|
const field = this.fieldList.get(idx);
|
|
190
|
-
|
|
191
|
-
throw new Error(`Invalid cast: field ${idx} is not string`);
|
|
192
|
-
}
|
|
193
|
-
field.value = value;
|
|
226
|
+
field.asNullableString = value;
|
|
194
227
|
}
|
|
195
228
|
/**
|
|
196
229
|
* Set multiple field values.
|
|
230
|
+
*
|
|
231
|
+
* @param values - An array of values to set for the fields. The length of the array must not exceed the number of fields. Array elements can be null to set the corresponding field to null.
|
|
232
|
+
*
|
|
233
|
+
* @throws FtTypeError if any of the values being set is not of the corresponding field's expected type.
|
|
197
234
|
*/
|
|
198
235
|
setValues(values) {
|
|
199
236
|
if (values.length > this.fieldCount) {
|
|
200
237
|
throw new Error(`Values length ${values.length} exceeds field count ${this.fieldCount}`);
|
|
201
238
|
}
|
|
202
239
|
for (let i = 0; i < values.length; i++) {
|
|
203
|
-
this.fieldList.get(i).
|
|
240
|
+
this.fieldList.get(i).nullableValue = values[i];
|
|
204
241
|
}
|
|
205
242
|
}
|
|
206
243
|
reset() {
|
|
@@ -264,15 +301,15 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
264
301
|
case FtEndOfLineType.Char:
|
|
265
302
|
return this.endOfLineChar;
|
|
266
303
|
case FtEndOfLineType.CrLf:
|
|
267
|
-
return
|
|
304
|
+
return FtSerializationCore.CarriageReturnLineFeedString;
|
|
268
305
|
case FtEndOfLineType.Auto:
|
|
269
306
|
switch (this.endOfLineAutoWriteType) {
|
|
270
307
|
case FtEndOfLineAutoWriteType.CrLf:
|
|
271
|
-
return
|
|
308
|
+
return FtSerializationCore.CarriageReturnLineFeedString;
|
|
272
309
|
case FtEndOfLineAutoWriteType.Cr:
|
|
273
|
-
return
|
|
310
|
+
return FtSerializationCore.CarriageReturnChar;
|
|
274
311
|
case FtEndOfLineAutoWriteType.Lf:
|
|
275
|
-
return
|
|
312
|
+
return FtSerializationCore.LineFeedChar;
|
|
276
313
|
case FtEndOfLineAutoWriteType.Local:
|
|
277
314
|
return '\n'; // Use platform default
|
|
278
315
|
default:
|
|
@@ -311,8 +348,8 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
311
348
|
switch (this.endOfLineType) {
|
|
312
349
|
case FtEndOfLineType.Auto:
|
|
313
350
|
case FtEndOfLineType.CrLf:
|
|
314
|
-
searchChars.push(
|
|
315
|
-
searchChars.push(
|
|
351
|
+
searchChars.push(FtSerializationCore.CarriageReturnChar);
|
|
352
|
+
searchChars.push(FtSerializationCore.LineFeedChar);
|
|
316
353
|
break;
|
|
317
354
|
case FtEndOfLineType.Char:
|
|
318
355
|
searchChars.push(this.endOfLineChar);
|
|
@@ -347,11 +384,11 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
347
384
|
throw new Error('Writer settings not set');
|
|
348
385
|
}
|
|
349
386
|
const parameters = new FtDeclaredParameters();
|
|
350
|
-
parameters.setVersion(
|
|
387
|
+
parameters.setVersion(FtSerializationCore.VersionMajor, FtSerializationCore.VersionMinor);
|
|
351
388
|
const metaReferenceType = this._settings.metaReferenceType ?? FtWriterSettings.DEFAULT_META_REFERENCE_TYPE;
|
|
352
389
|
const metaReference = this._settings.metaReference ?? FtWriterSettings.DEFAULT_META_REFERENCE;
|
|
353
390
|
parameters.setMetaReference(metaReferenceType, metaReference);
|
|
354
|
-
this.writeComment(
|
|
391
|
+
this.writeComment(FtSerializationCore.Signature + ' ' + FtDeclaredParametersFormatter.toSignatureLineText(parameters), '');
|
|
355
392
|
this.writeComment(FtDeclaredParametersFormatter.toLine2Text(parameters), FtSerializationWriter.DECLARATION_LINE2_BEFORE_COMMENT_CHARS);
|
|
356
393
|
}
|
|
357
394
|
writeEmbeddedMeta() {
|
|
@@ -408,7 +445,7 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
408
445
|
throw new FtUnreachableCaseError('SWCQTT22113', field.headingQuotedType);
|
|
409
446
|
}
|
|
410
447
|
if (field.headingWritePrefixSpace) {
|
|
411
|
-
this._writer?.write(
|
|
448
|
+
this._writer?.write(FtSerializationCore.PrefixSpaceChar);
|
|
412
449
|
}
|
|
413
450
|
if (fieldQuoted) {
|
|
414
451
|
this._writer?.write(this.quoteChar);
|
|
@@ -447,7 +484,7 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
447
484
|
this._writer?.write(field.definition.fixedWidthNullValueText);
|
|
448
485
|
}
|
|
449
486
|
else {
|
|
450
|
-
const valueText = field.
|
|
487
|
+
const valueText = field.formatValue();
|
|
451
488
|
const rawText = this.encodeFixedWidthValueText(valueText, field);
|
|
452
489
|
this._writer?.write(rawText);
|
|
453
490
|
}
|
|
@@ -457,7 +494,7 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
457
494
|
this._writer?.write('');
|
|
458
495
|
}
|
|
459
496
|
else {
|
|
460
|
-
const valueText = field.
|
|
497
|
+
const valueText = field.formatValue();
|
|
461
498
|
let fieldQuoted;
|
|
462
499
|
switch (field.valueQuotedType) {
|
|
463
500
|
case FtQuotedType.Never:
|
|
@@ -478,7 +515,7 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
478
515
|
throw new FtUnreachableCaseError('SWCQTT22114', field.valueQuotedType);
|
|
479
516
|
}
|
|
480
517
|
if (field.valueWritePrefixSpace) {
|
|
481
|
-
this._writer?.write(
|
|
518
|
+
this._writer?.write(FtSerializationCore.PrefixSpaceChar);
|
|
482
519
|
}
|
|
483
520
|
if (fieldQuoted) {
|
|
484
521
|
this._writer?.write(this.quoteChar);
|
|
@@ -490,7 +527,7 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
490
527
|
}
|
|
491
528
|
}
|
|
492
529
|
}
|
|
493
|
-
if (!field.constant && !field.
|
|
530
|
+
if (!field.constant && !field.valueAssigned) {
|
|
494
531
|
// Field was not assigned a value, check null sequence redirects
|
|
495
532
|
if (!field.isNull()) {
|
|
496
533
|
throw new Error('Field value not assigned');
|
|
@@ -624,7 +661,7 @@ export class FtSerializationWriter extends SerializationCore {
|
|
|
624
661
|
case FtTruncateType.NullChar:
|
|
625
662
|
return nullChar.repeat(definition.width);
|
|
626
663
|
case FtTruncateType.Exception:
|
|
627
|
-
throw new
|
|
664
|
+
throw new FtSerializationError(FtSerializationErrorCode.FieldTruncated, `Text truncation: ${text}`);
|
|
628
665
|
default:
|
|
629
666
|
throw new FtUnreachableCaseError('SWCTTT22117', truncateType);
|
|
630
667
|
}
|