tscommons-esm-models-field 0.0.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.
@@ -0,0 +1,22 @@
1
+ export declare enum ECommonsAdamantineFieldType {
2
+ BOOLEAN = "boolean",
3
+ DATETIME = "datetime",
4
+ DATE = "date",
5
+ EMAIL = "email",
6
+ ENUM = "enum",
7
+ FLOAT = "float",
8
+ HEXRGB = "hexrgb",
9
+ INT = "int",
10
+ SMALLINT = "smallint",
11
+ STRING = "string",
12
+ TEXT = "text",
13
+ TIME = "time",
14
+ TINYINT = "tinyint",
15
+ URL = "url",
16
+ DURATION = "duration"
17
+ }
18
+ export declare function toECommonsAdamantineFieldType(type: string): ECommonsAdamantineFieldType | undefined;
19
+ export declare function fromECommonsAdamantineFieldType(type: ECommonsAdamantineFieldType): string;
20
+ export declare function isECommonsAdamantineFieldType(test: unknown): test is ECommonsAdamantineFieldType;
21
+ export declare function keyToECommonsAdamantineFieldType(key: string): ECommonsAdamantineFieldType;
22
+ export declare const ECOMMONS_ADAMANTINE_FIELD_TYPES: ECommonsAdamantineFieldType[];
@@ -0,0 +1,136 @@
1
+ import { commonsTypeIsString } from 'tscommons-esm-core';
2
+ // NB, this is about DataField.type, i.e. the types of Fields [data field rows, uppercase F] that are supported can can be created/updated/deleted through adamantine
3
+ // It is not about possible model field types, i.e. the fields [lower case f] of models within the databases
4
+ // The main difference is that STRINGARRAY doesn't exist here, as it is considered the same as enum
5
+ // It is confusing as there is considerable overlap between the values, even though they mean two different things!
6
+ export var ECommonsAdamantineFieldType;
7
+ (function (ECommonsAdamantineFieldType) {
8
+ ECommonsAdamantineFieldType["BOOLEAN"] = "boolean";
9
+ ECommonsAdamantineFieldType["DATETIME"] = "datetime";
10
+ ECommonsAdamantineFieldType["DATE"] = "date";
11
+ ECommonsAdamantineFieldType["EMAIL"] = "email";
12
+ ECommonsAdamantineFieldType["ENUM"] = "enum";
13
+ ECommonsAdamantineFieldType["FLOAT"] = "float";
14
+ ECommonsAdamantineFieldType["HEXRGB"] = "hexrgb";
15
+ ECommonsAdamantineFieldType["INT"] = "int";
16
+ ECommonsAdamantineFieldType["SMALLINT"] = "smallint";
17
+ ECommonsAdamantineFieldType["STRING"] = "string";
18
+ ECommonsAdamantineFieldType["TEXT"] = "text";
19
+ ECommonsAdamantineFieldType["TIME"] = "time";
20
+ ECommonsAdamantineFieldType["TINYINT"] = "tinyint";
21
+ ECommonsAdamantineFieldType["URL"] = "url";
22
+ ECommonsAdamantineFieldType["DURATION"] = "duration";
23
+ })(ECommonsAdamantineFieldType || (ECommonsAdamantineFieldType = {}));
24
+ export function toECommonsAdamantineFieldType(type) {
25
+ switch (type) {
26
+ case ECommonsAdamantineFieldType.BOOLEAN.toString():
27
+ return ECommonsAdamantineFieldType.BOOLEAN;
28
+ case ECommonsAdamantineFieldType.DATETIME.toString():
29
+ return ECommonsAdamantineFieldType.DATETIME;
30
+ case ECommonsAdamantineFieldType.DATE.toString():
31
+ return ECommonsAdamantineFieldType.DATE;
32
+ case ECommonsAdamantineFieldType.EMAIL.toString():
33
+ return ECommonsAdamantineFieldType.EMAIL;
34
+ case ECommonsAdamantineFieldType.ENUM.toString():
35
+ return ECommonsAdamantineFieldType.ENUM;
36
+ case ECommonsAdamantineFieldType.FLOAT.toString():
37
+ return ECommonsAdamantineFieldType.FLOAT;
38
+ case ECommonsAdamantineFieldType.HEXRGB.toString():
39
+ return ECommonsAdamantineFieldType.HEXRGB;
40
+ case ECommonsAdamantineFieldType.INT.toString():
41
+ return ECommonsAdamantineFieldType.INT;
42
+ case ECommonsAdamantineFieldType.SMALLINT.toString():
43
+ return ECommonsAdamantineFieldType.SMALLINT;
44
+ case ECommonsAdamantineFieldType.STRING.toString():
45
+ return ECommonsAdamantineFieldType.STRING;
46
+ case ECommonsAdamantineFieldType.TEXT.toString():
47
+ return ECommonsAdamantineFieldType.TEXT;
48
+ case ECommonsAdamantineFieldType.TIME.toString():
49
+ return ECommonsAdamantineFieldType.TIME;
50
+ case ECommonsAdamantineFieldType.TINYINT.toString():
51
+ return ECommonsAdamantineFieldType.TINYINT;
52
+ case ECommonsAdamantineFieldType.URL.toString():
53
+ return ECommonsAdamantineFieldType.URL;
54
+ case ECommonsAdamantineFieldType.DURATION.toString():
55
+ return ECommonsAdamantineFieldType.DURATION;
56
+ }
57
+ return undefined;
58
+ }
59
+ export function fromECommonsAdamantineFieldType(type) {
60
+ switch (type) {
61
+ case ECommonsAdamantineFieldType.BOOLEAN:
62
+ return ECommonsAdamantineFieldType.BOOLEAN.toString();
63
+ case ECommonsAdamantineFieldType.DATETIME:
64
+ return ECommonsAdamantineFieldType.DATETIME.toString();
65
+ case ECommonsAdamantineFieldType.DATE:
66
+ return ECommonsAdamantineFieldType.DATE.toString();
67
+ case ECommonsAdamantineFieldType.EMAIL:
68
+ return ECommonsAdamantineFieldType.EMAIL.toString();
69
+ case ECommonsAdamantineFieldType.ENUM:
70
+ return ECommonsAdamantineFieldType.ENUM.toString();
71
+ case ECommonsAdamantineFieldType.FLOAT:
72
+ return ECommonsAdamantineFieldType.FLOAT.toString();
73
+ case ECommonsAdamantineFieldType.HEXRGB:
74
+ return ECommonsAdamantineFieldType.HEXRGB.toString();
75
+ case ECommonsAdamantineFieldType.INT:
76
+ return ECommonsAdamantineFieldType.INT.toString();
77
+ case ECommonsAdamantineFieldType.SMALLINT:
78
+ return ECommonsAdamantineFieldType.SMALLINT.toString();
79
+ case ECommonsAdamantineFieldType.STRING:
80
+ return ECommonsAdamantineFieldType.STRING.toString();
81
+ case ECommonsAdamantineFieldType.TEXT:
82
+ return ECommonsAdamantineFieldType.TEXT.toString();
83
+ case ECommonsAdamantineFieldType.TIME:
84
+ return ECommonsAdamantineFieldType.TIME.toString();
85
+ case ECommonsAdamantineFieldType.TINYINT:
86
+ return ECommonsAdamantineFieldType.TINYINT.toString();
87
+ case ECommonsAdamantineFieldType.URL:
88
+ return ECommonsAdamantineFieldType.URL.toString();
89
+ case ECommonsAdamantineFieldType.DURATION:
90
+ return ECommonsAdamantineFieldType.DURATION.toString();
91
+ }
92
+ throw new Error('Unknown ECommonsAdamantineFieldType');
93
+ }
94
+ export function isECommonsAdamantineFieldType(test) {
95
+ if (!commonsTypeIsString(test))
96
+ return false;
97
+ return toECommonsAdamantineFieldType(test) !== undefined;
98
+ }
99
+ export function keyToECommonsAdamantineFieldType(key) {
100
+ switch (key) {
101
+ case 'BOOLEAN':
102
+ return ECommonsAdamantineFieldType.BOOLEAN;
103
+ case 'DATETIME':
104
+ return ECommonsAdamantineFieldType.DATETIME;
105
+ case 'DATE':
106
+ return ECommonsAdamantineFieldType.DATE;
107
+ case 'EMAIL':
108
+ return ECommonsAdamantineFieldType.EMAIL;
109
+ case 'ENUM':
110
+ return ECommonsAdamantineFieldType.ENUM;
111
+ case 'FLOAT':
112
+ return ECommonsAdamantineFieldType.FLOAT;
113
+ case 'HEXRGB':
114
+ return ECommonsAdamantineFieldType.HEXRGB;
115
+ case 'INT':
116
+ return ECommonsAdamantineFieldType.INT;
117
+ case 'SMALLINT':
118
+ return ECommonsAdamantineFieldType.SMALLINT;
119
+ case 'STRING':
120
+ return ECommonsAdamantineFieldType.STRING;
121
+ case 'TEXT':
122
+ return ECommonsAdamantineFieldType.TEXT;
123
+ case 'TIME':
124
+ return ECommonsAdamantineFieldType.TIME;
125
+ case 'TINYINT':
126
+ return ECommonsAdamantineFieldType.TINYINT;
127
+ case 'URL':
128
+ return ECommonsAdamantineFieldType.URL;
129
+ case 'DURATION':
130
+ return ECommonsAdamantineFieldType.DURATION;
131
+ }
132
+ throw new Error(`Unable to obtain ECommonsAdamantineFieldType for key: ${key}`);
133
+ }
134
+ export const ECOMMONS_ADAMANTINE_FIELD_TYPES = Object.keys(ECommonsAdamantineFieldType)
135
+ .map((e) => keyToECommonsAdamantineFieldType(e));
136
+ //# sourceMappingURL=ecommons-adamantine-field-type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecommons-adamantine-field-type.mjs","sourceRoot":"","sources":["../../src/enums/ecommons-adamantine-field-type.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ECommonsAdamantineFieldType, toECommonsAdamantineFieldType, fromECommonsAdamantineFieldType, isECommonsAdamantineFieldType, keyToECommonsAdamantineFieldType, ECOMMONS_ADAMANTINE_FIELD_TYPES } from './enums/ecommons-adamantine-field-type.mjs';
2
+ import { TCommonsAdamantineField, isTCommonsAdamantineField, encodeICommonsAdamantineField, decodeICommonsAdamantineField } from './types/tcommons-adamantine-field.mjs';
3
+ import { ICommonsAdamantineField, isICommonsAdamantineField } from './interfaces/icommons-adamantine-field.mjs';
4
+ export { ECommonsAdamantineFieldType, toECommonsAdamantineFieldType, fromECommonsAdamantineFieldType, isECommonsAdamantineFieldType, keyToECommonsAdamantineFieldType, ECOMMONS_ADAMANTINE_FIELD_TYPES, TCommonsAdamantineField, isTCommonsAdamantineField, encodeICommonsAdamantineField, decodeICommonsAdamantineField, ICommonsAdamantineField, isICommonsAdamantineField };
package/dist/index.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { ECommonsAdamantineFieldType, toECommonsAdamantineFieldType, fromECommonsAdamantineFieldType, isECommonsAdamantineFieldType, keyToECommonsAdamantineFieldType, ECOMMONS_ADAMANTINE_FIELD_TYPES } from './enums/ecommons-adamantine-field-type.mjs';
2
+ import { isTCommonsAdamantineField, encodeICommonsAdamantineField, decodeICommonsAdamantineField } from './types/tcommons-adamantine-field.mjs';
3
+ import { isICommonsAdamantineField } from './interfaces/icommons-adamantine-field.mjs';
4
+ export { ECommonsAdamantineFieldType, toECommonsAdamantineFieldType, fromECommonsAdamantineFieldType, isECommonsAdamantineFieldType, keyToECommonsAdamantineFieldType, ECOMMONS_ADAMANTINE_FIELD_TYPES, isTCommonsAdamantineField, encodeICommonsAdamantineField, decodeICommonsAdamantineField, isICommonsAdamantineField };
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAEL,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAA2B,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAChH,OAAO,EACN,2BAA2B,EAC3B,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAE/B,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAE7B,yBAAyB,EACzB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { CommonsFixedDuration, CommonsFixedDate } from 'tscommons-esm-core';
2
+ import { ICommonsModel } from 'tscommons-esm-models';
3
+ import { ECommonsAdamantineFieldType } from '../enums/ecommons-adamantine-field-type.mjs';
4
+ export interface ICommonsAdamantineField extends ICommonsModel {
5
+ name: string;
6
+ type: ECommonsAdamantineFieldType;
7
+ optional: boolean;
8
+ description?: string;
9
+ options?: string[];
10
+ multiple?: boolean;
11
+ defaultValue?: number | string | boolean | Date | CommonsFixedDate | CommonsFixedDuration | string[] | undefined;
12
+ alpha?: boolean;
13
+ }
14
+ export declare function isICommonsAdamantineField(test: unknown): test is ICommonsAdamantineField;
@@ -0,0 +1,28 @@
1
+ import { commonsTypeHasPropertyString, commonsTypeHasPropertyEnum, commonsTypeHasPropertyBoolean, commonsTypeHasPropertyStringOrUndefined, commonsTypeHasPropertyStringArrayOrUndefined, commonsTypeHasPropertyBooleanOrUndefined, commonsTypeHasPropertyDateOrUndefined, commonsTypeHasPropertyNumberOrUndefined, commonsTypeHasPropertyFixedDate, commonsTypeHasPropertyFixedDuration } from 'tscommons-esm-core';
2
+ import { isECommonsAdamantineFieldType } from '../enums/ecommons-adamantine-field-type.mjs';
3
+ export function isICommonsAdamantineField(test) {
4
+ if (!commonsTypeHasPropertyString(test, 'name'))
5
+ return false;
6
+ if (!commonsTypeHasPropertyEnum(test, 'type', isECommonsAdamantineFieldType))
7
+ return false;
8
+ if (!commonsTypeHasPropertyBoolean(test, 'optional'))
9
+ return false;
10
+ if (!commonsTypeHasPropertyStringOrUndefined(test, 'description'))
11
+ return false;
12
+ if (!commonsTypeHasPropertyStringArrayOrUndefined(test, 'options'))
13
+ return false;
14
+ if (!commonsTypeHasPropertyBooleanOrUndefined(test, 'multiple'))
15
+ return false;
16
+ if (!commonsTypeHasPropertyNumberOrUndefined(test, 'defaultValue')
17
+ && !commonsTypeHasPropertyStringOrUndefined(test, 'defaultValue')
18
+ && !commonsTypeHasPropertyBooleanOrUndefined(test, 'defaultValue')
19
+ && !commonsTypeHasPropertyDateOrUndefined(test, 'defaultValue')
20
+ && !commonsTypeHasPropertyFixedDate(test, 'defaultValue')
21
+ && !commonsTypeHasPropertyFixedDuration(test, 'defaultValue')
22
+ && !commonsTypeHasPropertyStringArrayOrUndefined(test, 'defaultValue'))
23
+ return false;
24
+ if (!commonsTypeHasPropertyBooleanOrUndefined(test, 'alpha'))
25
+ return false;
26
+ return true;
27
+ }
28
+ //# sourceMappingURL=icommons-adamantine-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icommons-adamantine-field.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-adamantine-field.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,uCAAuC,EACvC,4CAA4C,EAC5C,wCAAwC,EACxC,qCAAqC,EACrC,uCAAuC,EACvC,+BAA+B,EAC/B,mCAAmC,EAGpC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAA+B,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAazH,MAAM,UAAU,yBAAyB,CACvC,IAAa;IAEd,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,0BAA0B,CAA8B,IAAI,EAAE,MAAM,EAAE,6BAA6B,CAAC;QAAE,OAAO,KAAK,CAAC;IACxH,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAChF,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,IAAI,CAAC,wCAAwC,CAAC,IAAI,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9E,IACC,CAAC,uCAAuC,CAAC,IAAI,EAAE,cAAc,CAAC;WAC3D,CAAC,uCAAuC,CAAC,IAAI,EAAE,cAAc,CAAC;WAC9D,CAAC,wCAAwC,CAAC,IAAI,EAAE,cAAc,CAAC;WAC/D,CAAC,qCAAqC,CAAC,IAAI,EAAE,cAAc,CAAC;WAC5D,CAAC,+BAA+B,CAAC,IAAI,EAAE,cAAc,CAAC;WACtD,CAAC,mCAAmC,CAAC,IAAI,EAAE,cAAc,CAAC;WAC1D,CAAC,4CAA4C,CAAC,IAAI,EAAE,cAAc,CAAC;QACrE,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,wCAAwC,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3E,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { ICommonsModel } from 'tscommons-esm-models';
2
+ import { ICommonsAdamantineField } from '../interfaces/icommons-adamantine-field.mjs';
3
+ import { ECommonsAdamantineFieldType } from '../enums/ecommons-adamantine-field-type.mjs';
4
+ export type TCommonsAdamantineField = {
5
+ name: string;
6
+ type: ECommonsAdamantineFieldType;
7
+ optional: boolean;
8
+ } & ICommonsModel;
9
+ export declare function isTCommonsAdamantineField(test: unknown): test is TCommonsAdamantineField;
10
+ export declare function encodeICommonsAdamantineField(data: ICommonsAdamantineField): TCommonsAdamantineField;
11
+ export declare function decodeICommonsAdamantineField(encoded: TCommonsAdamantineField): ICommonsAdamantineField;
@@ -0,0 +1,106 @@
1
+ import { commonsTypeHasPropertyString, commonsTypeHasPropertyEnum, commonsTypeHasPropertyBoolean, commonsTypeHasPropertyStringOrUndefined, commonsTypeHasPropertyStringArrayOrUndefined, commonsTypeHasPropertyBooleanOrUndefined, commonsTypeHasProperty, commonsTypeHasPropertyNumber, commonsTypeHasPropertyStringArray, commonsTypeIsDate, commonsDateDateToYmdHis, commonsTypeIsFixedDate, commonsTypeIsFixedDuration, commonsTypeIsString, COMMONS_REGEX_PATTERN_DATETIME_YMDHIS, CommonsFixedDate, commonsTypeAttemptNumber, CommonsFixedDuration } from 'tscommons-esm-core';
2
+ import { isECommonsAdamantineFieldType } from '../enums/ecommons-adamantine-field-type.mjs';
3
+ export function isTCommonsAdamantineField(test) {
4
+ if (!commonsTypeHasPropertyString(test, 'name'))
5
+ return false;
6
+ if (!commonsTypeHasPropertyEnum(test, 'type', isECommonsAdamantineFieldType))
7
+ return false;
8
+ if (!commonsTypeHasPropertyBoolean(test, 'optional'))
9
+ return false;
10
+ if (!commonsTypeHasPropertyStringOrUndefined(test, 'description'))
11
+ return false;
12
+ if (!commonsTypeHasPropertyStringArrayOrUndefined(test, 'options'))
13
+ return false;
14
+ if (!commonsTypeHasPropertyBooleanOrUndefined(test, 'alpha'))
15
+ return false;
16
+ if (commonsTypeHasProperty(test, 'defaultValue')) {
17
+ if (!commonsTypeHasPropertyNumber(test, 'defaultValue')
18
+ && !commonsTypeHasPropertyBoolean(test, 'defaultValue')
19
+ && !commonsTypeHasPropertyString(test, 'defaultValue')
20
+ && !commonsTypeHasPropertyStringArray(test, 'defaultValue')
21
+ && test['defaultValue'] !== null)
22
+ return false;
23
+ }
24
+ return true;
25
+ }
26
+ export function encodeICommonsAdamantineField(data) {
27
+ const encoded = {
28
+ name: data.name,
29
+ type: data.type,
30
+ optional: data.optional
31
+ };
32
+ if (data.description !== undefined) {
33
+ encoded.description = data.description;
34
+ }
35
+ if (data.options !== undefined) {
36
+ encoded.options = data.options;
37
+ }
38
+ if (data.alpha !== undefined) {
39
+ encoded.alpha = data.alpha;
40
+ }
41
+ if (data.multiple !== undefined) {
42
+ encoded.multiple = data.multiple;
43
+ }
44
+ if (data.defaultValue !== undefined) {
45
+ // the fixed*_ is not ideal, but no other easy way to do it
46
+ if (commonsTypeIsDate(data.defaultValue)) {
47
+ encoded.defaultValue = commonsDateDateToYmdHis(data.defaultValue, true);
48
+ }
49
+ else if (commonsTypeIsFixedDate(data.defaultValue)) {
50
+ encoded.defaultValue = `fixeddate_${data.defaultValue.YmdHis}`;
51
+ }
52
+ else if (commonsTypeIsFixedDuration(data.defaultValue)) {
53
+ encoded.defaultValue = `fixedduration_${data.defaultValue.millis.toString(10)}`;
54
+ }
55
+ else {
56
+ encoded.defaultValue = data.defaultValue;
57
+ }
58
+ }
59
+ return encoded;
60
+ }
61
+ export function decodeICommonsAdamantineField(encoded) {
62
+ const decoded = {
63
+ name: encoded.name,
64
+ type: encoded.type,
65
+ optional: encoded.optional
66
+ };
67
+ if (encoded.description !== undefined)
68
+ decoded.description = encoded.description;
69
+ if (encoded.options !== undefined)
70
+ decoded.options = encoded.options;
71
+ if (encoded.alpha !== undefined)
72
+ decoded.alpha = encoded.alpha;
73
+ if (encoded.multiple !== undefined)
74
+ decoded.multiple = encoded.multiple;
75
+ if (encoded.defaultValue !== undefined) {
76
+ let value = encoded.defaultValue;
77
+ if (commonsTypeIsString(value)) {
78
+ // the fixed*_ is not ideal, but no other easy way to do it
79
+ if (value.startsWith('fixeddate_')) {
80
+ const parts = value.split('_');
81
+ if (parts.length === 2 && COMMONS_REGEX_PATTERN_DATETIME_YMDHIS.test(parts[1])) {
82
+ decoded.defaultValue = CommonsFixedDate.fromYmdHis(parts[1]);
83
+ }
84
+ }
85
+ else if (value.startsWith('fixedduration_')) {
86
+ const parts = value.split('_');
87
+ if (parts.length === 2) {
88
+ const millis = commonsTypeAttemptNumber(parts[1]);
89
+ if (millis !== undefined)
90
+ decoded.defaultValue = CommonsFixedDuration.fromMillis(millis);
91
+ }
92
+ }
93
+ else {
94
+ decoded.defaultValue = value;
95
+ }
96
+ }
97
+ else {
98
+ if (value === null)
99
+ value = undefined;
100
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
101
+ decoded.defaultValue = value;
102
+ }
103
+ }
104
+ return decoded;
105
+ }
106
+ //# sourceMappingURL=tcommons-adamantine-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tcommons-adamantine-field.mjs","sourceRoot":"","sources":["../../src/types/tcommons-adamantine-field.mts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "tscommons-esm-models-field",
3
+ "version": "0.0.2",
4
+ "description": "",
5
+ "scripts": {
6
+ "tsc": "./node_modules/typescript/bin/tsc",
7
+ "preprepare": "rm -rf ./dist; php ~/Dev/etim.php src/ && npm run tsc",
8
+ "publish-major": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version major && npm install && npm publish && git add . && git commit -m 'publish'",
9
+ "publish-minor": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version minor && npm install && npm publish && git add . && git commit -m 'publish'",
10
+ "publish-patch": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version patch && npm install && npm publish && git add . && git commit -m 'publish'"
11
+ },
12
+ "main": "dist/index.mjs",
13
+ "types": "dist/index.d.mjs",
14
+ "type": "module",
15
+ "author": "Pete Morris",
16
+ "license": "ISC",
17
+ "devDependencies": {
18
+ "@stylistic/eslint-plugin-ts": "^2.10.1",
19
+ "eslint-plugin-import": "^2.31.0",
20
+ "eslint-plugin-prefer-arrow-functions": "^3.4.1",
21
+ "typescript": "^5.6.3",
22
+ "typescript-eslint": "^8.14.0"
23
+ },
24
+ "files": [
25
+ "dist/**/*"
26
+ ],
27
+ "dependencies": {
28
+ "tscommons-esm-core": "^0.0.2",
29
+ "tscommons-esm-models": "^0.0.2"
30
+ }
31
+ }