@wisemen/nestjs-custom-fields 2.0.1 → 4.0.0
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 +34 -0
- package/dist/custom-field-rules.d.ts +2 -0
- package/dist/custom-field-type-contract.d.ts +2 -0
- package/dist/custom-field-type-contract.js.map +1 -1
- package/dist/custom-field-types/index.d.ts +1 -0
- package/dist/custom-field-types/index.js +1 -0
- package/dist/custom-field-types/index.js.map +1 -1
- package/dist/custom-field-types/reference/index.d.ts +7 -0
- package/dist/custom-field-types/reference/index.js +8 -0
- package/dist/custom-field-types/reference/index.js.map +1 -0
- package/dist/custom-field-types/reference/reference.contract.d.ts +12 -0
- package/dist/custom-field-types/reference/reference.contract.js +2 -0
- package/dist/custom-field-types/reference/reference.contract.js.map +1 -0
- package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.d.ts +1 -0
- package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.js +68 -0
- package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.js.map +1 -0
- package/dist/custom-field-types/reference/reference.custom-field-value.validator.d.ts +5 -0
- package/dist/custom-field-types/reference/reference.custom-field-value.validator.js +41 -0
- package/dist/custom-field-types/reference/reference.custom-field-value.validator.js.map +1 -0
- package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.d.ts +1 -0
- package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.js +94 -0
- package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.js.map +1 -0
- package/dist/custom-field-types/reference/reference.definition-validation.d.ts +7 -0
- package/dist/custom-field-types/reference/reference.definition-validation.js +24 -0
- package/dist/custom-field-types/reference/reference.definition-validation.js.map +1 -0
- package/dist/custom-field-types/reference/reference.dto.d.ts +9 -0
- package/dist/custom-field-types/reference/reference.dto.js +34 -0
- package/dist/custom-field-types/reference/reference.dto.js.map +1 -0
- package/dist/custom-field-types/reference/reference.format.d.ts +5 -0
- package/dist/custom-field-types/reference/reference.format.js +7 -0
- package/dist/custom-field-types/reference/reference.format.js.map +1 -0
- package/dist/custom-field-types/reference/reference.rules.d.ts +5 -0
- package/dist/custom-field-types/reference/reference.rules.js +2 -0
- package/dist/custom-field-types/reference/reference.rules.js.map +1 -0
- package/dist/custom-field-types/reference/reference.value.d.ts +5 -0
- package/dist/custom-field-types/reference/reference.value.js +2 -0
- package/dist/custom-field-types/reference/reference.value.js.map +1 -0
- package/dist/dto/custom-field-value.dto.d.ts +7 -4
- package/dist/dto/custom-field-value.dto.js +6 -2
- package/dist/dto/custom-field-value.dto.js.map +1 -1
- package/dist/dto/custom-field-value.dto.unit.test.js +5 -1
- package/dist/dto/custom-field-value.dto.unit.test.js.map +1 -1
- package/dist/enum/custom-field-type.enum.d.ts +2 -1
- package/dist/enum/custom-field-type.enum.js +1 -0
- package/dist/enum/custom-field-type.enum.js.map +1 -1
- package/dist/factory/custom-field-definition.factory.js +6 -1
- package/dist/factory/custom-field-definition.factory.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/typeorm/custom-field-value.column.js +2 -0
- package/dist/typeorm/custom-field-value.column.js.map +1 -1
- package/dist/validators/custom-field-value.validator.js +4 -0
- package/dist/validators/custom-field-value.validator.js.map +1 -1
- package/package.json +8 -10
- package/skills/getting-started/SKILL.md +34 -0
package/README.md
CHANGED
|
@@ -128,6 +128,40 @@ When upgrading from 1.x to 2.0.0, generate a migration for the new `views`
|
|
|
128
128
|
column and backfill `views` for your existing definitions in the same release.
|
|
129
129
|
Without a backfill, every existing definition is hidden in every view.
|
|
130
130
|
|
|
131
|
+
### Reference Fields
|
|
132
|
+
|
|
133
|
+
Use `CustomFieldType.REFERENCE` for a field that points to another record. The
|
|
134
|
+
value is the referenced record's ID as a non-empty string. The package does not
|
|
135
|
+
know which entity is referenced: map the definition's `entityType` and `key` to
|
|
136
|
+
the right route in your frontend.
|
|
137
|
+
|
|
138
|
+
Rules are optional. `format` restricts the ID to a UUID
|
|
139
|
+
(`ReferenceCustomFieldFormat.UUID`), digits only
|
|
140
|
+
(`ReferenceCustomFieldFormat.NUMERIC`) or letters and digits only
|
|
141
|
+
(`ReferenceCustomFieldFormat.ALPHANUMERIC`), and `regex` adds a custom pattern.
|
|
142
|
+
When both are set, the value must pass both.
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
import { ReferenceCustomFieldFormat } from '@wisemen/nestjs-custom-fields'
|
|
146
|
+
|
|
147
|
+
const customerField = customFieldDefinition(CustomFieldType.REFERENCE, {
|
|
148
|
+
tenantUuid: null,
|
|
149
|
+
entityType: CustomFieldEntityType.TICKET,
|
|
150
|
+
key: 'customer',
|
|
151
|
+
label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
|
|
152
|
+
description: null,
|
|
153
|
+
isRequired: false,
|
|
154
|
+
rules: {
|
|
155
|
+
format: ReferenceCustomFieldFormat.UUID
|
|
156
|
+
}
|
|
157
|
+
})
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
When upgrading from 3.x to 4.0.0, handle `CustomFieldType.REFERENCE` wherever
|
|
161
|
+
you `switch` over `CustomFieldType` or build a `Record<CustomFieldType, ...>`;
|
|
162
|
+
those no longer type-check until the new case is added. No database migration is
|
|
163
|
+
needed: `type` is stored as `varchar` and `rules` as `jsonb`.
|
|
164
|
+
|
|
131
165
|
## Step 3: Store Values On The Entity With The Custom Column
|
|
132
166
|
|
|
133
167
|
Resolved custom field values live on your own entity. Use
|
|
@@ -5,6 +5,7 @@ import type { DateCustomFieldRules as DateCustomFieldRulesModel } from '#src/cus
|
|
|
5
5
|
import type { MonetaryCustomFieldRules as MonetaryCustomFieldRulesModel } from '#src/custom-field-types/monetary/monetary.rules.js';
|
|
6
6
|
import type { MultiSelectCustomFieldRules as MultiSelectCustomFieldRulesModel } from '#src/custom-field-types/multi-select/multi-select.rules.js';
|
|
7
7
|
import type { NumberCustomFieldRules as NumberCustomFieldRulesModel } from '#src/custom-field-types/number/number.rules.js';
|
|
8
|
+
import type { ReferenceCustomFieldRules as ReferenceCustomFieldRulesModel } from '#src/custom-field-types/reference/reference.rules.js';
|
|
8
9
|
import type { SelectCustomFieldRules as SelectCustomFieldRulesModel } from '#src/custom-field-types/single-select/single-select.rules.js';
|
|
9
10
|
import type { TextArrayCustomFieldRules as TextArrayCustomFieldRulesModel } from '#src/custom-field-types/text-array/text-array.rules.js';
|
|
10
11
|
import type { TextCustomFieldRules as TextCustomFieldRulesModel } from '#src/custom-field-types/text/text.rules.js';
|
|
@@ -21,6 +22,7 @@ export type TimestampCustomFieldRules = TimestampCustomFieldRulesModel;
|
|
|
21
22
|
export type SelectCustomFieldRules = SelectCustomFieldRulesModel;
|
|
22
23
|
export type MultiSelectCustomFieldRules = MultiSelectCustomFieldRulesModel;
|
|
23
24
|
export type MonetaryCustomFieldRules = MonetaryCustomFieldRulesModel;
|
|
25
|
+
export type ReferenceCustomFieldRules = ReferenceCustomFieldRulesModel;
|
|
24
26
|
export type CustomFieldRulesByType<T extends CustomFieldType> = CustomFieldRulesFor<T>;
|
|
25
27
|
export type CustomFieldRules = {
|
|
26
28
|
[T in CustomFieldType]: CustomFieldRulesByType<T>;
|
|
@@ -3,6 +3,7 @@ import type { DateCustomFieldTypeContract } from '#src/custom-field-types/date/d
|
|
|
3
3
|
import type { MonetaryCustomFieldTypeContract } from '#src/custom-field-types/monetary/monetary.contract.js';
|
|
4
4
|
import type { MultiSelectCustomFieldTypeContract } from '#src/custom-field-types/multi-select/multi-select.contract.js';
|
|
5
5
|
import type { NumberCustomFieldTypeContract } from '#src/custom-field-types/number/number.contract.js';
|
|
6
|
+
import type { ReferenceCustomFieldTypeContract } from '#src/custom-field-types/reference/reference.contract.js';
|
|
6
7
|
import type { SingleSelectCustomFieldTypeContract } from '#src/custom-field-types/single-select/single-select.contract.js';
|
|
7
8
|
import type { TextArrayCustomFieldTypeContract } from '#src/custom-field-types/text-array/text-array.contract.js';
|
|
8
9
|
import type { TextCustomFieldTypeContract } from '#src/custom-field-types/text/text.contract.js';
|
|
@@ -29,6 +30,7 @@ export type CustomFieldTypeContract = Satisfies<{
|
|
|
29
30
|
[CustomFieldType.SINGLE_SELECT]: SingleSelectCustomFieldTypeContract;
|
|
30
31
|
[CustomFieldType.MULTI_SELECT]: MultiSelectCustomFieldTypeContract;
|
|
31
32
|
[CustomFieldType.MONETARY]: MonetaryCustomFieldTypeContract;
|
|
33
|
+
[CustomFieldType.REFERENCE]: ReferenceCustomFieldTypeContract;
|
|
32
34
|
}, Record<CustomFieldType, CustomFieldTypeContractBase>>;
|
|
33
35
|
export type CustomFieldDomainValueByType<T extends CustomFieldType> = CustomFieldTypeContract[T]['value'];
|
|
34
36
|
export type CustomFieldColumnValueByType<T extends CustomFieldType> = CustomFieldTypeContract[T]['columnValue'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-field-type-contract.js","sourceRoot":"","sources":["../lib/custom-field-type-contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"custom-field-type-contract.js","sourceRoot":"","sources":["../lib/custom-field-type-contract.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA"}
|
|
@@ -3,6 +3,7 @@ export * from './date/index.js';
|
|
|
3
3
|
export * from './monetary/index.js';
|
|
4
4
|
export * from './multi-select/index.js';
|
|
5
5
|
export * from './number/index.js';
|
|
6
|
+
export * from './reference/index.js';
|
|
6
7
|
export * from './single-select/index.js';
|
|
7
8
|
export * from './text-array/index.js';
|
|
8
9
|
export * from './text/index.js';
|
|
@@ -3,6 +3,7 @@ export * from './date/index.js';
|
|
|
3
3
|
export * from './monetary/index.js';
|
|
4
4
|
export * from './multi-select/index.js';
|
|
5
5
|
export * from './number/index.js';
|
|
6
|
+
export * from './reference/index.js';
|
|
6
7
|
export * from './single-select/index.js';
|
|
7
8
|
export * from './text-array/index.js';
|
|
8
9
|
export * from './text/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/custom-field-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/custom-field-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './reference.contract.js';
|
|
2
|
+
export * from './reference.definition-validation.js';
|
|
3
|
+
export * from './reference.dto.js';
|
|
4
|
+
export * from './reference.format.js';
|
|
5
|
+
export * from './reference.rules.js';
|
|
6
|
+
export * from './reference.custom-field-value.validator.js';
|
|
7
|
+
export * from './reference.value.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './reference.contract.js';
|
|
2
|
+
export * from './reference.definition-validation.js';
|
|
3
|
+
export * from './reference.dto.js';
|
|
4
|
+
export * from './reference.format.js';
|
|
5
|
+
export * from './reference.rules.js';
|
|
6
|
+
export * from './reference.custom-field-value.validator.js';
|
|
7
|
+
export * from './reference.value.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sCAAsC,CAAA;AACpD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,6CAA6C,CAAA;AAC3D,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DefineContract } from '#src/custom-field-type-contract.js';
|
|
2
|
+
import type { ReferenceCustomFieldFormat } from './reference.format.js';
|
|
3
|
+
export type ReferenceCustomFieldTypeContract = DefineContract<{
|
|
4
|
+
value: string;
|
|
5
|
+
columnValue: string;
|
|
6
|
+
rules: {
|
|
7
|
+
format?: ReferenceCustomFieldFormat;
|
|
8
|
+
regex?: string;
|
|
9
|
+
};
|
|
10
|
+
rulesMode: 'optional';
|
|
11
|
+
choicesMode: 'none';
|
|
12
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.contract.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.contract.ts"],"names":[],"mappings":""}
|
package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import { expect } from 'expect';
|
|
3
|
+
import { LocalizedString } from '@wisemen/localized-string';
|
|
4
|
+
import { CustomFieldDefinitionError } from '#src/errors/custom-field-definition.error.js';
|
|
5
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
6
|
+
import { customFieldDefinition } from '#src/factory/custom-field-definition.factory.js';
|
|
7
|
+
import { ReferenceCustomFieldFormat } from './reference.format.js';
|
|
8
|
+
describe('reference customFieldDefinition', () => {
|
|
9
|
+
it('creates a reference custom field definition without rules', () => {
|
|
10
|
+
const definition = customFieldDefinition(CustomFieldType.REFERENCE, {
|
|
11
|
+
tenantUuid: null,
|
|
12
|
+
entityType: 'ticket',
|
|
13
|
+
key: 'customer',
|
|
14
|
+
label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
|
|
15
|
+
description: null,
|
|
16
|
+
isRequired: false
|
|
17
|
+
});
|
|
18
|
+
expect(definition.type).toBe(CustomFieldType.REFERENCE);
|
|
19
|
+
expect(definition.choices).toBeNull();
|
|
20
|
+
expect(definition.rules).toBeNull();
|
|
21
|
+
});
|
|
22
|
+
it('creates a reference custom field definition with a format and regex', () => {
|
|
23
|
+
const definition = customFieldDefinition(CustomFieldType.REFERENCE, {
|
|
24
|
+
tenantUuid: null,
|
|
25
|
+
entityType: 'ticket',
|
|
26
|
+
key: 'customer',
|
|
27
|
+
label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
|
|
28
|
+
description: null,
|
|
29
|
+
isRequired: false,
|
|
30
|
+
rules: {
|
|
31
|
+
format: ReferenceCustomFieldFormat.NUMERIC,
|
|
32
|
+
regex: '^[0-9]{6}$'
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
expect(definition.rules).toEqual({
|
|
36
|
+
type: CustomFieldType.REFERENCE,
|
|
37
|
+
format: ReferenceCustomFieldFormat.NUMERIC,
|
|
38
|
+
regex: '^[0-9]{6}$'
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
it('rejects a reference field whose format is unsupported', () => {
|
|
42
|
+
expect(() => customFieldDefinition(CustomFieldType.REFERENCE, {
|
|
43
|
+
tenantUuid: null,
|
|
44
|
+
entityType: 'ticket',
|
|
45
|
+
key: 'customer',
|
|
46
|
+
label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
|
|
47
|
+
description: null,
|
|
48
|
+
isRequired: false,
|
|
49
|
+
rules: {
|
|
50
|
+
format: 'email'
|
|
51
|
+
}
|
|
52
|
+
})).toThrow(new CustomFieldDefinitionError('Reference custom field format must be a supported format'));
|
|
53
|
+
});
|
|
54
|
+
it('rejects a reference field whose regex is invalid', () => {
|
|
55
|
+
expect(() => customFieldDefinition(CustomFieldType.REFERENCE, {
|
|
56
|
+
tenantUuid: null,
|
|
57
|
+
entityType: 'ticket',
|
|
58
|
+
key: 'customer',
|
|
59
|
+
label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
|
|
60
|
+
description: null,
|
|
61
|
+
isRequired: false,
|
|
62
|
+
rules: {
|
|
63
|
+
regex: '['
|
|
64
|
+
}
|
|
65
|
+
})).toThrow(new CustomFieldDefinitionError('Reference custom field regex must be a valid regular expression'));
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=reference.custom-field-definition.factory.unit.test.js.map
|
package/dist/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.custom-field-definition.factory.unit.test.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.custom-field-definition.factory.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CustomFieldDefinitionFieldsByType } from '#src/custom-field-definition.js';
|
|
2
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
3
|
+
type ReferenceCustomFieldDefinition = CustomFieldDefinitionFieldsByType<CustomFieldType.REFERENCE>;
|
|
4
|
+
export declare function validateReferenceCustomFieldValue(definition: ReferenceCustomFieldDefinition, value: string): void;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isAlphanumeric, isNumberString, isUUID } from 'class-validator';
|
|
2
|
+
import { CustomFieldValueValidationError } from '#src/validators/custom-field-value-validation.error.js';
|
|
3
|
+
import { exhaustiveCheck } from '#src/exhaustive-check.js';
|
|
4
|
+
import { ReferenceCustomFieldFormat } from './reference.format.js';
|
|
5
|
+
export function validateReferenceCustomFieldValue(definition, value) {
|
|
6
|
+
if (value.trim() === '') {
|
|
7
|
+
throw new CustomFieldValueValidationError('Reference custom field value can not be empty');
|
|
8
|
+
}
|
|
9
|
+
const rules = definition.rules;
|
|
10
|
+
if (rules === null) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (rules.format !== undefined) {
|
|
14
|
+
validateReferenceFormat(rules.format, value);
|
|
15
|
+
}
|
|
16
|
+
if (rules.regex !== undefined && !new RegExp(rules.regex).test(value)) {
|
|
17
|
+
throw new CustomFieldValueValidationError('Reference custom field value must match the configured regex');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function validateReferenceFormat(format, value) {
|
|
21
|
+
switch (format) {
|
|
22
|
+
case ReferenceCustomFieldFormat.UUID:
|
|
23
|
+
if (!isUUID(value)) {
|
|
24
|
+
throw new CustomFieldValueValidationError('Reference custom field value must be a valid UUID');
|
|
25
|
+
}
|
|
26
|
+
return;
|
|
27
|
+
case ReferenceCustomFieldFormat.NUMERIC:
|
|
28
|
+
if (!isNumberString(value, { no_symbols: true })) {
|
|
29
|
+
throw new CustomFieldValueValidationError('Reference custom field value must be numeric');
|
|
30
|
+
}
|
|
31
|
+
return;
|
|
32
|
+
case ReferenceCustomFieldFormat.ALPHANUMERIC:
|
|
33
|
+
if (!isAlphanumeric(value)) {
|
|
34
|
+
throw new CustomFieldValueValidationError('Reference custom field value must be alphanumeric');
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
default:
|
|
38
|
+
exhaustiveCheck(format);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=reference.custom-field-value.validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.custom-field-value.validator.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.custom-field-value.validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAA;AAExG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAIlE,MAAM,UAAU,iCAAiC,CAC/C,UAA0C,EAC1C,KAAa;IAEb,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,+BAA+B,CAAC,+CAA+C,CAAC,CAAA;IAC5F,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAE9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,uBAAuB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,+BAA+B,CAAC,8DAA8D,CAAC,CAAA;IAC3G,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAkC,EAAE,KAAa;IAChF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,0BAA0B,CAAC,IAAI;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,+BAA+B,CAAC,mDAAmD,CAAC,CAAA;YAChG,CAAC;YACD,OAAM;QACR,KAAK,0BAA0B,CAAC,OAAO;YACrC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,+BAA+B,CAAC,8CAA8C,CAAC,CAAA;YAC3F,CAAC;YACD,OAAM;QACR,KAAK,0BAA0B,CAAC,YAAY;YAC1C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,+BAA+B,CAAC,mDAAmD,CAAC,CAAA;YAChG,CAAC;YACD,OAAM;QACR;YACE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC"}
|
package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import { LocalizedString } from '@wisemen/localized-string';
|
|
3
|
+
import { customFieldDefinition } from '#src/factory/custom-field-definition.factory.js';
|
|
4
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
5
|
+
import { validateCustomFieldValue } from '#src/validators/custom-field-value.validator.js';
|
|
6
|
+
import { CustomFieldValueValidationError } from '#src/validators/custom-field-value-validation.error.js';
|
|
7
|
+
import { expect } from 'expect';
|
|
8
|
+
import { ReferenceCustomFieldFormat } from './reference.format.js';
|
|
9
|
+
function referenceDefinition(rules) {
|
|
10
|
+
return customFieldDefinition(CustomFieldType.REFERENCE, {
|
|
11
|
+
tenantUuid: null,
|
|
12
|
+
entityType: 'ticket',
|
|
13
|
+
key: 'customer',
|
|
14
|
+
label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
|
|
15
|
+
description: null,
|
|
16
|
+
isRequired: false,
|
|
17
|
+
rules
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
describe('reference validateCustomFieldValue', () => {
|
|
21
|
+
it('accepts any non-empty reference value without rules', () => {
|
|
22
|
+
const definition = referenceDefinition();
|
|
23
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
24
|
+
definitionUuid: definition.uuid,
|
|
25
|
+
type: CustomFieldType.REFERENCE,
|
|
26
|
+
value: 'customer-42'
|
|
27
|
+
})).not.toThrow();
|
|
28
|
+
});
|
|
29
|
+
it('rejects an empty reference value', () => {
|
|
30
|
+
const definition = referenceDefinition();
|
|
31
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
32
|
+
definitionUuid: definition.uuid,
|
|
33
|
+
type: CustomFieldType.REFERENCE,
|
|
34
|
+
value: ' '
|
|
35
|
+
})).toThrow(new CustomFieldValueValidationError('Reference custom field value can not be empty'));
|
|
36
|
+
});
|
|
37
|
+
it('accepts a uuid reference value', () => {
|
|
38
|
+
const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.UUID });
|
|
39
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
40
|
+
definitionUuid: definition.uuid,
|
|
41
|
+
type: CustomFieldType.REFERENCE,
|
|
42
|
+
value: '0b8f7a3e-7c1d-4f4e-9a0a-2f5f6c8d9e10'
|
|
43
|
+
})).not.toThrow();
|
|
44
|
+
});
|
|
45
|
+
it('rejects a reference value that is not a uuid', () => {
|
|
46
|
+
const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.UUID });
|
|
47
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
48
|
+
definitionUuid: definition.uuid,
|
|
49
|
+
type: CustomFieldType.REFERENCE,
|
|
50
|
+
value: 'customer-42'
|
|
51
|
+
})).toThrow(new CustomFieldValueValidationError('Reference custom field value must be a valid UUID'));
|
|
52
|
+
});
|
|
53
|
+
it('accepts a numeric reference value', () => {
|
|
54
|
+
const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.NUMERIC });
|
|
55
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
56
|
+
definitionUuid: definition.uuid,
|
|
57
|
+
type: CustomFieldType.REFERENCE,
|
|
58
|
+
value: '42'
|
|
59
|
+
})).not.toThrow();
|
|
60
|
+
});
|
|
61
|
+
it('rejects a reference value that is not numeric', () => {
|
|
62
|
+
const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.NUMERIC });
|
|
63
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
64
|
+
definitionUuid: definition.uuid,
|
|
65
|
+
type: CustomFieldType.REFERENCE,
|
|
66
|
+
value: '12a'
|
|
67
|
+
})).toThrow(new CustomFieldValueValidationError('Reference custom field value must be numeric'));
|
|
68
|
+
});
|
|
69
|
+
it('accepts an alphanumeric reference value', () => {
|
|
70
|
+
const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.ALPHANUMERIC });
|
|
71
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
72
|
+
definitionUuid: definition.uuid,
|
|
73
|
+
type: CustomFieldType.REFERENCE,
|
|
74
|
+
value: 'CUS42'
|
|
75
|
+
})).not.toThrow();
|
|
76
|
+
});
|
|
77
|
+
it('rejects a reference value that is not alphanumeric', () => {
|
|
78
|
+
const definition = referenceDefinition({ format: ReferenceCustomFieldFormat.ALPHANUMERIC });
|
|
79
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
80
|
+
definitionUuid: definition.uuid,
|
|
81
|
+
type: CustomFieldType.REFERENCE,
|
|
82
|
+
value: 'CUS-42'
|
|
83
|
+
})).toThrow(new CustomFieldValueValidationError('Reference custom field value must be alphanumeric'));
|
|
84
|
+
});
|
|
85
|
+
it('rejects a reference value that does not match the regex', () => {
|
|
86
|
+
const definition = referenceDefinition({ regex: '^CUS-[0-9]+$' });
|
|
87
|
+
expect(() => validateCustomFieldValue(definition, {
|
|
88
|
+
definitionUuid: definition.uuid,
|
|
89
|
+
type: CustomFieldType.REFERENCE,
|
|
90
|
+
value: 'ORD-1'
|
|
91
|
+
})).toThrow(new CustomFieldValueValidationError('Reference custom field value must match the configured regex'));
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=reference.custom-field-value.validator.unit.test.js.map
|
package/dist/custom-field-types/reference/reference.custom-field-value.validator.unit.test.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.custom-field-value.validator.unit.test.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.custom-field-value.validator.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ResolvedCustomFieldDefinitionFields } from '#src/custom-field-definition.js';
|
|
2
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
3
|
+
type ReferenceCustomFieldDefinition = Extract<ResolvedCustomFieldDefinitionFields, {
|
|
4
|
+
type: CustomFieldType.REFERENCE;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function validateReferenceCustomFieldDefinition(definition: ReferenceCustomFieldDefinition): void;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CustomFieldDefinitionError } from '#src/errors/custom-field-definition.error.js';
|
|
2
|
+
import { ReferenceCustomFieldFormat } from './reference.format.js';
|
|
3
|
+
export function validateReferenceCustomFieldDefinition(definition) {
|
|
4
|
+
if (definition.choices !== null) {
|
|
5
|
+
throw new CustomFieldDefinitionError('Only select custom fields can define choices');
|
|
6
|
+
}
|
|
7
|
+
const rules = definition.rules;
|
|
8
|
+
if (rules === null) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (rules.format !== undefined
|
|
12
|
+
&& !Object.values(ReferenceCustomFieldFormat).includes(rules.format)) {
|
|
13
|
+
throw new CustomFieldDefinitionError('Reference custom field format must be a supported format');
|
|
14
|
+
}
|
|
15
|
+
if (rules.regex !== undefined) {
|
|
16
|
+
try {
|
|
17
|
+
new RegExp(rules.regex);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
throw new CustomFieldDefinitionError('Reference custom field regex must be a valid regular expression');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=reference.definition-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.definition-validation.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.definition-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAA;AAEzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAIlE,MAAM,UAAU,sCAAsC,CAAC,UAA0C;IAC/F,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,0BAA0B,CAAC,8CAA8C,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAE9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;WACvB,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACpE,CAAC;QACD,MAAM,IAAI,0BAA0B,CAAC,0DAA0D,CAAC,CAAA;IAClG,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,0BAA0B,CAAC,iEAAiE,CAAC,CAAA;QACzG,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseCustomFieldValueDto } from '#src/dto/base-custom-field-value.dto.js';
|
|
2
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
3
|
+
import { ReferenceCustomFieldValue } from '#src/custom-field-types/reference/reference.value.js';
|
|
4
|
+
export declare class ReferenceCustomFieldValueDto extends BaseCustomFieldValueDto {
|
|
5
|
+
type: CustomFieldType.REFERENCE;
|
|
6
|
+
value: string;
|
|
7
|
+
parse(): ReferenceCustomFieldValue;
|
|
8
|
+
static from(customFieldValue: ReferenceCustomFieldValue): ReferenceCustomFieldValueDto;
|
|
9
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
11
|
+
import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
|
|
12
|
+
import { BaseCustomFieldValueDto, createCustomFieldValueDto } from '#src/dto/base-custom-field-value.dto.js';
|
|
13
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
14
|
+
export class ReferenceCustomFieldValueDto extends BaseCustomFieldValueDto {
|
|
15
|
+
value;
|
|
16
|
+
parse() {
|
|
17
|
+
return this.toCustomFieldValue(CustomFieldType.REFERENCE, this.value);
|
|
18
|
+
}
|
|
19
|
+
static from(customFieldValue) {
|
|
20
|
+
return createCustomFieldValueDto(new ReferenceCustomFieldValueDto(), CustomFieldType.REFERENCE, customFieldValue.definitionUuid, customFieldValue.value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
__decorate([
|
|
24
|
+
ApiProperty({ enum: [CustomFieldType.REFERENCE] }),
|
|
25
|
+
IsEnum([CustomFieldType.REFERENCE]),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], ReferenceCustomFieldValueDto.prototype, "type", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
ApiProperty({ type: String }),
|
|
30
|
+
IsString(),
|
|
31
|
+
IsNotEmpty(),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], ReferenceCustomFieldValueDto.prototype, "value", void 0);
|
|
34
|
+
//# sourceMappingURL=reference.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.dto.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AAC5G,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,MAAM,OAAO,4BAA6B,SAAQ,uBAAuB;IAQvE,KAAK,CAAQ;IAEb,KAAK;QACH,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,gBAA2C;QACrD,OAAO,yBAAyB,CAAC,IAAI,4BAA4B,EAAE,EAAE,eAAe,CAAC,SAAS,EAAE,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC1J,CAAC;CACF;AAdS;IAFP,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IAClD,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;;0DACG;AAKvC;IAHC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE;IACV,UAAU,EAAE;;2DACA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var ReferenceCustomFieldFormat;
|
|
2
|
+
(function (ReferenceCustomFieldFormat) {
|
|
3
|
+
ReferenceCustomFieldFormat["UUID"] = "uuid";
|
|
4
|
+
ReferenceCustomFieldFormat["NUMERIC"] = "numeric";
|
|
5
|
+
ReferenceCustomFieldFormat["ALPHANUMERIC"] = "alphanumeric";
|
|
6
|
+
})(ReferenceCustomFieldFormat || (ReferenceCustomFieldFormat = {}));
|
|
7
|
+
//# sourceMappingURL=reference.format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.format.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.format.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,2CAAa,CAAA;IACb,iDAAmB,CAAA;IACnB,2DAA6B,CAAA;AAC/B,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
2
|
+
import type { ReferenceCustomFieldTypeContract } from './reference.contract.js';
|
|
3
|
+
export type ReferenceCustomFieldRules = {
|
|
4
|
+
type: CustomFieldType.REFERENCE;
|
|
5
|
+
} & ReferenceCustomFieldTypeContract['rules'];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.rules.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.rules.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { BaseCustomFieldValue } from '#src/custom-field-value.js';
|
|
2
|
+
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
3
|
+
import type { ReferenceCustomFieldTypeContract } from './reference.contract.js';
|
|
4
|
+
export type ReferenceCustomFieldValue = BaseCustomFieldValue<CustomFieldType.REFERENCE, ReferenceCustomFieldTypeContract['value']>;
|
|
5
|
+
export type ReferenceCustomFieldColumnValue = BaseCustomFieldValue<CustomFieldType.REFERENCE, ReferenceCustomFieldTypeContract['columnValue']>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.value.js","sourceRoot":"","sources":["../../../lib/custom-field-types/reference/reference.value.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ApiPropertyOptions } from '@nestjs/swagger';
|
|
2
|
-
import type { BooleanCustomFieldValue, DateCustomFieldValue, MonetaryCustomFieldValue, MultiSelectCustomFieldValue, NumberCustomFieldValue, SingleSelectCustomFieldValue, TextArrayCustomFieldValue, TextCustomFieldValue, TimestampCustomFieldValue } from '#src/custom-field-types/index.js';
|
|
2
|
+
import type { BooleanCustomFieldValue, DateCustomFieldValue, MonetaryCustomFieldValue, MultiSelectCustomFieldValue, NumberCustomFieldValue, ReferenceCustomFieldValue, SingleSelectCustomFieldValue, TextArrayCustomFieldValue, TextCustomFieldValue, TimestampCustomFieldValue } from '#src/custom-field-types/index.js';
|
|
3
3
|
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
4
4
|
import type { CustomFieldValue } from '#src/custom-field-value.js';
|
|
5
5
|
import { BooleanCustomFieldValueDto } from '#src/custom-field-types/boolean/boolean.dto.js';
|
|
@@ -7,6 +7,7 @@ import { DateCustomFieldValueDto } from '#src/custom-field-types/date/date.dto.j
|
|
|
7
7
|
import { MonetaryCustomFieldValueDto } from '#src/custom-field-types/monetary/monetary.dto.js';
|
|
8
8
|
import { MultiSelectCustomFieldValueDto } from '#src/custom-field-types/multi-select/multi-select.dto.js';
|
|
9
9
|
import { NumberCustomFieldValueDto } from '#src/custom-field-types/number/number.dto.js';
|
|
10
|
+
import { ReferenceCustomFieldValueDto } from '#src/custom-field-types/reference/reference.dto.js';
|
|
10
11
|
import { SingleSelectCustomFieldValueDto } from '#src/custom-field-types/single-select/single-select.dto.js';
|
|
11
12
|
import { TextArrayCustomFieldValueDto } from '#src/custom-field-types/text-array/text-array.dto.js';
|
|
12
13
|
import { TextCustomFieldValueDto } from '#src/custom-field-types/text/text.dto.js';
|
|
@@ -23,11 +24,12 @@ declare abstract class _CustomFieldValueDto extends BaseCustomFieldValueDto {
|
|
|
23
24
|
static from(customFieldValue: SingleSelectCustomFieldValue): SingleSelectCustomFieldValueDto;
|
|
24
25
|
static from(customFieldValue: MultiSelectCustomFieldValue): MultiSelectCustomFieldValueDto;
|
|
25
26
|
static from(customFieldValue: MonetaryCustomFieldValue): MonetaryCustomFieldValueDto;
|
|
27
|
+
static from(customFieldValue: ReferenceCustomFieldValue): ReferenceCustomFieldValueDto;
|
|
26
28
|
static from(customFieldValue: CustomFieldValue): CustomFieldValueDto;
|
|
27
29
|
}
|
|
28
30
|
export declare const CustomFieldValueDto: typeof _CustomFieldValueDto;
|
|
29
|
-
export type CustomFieldValueDto = BooleanCustomFieldValueDto | DateCustomFieldValueDto | TimestampCustomFieldValueDto | MonetaryCustomFieldValueDto | MultiSelectCustomFieldValueDto | NumberCustomFieldValueDto | SingleSelectCustomFieldValueDto | TextArrayCustomFieldValueDto | TextCustomFieldValueDto;
|
|
30
|
-
export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
|
|
31
|
+
export type CustomFieldValueDto = BooleanCustomFieldValueDto | DateCustomFieldValueDto | TimestampCustomFieldValueDto | MonetaryCustomFieldValueDto | MultiSelectCustomFieldValueDto | NumberCustomFieldValueDto | ReferenceCustomFieldValueDto | SingleSelectCustomFieldValueDto | TextArrayCustomFieldValueDto | TextCustomFieldValueDto;
|
|
32
|
+
export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
|
|
31
33
|
export declare const CUSTOM_FIELD_VALUE_DTO_BY_TYPE: {
|
|
32
34
|
text: typeof TextCustomFieldValueDto;
|
|
33
35
|
text_array: typeof TextArrayCustomFieldValueDto;
|
|
@@ -38,8 +40,9 @@ export declare const CUSTOM_FIELD_VALUE_DTO_BY_TYPE: {
|
|
|
38
40
|
single_select: typeof SingleSelectCustomFieldValueDto;
|
|
39
41
|
multi_select: typeof MultiSelectCustomFieldValueDto;
|
|
40
42
|
monetary: typeof MonetaryCustomFieldValueDto;
|
|
43
|
+
reference: typeof ReferenceCustomFieldValueDto;
|
|
41
44
|
};
|
|
42
|
-
export declare const CUSTOM_FIELD_VALUE_DTOS: (typeof BooleanCustomFieldValueDto | typeof DateCustomFieldValueDto | typeof MonetaryCustomFieldValueDto | typeof MultiSelectCustomFieldValueDto | typeof NumberCustomFieldValueDto | typeof SingleSelectCustomFieldValueDto | typeof TextArrayCustomFieldValueDto | typeof TextCustomFieldValueDto | typeof TimestampCustomFieldValueDto)[];
|
|
45
|
+
export declare const CUSTOM_FIELD_VALUE_DTOS: (typeof BooleanCustomFieldValueDto | typeof DateCustomFieldValueDto | typeof MonetaryCustomFieldValueDto | typeof MultiSelectCustomFieldValueDto | typeof NumberCustomFieldValueDto | typeof ReferenceCustomFieldValueDto | typeof SingleSelectCustomFieldValueDto | typeof TextArrayCustomFieldValueDto | typeof TextCustomFieldValueDto | typeof TimestampCustomFieldValueDto)[];
|
|
43
46
|
export declare function getCustomFieldValueDtoDiscriminatorSubTypes(): Array<{
|
|
44
47
|
name: CustomFieldType;
|
|
45
48
|
value: CustomFieldValueDtoClass;
|
|
@@ -6,6 +6,7 @@ import { DateCustomFieldValueDto } from '#src/custom-field-types/date/date.dto.j
|
|
|
6
6
|
import { MonetaryCustomFieldValueDto } from '#src/custom-field-types/monetary/monetary.dto.js';
|
|
7
7
|
import { MultiSelectCustomFieldValueDto } from '#src/custom-field-types/multi-select/multi-select.dto.js';
|
|
8
8
|
import { NumberCustomFieldValueDto } from '#src/custom-field-types/number/number.dto.js';
|
|
9
|
+
import { ReferenceCustomFieldValueDto } from '#src/custom-field-types/reference/reference.dto.js';
|
|
9
10
|
import { SingleSelectCustomFieldValueDto } from '#src/custom-field-types/single-select/single-select.dto.js';
|
|
10
11
|
import { TextArrayCustomFieldValueDto } from '#src/custom-field-types/text-array/text-array.dto.js';
|
|
11
12
|
import { TextCustomFieldValueDto } from '#src/custom-field-types/text/text.dto.js';
|
|
@@ -33,13 +34,15 @@ class _CustomFieldValueDto extends BaseCustomFieldValueDto {
|
|
|
33
34
|
return MultiSelectCustomFieldValueDto.from(customFieldValue);
|
|
34
35
|
case CustomFieldType.MONETARY:
|
|
35
36
|
return MonetaryCustomFieldValueDto.from(customFieldValue);
|
|
37
|
+
case CustomFieldType.REFERENCE:
|
|
38
|
+
return ReferenceCustomFieldValueDto.from(customFieldValue);
|
|
36
39
|
default:
|
|
37
40
|
return exhaustiveCheck(customFieldValue);
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
44
|
export const CustomFieldValueDto = _CustomFieldValueDto;
|
|
42
|
-
export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
|
|
45
|
+
export { BooleanCustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto };
|
|
43
46
|
export const CUSTOM_FIELD_VALUE_DTO_BY_TYPE = {
|
|
44
47
|
[CustomFieldType.TEXT]: TextCustomFieldValueDto,
|
|
45
48
|
[CustomFieldType.TEXT_ARRAY]: TextArrayCustomFieldValueDto,
|
|
@@ -49,7 +52,8 @@ export const CUSTOM_FIELD_VALUE_DTO_BY_TYPE = {
|
|
|
49
52
|
[CustomFieldType.TIMESTAMP]: TimestampCustomFieldValueDto,
|
|
50
53
|
[CustomFieldType.SINGLE_SELECT]: SingleSelectCustomFieldValueDto,
|
|
51
54
|
[CustomFieldType.MULTI_SELECT]: MultiSelectCustomFieldValueDto,
|
|
52
|
-
[CustomFieldType.MONETARY]: MonetaryCustomFieldValueDto
|
|
55
|
+
[CustomFieldType.MONETARY]: MonetaryCustomFieldValueDto,
|
|
56
|
+
[CustomFieldType.REFERENCE]: ReferenceCustomFieldValueDto
|
|
53
57
|
};
|
|
54
58
|
export const CUSTOM_FIELD_VALUE_DTOS = Object.values(CUSTOM_FIELD_VALUE_DTO_BY_TYPE);
|
|
55
59
|
function getCustomFieldValueDtoSchemaPathMapping() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-field-value.dto.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAA2B,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAErG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAA;AAC9F,OAAO,EAAE,8BAA8B,EAAE,MAAM,0DAA0D,CAAA;AACzG,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4DAA4D,CAAA;AAC5G,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAA;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAA;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAI1E,gEAAgE;AAChE,MAAe,oBAAqB,SAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"file":"custom-field-value.dto.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { expect } from 'expect';
|
|
|
3
3
|
import { validate } from 'class-validator';
|
|
4
4
|
import { plainDate, timestamp } from '@wisemen/datewise';
|
|
5
5
|
import { Currency, Monetary } from '@wisemen/monetary';
|
|
6
|
-
import { BooleanCustomFieldValueDto, CUSTOM_FIELD_VALUE_DTOS, CustomFieldValueDto, DateCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto, TimestampCustomFieldValueDto } from '#src/dto/custom-field-value.dto.js';
|
|
6
|
+
import { BooleanCustomFieldValueDto, CUSTOM_FIELD_VALUE_DTOS, CustomFieldValueDto, DateCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto, TimestampCustomFieldValueDto } from '#src/dto/custom-field-value.dto.js';
|
|
7
7
|
import { generateUuid } from '#src/custom-field-definition.uuid.js';
|
|
8
8
|
import { CustomFieldType } from '#src/enum/custom-field-type.enum.js';
|
|
9
9
|
describe('TimestampCustomFieldValueDto', () => {
|
|
@@ -66,6 +66,10 @@ describe('CustomFieldValueDto', () => {
|
|
|
66
66
|
{
|
|
67
67
|
input: { definitionUuid, type: CustomFieldType.MONETARY, value: new Monetary(100, Currency.EUR, 2) },
|
|
68
68
|
expectedClass: MonetaryCustomFieldValueDto
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
input: { definitionUuid, type: CustomFieldType.REFERENCE, value: 'customer-42' },
|
|
72
|
+
expectedClass: ReferenceCustomFieldValueDto
|
|
69
73
|
}
|
|
70
74
|
];
|
|
71
75
|
for (const testCase of testCases) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-field-value.dto.unit.test.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.unit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"custom-field-value.dto.unit.test.js","sourceRoot":"","sources":["../../lib/dto/custom-field-value.dto.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,8 @@ export declare enum CustomFieldType {
|
|
|
9
9
|
DATE = "date",
|
|
10
10
|
SINGLE_SELECT = "single_select",
|
|
11
11
|
MULTI_SELECT = "multi_select",
|
|
12
|
-
MONETARY = "monetary"
|
|
12
|
+
MONETARY = "monetary",
|
|
13
|
+
REFERENCE = "reference"
|
|
13
14
|
}
|
|
14
15
|
export declare function CustomFieldTypeColumn(options?: Omit<ColumnOptions, 'type' | 'enum' | 'enumName'>): PropertyDecorator;
|
|
15
16
|
export declare function CustomFieldTypeApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
|
|
@@ -11,6 +11,7 @@ export var CustomFieldType;
|
|
|
11
11
|
CustomFieldType["SINGLE_SELECT"] = "single_select";
|
|
12
12
|
CustomFieldType["MULTI_SELECT"] = "multi_select";
|
|
13
13
|
CustomFieldType["MONETARY"] = "monetary";
|
|
14
|
+
CustomFieldType["REFERENCE"] = "reference";
|
|
14
15
|
})(CustomFieldType || (CustomFieldType = {}));
|
|
15
16
|
export function CustomFieldTypeColumn(options) {
|
|
16
17
|
return Column({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-field-type.enum.js","sourceRoot":"","sources":["../../lib/enum/custom-field-type.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAA;AAE/C,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"custom-field-type.enum.js","sourceRoot":"","sources":["../../lib/enum/custom-field-type.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAA;AAE/C,MAAM,CAAN,IAAY,eAWX;AAXD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,gCAAa,CAAA;IACb,kDAA+B,CAAA;IAC/B,gDAA6B,CAAA;IAC7B,wCAAqB,CAAA;IACrB,0CAAuB,CAAA;AACzB,CAAC,EAXW,eAAe,KAAf,eAAe,QAW1B;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA2D;IAE3D,OAAO,MAAM,CAAC;QACZ,GAAG,OAAO;QACV,IAAI,EAAE,SAAS;KAChB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4B;IAE5B,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { validateDateCustomFieldDefinition } from '#src/custom-field-types/date/
|
|
|
4
4
|
import { validateMonetaryCustomFieldDefinition } from '#src/custom-field-types/monetary/monetary.definition-validation.js';
|
|
5
5
|
import { validateMultiSelectCustomFieldDefinition } from '#src/custom-field-types/multi-select/multi-select.definition-validation.js';
|
|
6
6
|
import { validateNumberCustomFieldDefinition } from '#src/custom-field-types/number/number.definition-validation.js';
|
|
7
|
+
import { validateReferenceCustomFieldDefinition } from '#src/custom-field-types/reference/reference.definition-validation.js';
|
|
7
8
|
import { validateSingleSelectCustomFieldDefinition } from '#src/custom-field-types/single-select/single-select.definition-validation.js';
|
|
8
9
|
import { validateTextArrayCustomFieldDefinition } from '#src/custom-field-types/text-array/text-array.definition-validation.js';
|
|
9
10
|
import { validateTextCustomFieldDefinition } from '#src/custom-field-types/text/text.definition-validation.js';
|
|
@@ -28,7 +29,8 @@ function normalizeCustomFieldDefinition(definition) {
|
|
|
28
29
|
case CustomFieldType.BOOLEAN:
|
|
29
30
|
case CustomFieldType.DATE:
|
|
30
31
|
case CustomFieldType.TIMESTAMP:
|
|
31
|
-
case CustomFieldType.MONETARY:
|
|
32
|
+
case CustomFieldType.MONETARY:
|
|
33
|
+
case CustomFieldType.REFERENCE: {
|
|
32
34
|
const customFieldDefinition = {
|
|
33
35
|
uuid: generateUuid(),
|
|
34
36
|
tenantUuid: definition.tenantUuid,
|
|
@@ -136,6 +138,9 @@ function validateCustomFieldDefinition(definition) {
|
|
|
136
138
|
case CustomFieldType.MONETARY:
|
|
137
139
|
validateMonetaryCustomFieldDefinition(definition);
|
|
138
140
|
return;
|
|
141
|
+
case CustomFieldType.REFERENCE:
|
|
142
|
+
validateReferenceCustomFieldDefinition(definition);
|
|
143
|
+
return;
|
|
139
144
|
default:
|
|
140
145
|
exhaustiveCheck(definition);
|
|
141
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-field-definition.factory.js","sourceRoot":"","sources":["../../lib/factory/custom-field-definition.factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,YAAY,EAAE,MAAM,sCAAsC,CAAA;AAG9F,OAAO,EAAE,oCAAoC,EAAE,MAAM,kEAAkE,CAAA;AACvH,OAAO,EAAE,iCAAiC,EAAE,MAAM,4DAA4D,CAAA;AAC9G,OAAO,EAAE,qCAAqC,EAAE,MAAM,oEAAoE,CAAA;AAC1H,OAAO,EAAE,wCAAwC,EAAE,MAAM,4EAA4E,CAAA;AACrI,OAAO,EAAE,mCAAmC,EAAE,MAAM,gEAAgE,CAAA;AACpH,OAAO,EAAE,yCAAyC,EAAE,MAAM,8EAA8E,CAAA;AACxI,OAAO,EAAE,sCAAsC,EAAE,MAAM,wEAAwE,CAAA;AAC/H,OAAO,EAAE,iCAAiC,EAAE,MAAM,4DAA4D,CAAA;AAC9G,OAAO,EAAE,sCAAsC,EAAE,MAAM,sEAAsE,CAAA;AAC7H,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAA;AAwDzF,MAAM,UAAU,qBAAqB,CACnC,IAAO,EACP,UAAuD;IAEvD,OAAO,8BAA8B,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAO,EACP,UAAuD;IAEvD,OAAO;QACL,GAAG,UAAU;QACb,IAAI;KAC4B,CAAA;AACpC,CAAC;AAKD,SAAS,8BAA8B,CACrC,UAAsC;IAEtC,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,eAAe,CAAC,IAAI,CAAC;QAC1B,KAAK,eAAe,CAAC,UAAU,CAAC;QAChC,KAAK,eAAe,CAAC,MAAM,CAAC;QAC5B,KAAK,eAAe,CAAC,OAAO,CAAC;QAC7B,KAAK,eAAe,CAAC,IAAI,CAAC;QAC1B,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-field-definition.factory.js","sourceRoot":"","sources":["../../lib/factory/custom-field-definition.factory.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ export * from './custom-field-rules.js';
|
|
|
5
5
|
export * from './custom-field-value.js';
|
|
6
6
|
export * from './repositories/index.js';
|
|
7
7
|
export { IsCustomFieldsValues as IsCustomFields } from './decorators/is-custom-fields.decorator.js';
|
|
8
|
-
export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
|
|
8
|
+
export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
|
|
9
|
+
export { ReferenceCustomFieldFormat } from './custom-field-types/reference/reference.format.js';
|
|
9
10
|
export { CustomFieldDefinitionError } from './errors/custom-field-definition.error.js';
|
|
10
11
|
export { customFieldDefinition } from './factory/custom-field-definition.factory.js';
|
|
11
12
|
export { customFieldValue } from './factory/custom-field-value.factory.js';
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,8 @@ export * from './custom-field-rules.js';
|
|
|
4
4
|
export * from './custom-field-value.js';
|
|
5
5
|
export * from './repositories/index.js';
|
|
6
6
|
export { IsCustomFieldsValues as IsCustomFields } from './decorators/is-custom-fields.decorator.js';
|
|
7
|
-
export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
|
|
7
|
+
export { CustomFieldValueApiExtraModels, CustomFieldValueDtoApiProperty, BooleanCustomFieldValueDto, CustomFieldValueDto, DateCustomFieldValueDto, TimestampCustomFieldValueDto, MonetaryCustomFieldValueDto, MultiSelectCustomFieldValueDto, NumberCustomFieldValueDto, ReferenceCustomFieldValueDto, SingleSelectCustomFieldValueDto, TextArrayCustomFieldValueDto, TextCustomFieldValueDto } from './dto/custom-field-value.dto.js';
|
|
8
|
+
export { ReferenceCustomFieldFormat } from './custom-field-types/reference/reference.format.js';
|
|
8
9
|
export { CustomFieldDefinitionError } from './errors/custom-field-definition.error.js';
|
|
9
10
|
export { customFieldDefinition } from './factory/custom-field-definition.factory.js';
|
|
10
11
|
export { customFieldValue } from './factory/custom-field-value.factory.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAE5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACnG,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAE/F,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACrH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAA;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAA;AACrG,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAE5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACnG,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,4BAA4B,EAC5B,+BAA+B,EAC/B,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AAC/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAE/F,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACrH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAA;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAA;AACrG,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA"}
|
|
@@ -45,6 +45,7 @@ export class CustomFieldValueTransformer {
|
|
|
45
45
|
case CustomFieldType.BOOLEAN:
|
|
46
46
|
case CustomFieldType.SINGLE_SELECT:
|
|
47
47
|
case CustomFieldType.MULTI_SELECT:
|
|
48
|
+
case CustomFieldType.REFERENCE:
|
|
48
49
|
return columnValue;
|
|
49
50
|
case CustomFieldType.DATE:
|
|
50
51
|
return {
|
|
@@ -73,6 +74,7 @@ export class CustomFieldValueTransformer {
|
|
|
73
74
|
case CustomFieldType.BOOLEAN:
|
|
74
75
|
case CustomFieldType.SINGLE_SELECT:
|
|
75
76
|
case CustomFieldType.MULTI_SELECT:
|
|
77
|
+
case CustomFieldType.REFERENCE:
|
|
76
78
|
return column;
|
|
77
79
|
case CustomFieldType.DATE:
|
|
78
80
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-field-value.column.js","sourceRoot":"","sources":["../../lib/typeorm/custom-field-value.column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAY,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAwC,MAAM,SAAS,CAAA;AAEtE,MAAM,mBAAmB,GAAG,EAA6B,CAAA;AACzD,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAE9B,MAAM,UAAU,sBAAsB,CAAC,OAAqD;IAC1F,OAAO,MAAM,CAAC;QACZ,GAAG,OAAO;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,IAAI,2BAA2B,EAAE;KAC/C,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,OAAO,2BAA2B;IAC9B,oBAAoB,CAAsB;IAC1C,oBAAoB,CAAsB;IAElD;QACE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAA;QAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAA;IACxD,CAAC;IAkBD,IAAI,CACF,KAA2E;QAE3E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;QACtD,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAgBD,EAAE,CACA,KAA+D;QAE/D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAEO,iBAAiB,CAAC,WAA6B;QACrD,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,eAAe,CAAC,IAAI,CAAC;YAC1B,KAAK,eAAe,CAAC,UAAU,CAAC;YAChC,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5B,KAAK,eAAe,CAAC,OAAO,CAAC;YAC7B,KAAK,eAAe,CAAC,aAAa,CAAC;YACnC,KAAK,eAAe,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"custom-field-value.column.js","sourceRoot":"","sources":["../../lib/typeorm/custom-field-value.column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAY,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAwC,MAAM,SAAS,CAAA;AAEtE,MAAM,mBAAmB,GAAG,EAA6B,CAAA;AACzD,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAE9B,MAAM,UAAU,sBAAsB,CAAC,OAAqD;IAC1F,OAAO,MAAM,CAAC;QACZ,GAAG,OAAO;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,IAAI,2BAA2B,EAAE;KAC/C,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,OAAO,2BAA2B;IAC9B,oBAAoB,CAAsB;IAC1C,oBAAoB,CAAsB;IAElD;QACE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAA;QAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAA;IACxD,CAAC;IAkBD,IAAI,CACF,KAA2E;QAE3E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;QACtD,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAgBD,EAAE,CACA,KAA+D;QAE/D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAEO,iBAAiB,CAAC,WAA6B;QACrD,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,eAAe,CAAC,IAAI,CAAC;YAC1B,KAAK,eAAe,CAAC,UAAU,CAAC;YAChC,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5B,KAAK,eAAe,CAAC,OAAO,CAAC;YAC7B,KAAK,eAAe,CAAC,aAAa,CAAC;YACnC,KAAK,eAAe,CAAC,YAAY,CAAC;YAClC,KAAK,eAAe,CAAC,SAAS;gBAC5B,OAAO,WAAW,CAAA;YACpB,KAAK,eAAe,CAAC,IAAI;gBACvB,OAAO;oBACL,GAAG,WAAW;oBACd,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC3E,CAAA;YACH,KAAK,eAAe,CAAC,SAAS;gBAC5B,OAAO;oBACL,GAAG,WAAW;oBACd,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC3E,CAAA;YACH,KAAK,eAAe,CAAC,QAAQ;gBAC3B,OAAO;oBACL,GAAG,WAAW;oBACd,KAAK,EAAE,IAAI,CAAC,aAAa,CACvB,IAAI,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;iBAC1H,CAAA;YACH;gBACE,OAAO,eAAe,CAAC,WAAW,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,MAA8B;QAC1D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,eAAe,CAAC,IAAI,CAAC;YAC1B,KAAK,eAAe,CAAC,UAAU,CAAC;YAChC,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5B,KAAK,eAAe,CAAC,OAAO,CAAC;YAC7B,KAAK,eAAe,CAAC,aAAa,CAAC;YACnC,KAAK,eAAe,CAAC,YAAY,CAAC;YAClC,KAAK,eAAe,CAAC,SAAS;gBAC5B,OAAO,MAAM,CAAA;YACf,KAAK,eAAe,CAAC,IAAI;gBACvB,OAAO;oBACL,GAAG,MAAM;oBACT,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACxE,CAAA;YACH,KAAK,eAAe,CAAC,SAAS;gBAC5B,OAAO;oBACL,GAAG,MAAM;oBACT,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACxE,CAAA;YACH,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;gBAC5D,OAAO;oBACL,GAAG,MAAM;oBACT,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC1G,CAAA;YACH,CAAC;YACD;gBACE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAEO,aAAa,CAAS,KAAgC;QAC5D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAC1E,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
|
|
@@ -3,6 +3,7 @@ import { validateDateCustomFieldValue } from '#src/custom-field-types/date/date.
|
|
|
3
3
|
import { validateMonetaryCustomFieldValue } from '#src/custom-field-types/monetary/monetary.custom-field-value.validator.js';
|
|
4
4
|
import { validateMultiSelectCustomFieldValue } from '#src/custom-field-types/multi-select/multi-select.custom-field-value.validator.js';
|
|
5
5
|
import { validateNumberCustomFieldValue } from '#src/custom-field-types/number/number.custom-field-value.validator.js';
|
|
6
|
+
import { validateReferenceCustomFieldValue } from '#src/custom-field-types/reference/reference.custom-field-value.validator.js';
|
|
6
7
|
import { validateSingleSelectCustomFieldValue } from '#src/custom-field-types/single-select/single-select.custom-field-value.validator.js';
|
|
7
8
|
import { validateTextArrayCustomFieldValue } from '#src/custom-field-types/text-array/text-array.custom-field-value.validator.js';
|
|
8
9
|
import { validateTextCustomFieldValue } from '#src/custom-field-types/text/text.custom-field-value.validator.js';
|
|
@@ -74,6 +75,9 @@ export function validateCustomFieldValue(definition, value) {
|
|
|
74
75
|
case CustomFieldType.MONETARY:
|
|
75
76
|
validateMonetaryCustomFieldValue(definition, value.value);
|
|
76
77
|
return;
|
|
78
|
+
case CustomFieldType.REFERENCE:
|
|
79
|
+
validateReferenceCustomFieldValue(definition, value.value);
|
|
80
|
+
return;
|
|
77
81
|
default:
|
|
78
82
|
exhaustiveCheck(value);
|
|
79
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-field-value.validator.js","sourceRoot":"","sources":["../../lib/validators/custom-field-value.validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"custom-field-value.validator.js","sourceRoot":"","sources":["../../lib/validators/custom-field-value.validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wisemen/nestjs-custom-fields",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -17,14 +17,6 @@
|
|
|
17
17
|
"dist/",
|
|
18
18
|
"skills/"
|
|
19
19
|
],
|
|
20
|
-
"dependencies": {
|
|
21
|
-
"@wisemen/api-error": "^1.1.1",
|
|
22
|
-
"@wisemen/datewise": "^1.5.0",
|
|
23
|
-
"@wisemen/localized-string": "^0.1.4",
|
|
24
|
-
"@wisemen/monetary": "^2.0.0",
|
|
25
|
-
"@wisemen/nestjs-typeorm": "^1.4.1",
|
|
26
|
-
"@wisemen/validators": "^0.0.29"
|
|
27
|
-
},
|
|
28
20
|
"peerDependencies": {
|
|
29
21
|
"@nestjs/common": "^11.1.28 || ^12.0.0",
|
|
30
22
|
"@nestjs/core": "^11.1.28 || ^12.0.0",
|
|
@@ -32,7 +24,13 @@
|
|
|
32
24
|
"@opentelemetry/api": "^1.9.1",
|
|
33
25
|
"class-transformer": "^0.5.1",
|
|
34
26
|
"class-validator": "^0.15.1",
|
|
35
|
-
"typeorm": "^1.1.0"
|
|
27
|
+
"typeorm": "^1.1.0",
|
|
28
|
+
"@wisemen/datewise": "^1.5.0",
|
|
29
|
+
"@wisemen/localized-string": "^0.1.4",
|
|
30
|
+
"@wisemen/monetary": "^2.0.0",
|
|
31
|
+
"@wisemen/validators": "^0.0.29",
|
|
32
|
+
"@wisemen/api-error": "^1.1.1",
|
|
33
|
+
"@wisemen/nestjs-typeorm": "^1.4.1"
|
|
36
34
|
},
|
|
37
35
|
"devDependencies": {
|
|
38
36
|
"@types/node": "25.3.0",
|
|
@@ -132,6 +132,40 @@ When upgrading from 1.x to 2.0.0, generate a migration for the new `views`
|
|
|
132
132
|
column and backfill `views` for your existing definitions in the same release.
|
|
133
133
|
Without a backfill, every existing definition is hidden in every view.
|
|
134
134
|
|
|
135
|
+
### Reference Fields
|
|
136
|
+
|
|
137
|
+
Use `CustomFieldType.REFERENCE` for a field that points to another record. The
|
|
138
|
+
value is the referenced record's ID as a non-empty string. The package does not
|
|
139
|
+
know which entity is referenced: map the definition's `entityType` and `key` to
|
|
140
|
+
the right route in your frontend.
|
|
141
|
+
|
|
142
|
+
Rules are optional. `format` restricts the ID to a UUID
|
|
143
|
+
(`ReferenceCustomFieldFormat.UUID`), digits only
|
|
144
|
+
(`ReferenceCustomFieldFormat.NUMERIC`) or letters and digits only
|
|
145
|
+
(`ReferenceCustomFieldFormat.ALPHANUMERIC`), and `regex` adds a custom pattern.
|
|
146
|
+
When both are set, the value must pass both.
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
import { ReferenceCustomFieldFormat } from '@wisemen/nestjs-custom-fields'
|
|
150
|
+
|
|
151
|
+
const customerField = customFieldDefinition(CustomFieldType.REFERENCE, {
|
|
152
|
+
tenantUuid: null,
|
|
153
|
+
entityType: CustomFieldEntityType.TICKET,
|
|
154
|
+
key: 'customer',
|
|
155
|
+
label: new LocalizedString([{ locale: 'en', value: 'Customer' }]),
|
|
156
|
+
description: null,
|
|
157
|
+
isRequired: false,
|
|
158
|
+
rules: {
|
|
159
|
+
format: ReferenceCustomFieldFormat.UUID
|
|
160
|
+
}
|
|
161
|
+
})
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
When upgrading from 3.x to 4.0.0, handle `CustomFieldType.REFERENCE` wherever
|
|
165
|
+
you `switch` over `CustomFieldType` or build a `Record<CustomFieldType, ...>`;
|
|
166
|
+
those no longer type-check until the new case is added. No database migration is
|
|
167
|
+
needed: `type` is stored as `varchar` and `rules` as `jsonb`.
|
|
168
|
+
|
|
135
169
|
## Step 3: Store Values On The Entity With The Custom Column
|
|
136
170
|
|
|
137
171
|
Resolved custom field values live on your own entity. Use
|