@sprucelabs/schema 25.5.62 → 25.5.66

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.
Files changed (94) hide show
  1. package/build/esm/DynamicSchemaEntityImplementation.d.ts +1 -1
  2. package/build/esm/fields/AbstractField.d.ts +1 -1
  3. package/build/esm/fields/field.static.types.d.ts +1 -1
  4. package/build/esm/schemas.static.types.d.ts +1 -1
  5. package/build/esm/utilities/normalizeFieldValue.d.ts +1 -1
  6. package/package.json +15 -14
  7. package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.d.ts +0 -7
  8. package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.js +0 -93
  9. package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.d.ts +0 -18
  10. package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.js +0 -217
  11. package/build/esm/__tests__/behavioral/BuildSchema.test.d.ts +0 -5
  12. package/build/esm/__tests__/behavioral/BuildSchema.test.js +0 -66
  13. package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.d.ts +0 -7
  14. package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.js +0 -93
  15. package/build/esm/__tests__/behavioral/DroppingFields.test.d.ts +0 -5
  16. package/build/esm/__tests__/behavioral/DroppingFields.test.js +0 -86
  17. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.d.ts +0 -9
  18. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.js +0 -137
  19. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.d.ts +0 -5
  20. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.js +0 -146
  21. package/build/esm/__tests__/behavioral/GeneratesTemplates.test.d.ts +0 -5
  22. package/build/esm/__tests__/behavioral/GeneratesTemplates.test.js +0 -67
  23. package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.d.ts +0 -5
  24. package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.js +0 -29
  25. package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.d.ts +0 -11
  26. package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.js +0 -191
  27. package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.d.ts +0 -7
  28. package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.js +0 -88
  29. package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.d.ts +0 -17
  30. package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.js +0 -284
  31. package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.d.ts +0 -11
  32. package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.js +0 -111
  33. package/build/esm/__tests__/behavioral/HandlesRelationships.test.d.ts +0 -9
  34. package/build/esm/__tests__/behavioral/HandlesRelationships.test.js +0 -175
  35. package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.d.ts +0 -4
  36. package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.js +0 -37
  37. package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.d.ts +0 -6
  38. package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.js +0 -102
  39. package/build/esm/__tests__/behavioral/HandlesVersioning.test.d.ts +0 -8
  40. package/build/esm/__tests__/behavioral/HandlesVersioning.test.js +0 -93
  41. package/build/esm/__tests__/behavioral/IsIdWithVersion.test.d.ts +0 -4
  42. package/build/esm/__tests__/behavioral/IsIdWithVersion.test.js +0 -30
  43. package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.d.ts +0 -4
  44. package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.js +0 -57
  45. package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.d.ts +0 -6
  46. package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.js +0 -77
  47. package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.d.ts +0 -8
  48. package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.js +0 -148
  49. package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.d.ts +0 -6
  50. package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.js +0 -45
  51. package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.d.ts +0 -9
  52. package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.js +0 -138
  53. package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.d.ts +0 -4
  54. package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.js +0 -43
  55. package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.d.ts +0 -9
  56. package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.js +0 -104
  57. package/build/esm/__tests__/behavioral/UsingSchemas.test.d.ts +0 -13
  58. package/build/esm/__tests__/behavioral/UsingSchemas.test.js +0 -281
  59. package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.d.ts +0 -14
  60. package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.js +0 -140
  61. package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.d.ts +0 -15
  62. package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.js +0 -117
  63. package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.d.ts +0 -28
  64. package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.js +0 -674
  65. package/build/esm/__tests__/data/personWithCars.d.ts +0 -188
  66. package/build/esm/__tests__/data/personWithCars.js +0 -163
  67. package/build/esm/__tests__/data/versionedPersonWithCars.d.ts +0 -323
  68. package/build/esm/__tests__/data/versionedPersonWithCars.js +0 -281
  69. package/build/esm/__tests__/implementation/BooleanField.test.d.ts +0 -6
  70. package/build/esm/__tests__/implementation/BooleanField.test.js +0 -59
  71. package/build/esm/__tests__/implementation/DurationField.test.d.ts +0 -7
  72. package/build/esm/__tests__/implementation/DurationField.test.js +0 -45
  73. package/build/esm/__tests__/implementation/EmailField.test.d.ts +0 -4
  74. package/build/esm/__tests__/implementation/EmailField.test.js +0 -39
  75. package/build/esm/__tests__/implementation/ErrorMapUtil.test.d.ts +0 -11
  76. package/build/esm/__tests__/implementation/ErrorMapUtil.test.js +0 -176
  77. package/build/esm/__tests__/implementation/FieldFactory.test.d.ts +0 -4
  78. package/build/esm/__tests__/implementation/FieldFactory.test.js +0 -35
  79. package/build/esm/__tests__/implementation/FileField.test.d.ts +0 -19
  80. package/build/esm/__tests__/implementation/FileField.test.js +0 -125
  81. package/build/esm/__tests__/implementation/NumberField.test.d.ts +0 -5
  82. package/build/esm/__tests__/implementation/NumberField.test.js +0 -54
  83. package/build/esm/__tests__/implementation/PhoneField.test.d.ts +0 -7
  84. package/build/esm/__tests__/implementation/PhoneField.test.js +0 -82
  85. package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.d.ts +0 -5
  86. package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.js +0 -209
  87. package/build/esm/__tests__/implementation/SchemaFieldValidation.test.d.ts +0 -8
  88. package/build/esm/__tests__/implementation/SchemaFieldValidation.test.js +0 -87
  89. package/build/esm/__tests__/implementation/SelectField.test.d.ts +0 -8
  90. package/build/esm/__tests__/implementation/SelectField.test.js +0 -127
  91. package/build/esm/__tests__/implementation/TextField.test.d.ts +0 -4
  92. package/build/esm/__tests__/implementation/TextField.test.js +0 -34
  93. package/build/esm/__tests__/implementation/ValidateErrorMessageFormatter.test.d.ts +0 -16
  94. package/build/esm/__tests__/implementation/ValidateErrorMessageFormatter.test.js +0 -216
@@ -1,86 +0,0 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
- import { test, assert } from '@sprucelabs/test';
17
- import { buildSchema } from '../../index.js';
18
- import AbstractSchemaTest from '../../AbstractSchemaTest.js';
19
- import dropFields from '../../utilities/dropFields.js';
20
- import dropPrivateFields from '../../utilities/dropPrivateFields.js';
21
- const personSchema = buildSchema({
22
- id: 'person-with-all-fields',
23
- name: 'Person (all fields)',
24
- fields: {
25
- firstName: {
26
- type: 'text',
27
- isRequired: true,
28
- },
29
- lastName: {
30
- type: 'text',
31
- isRequired: true,
32
- },
33
- privateField: {
34
- type: 'text',
35
- isPrivate: true,
36
- },
37
- },
38
- });
39
- export default class DroppingFieldsTest extends AbstractSchemaTest {
40
- static droppingFields() {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- const optionalPerson = Object.assign(Object.assign({}, personSchema), { fields: Object.assign({}, dropFields(personSchema.fields, ['firstName'])) });
43
- assert.isEqualDeep(optionalPerson, {
44
- id: 'person-with-all-fields',
45
- name: 'Person (all fields)',
46
- fields: {
47
- lastName: {
48
- type: 'text',
49
- isRequired: true,
50
- },
51
- privateField: {
52
- type: 'text',
53
- isPrivate: true,
54
- },
55
- },
56
- });
57
- assert.isExactType(true);
58
- });
59
- }
60
- static droppingPrivateFields() {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- const publicPerson = Object.assign(Object.assign({}, personSchema), { fields: Object.assign({}, dropPrivateFields(personSchema.fields)) });
63
- assert.isExactType(true);
64
- assert.isEqualDeep(publicPerson, {
65
- id: 'person-with-all-fields',
66
- name: 'Person (all fields)',
67
- fields: {
68
- firstName: {
69
- type: 'text',
70
- isRequired: true,
71
- },
72
- lastName: {
73
- type: 'text',
74
- isRequired: true,
75
- },
76
- },
77
- });
78
- });
79
- }
80
- }
81
- __decorate([
82
- test()
83
- ], DroppingFieldsTest, "droppingFields", null);
84
- __decorate([
85
- test()
86
- ], DroppingFieldsTest, "droppingPrivateFields", null);
@@ -1,9 +0,0 @@
1
- import AbstractSpruceTest from '@sprucelabs/test';
2
- import { SchemaFieldFieldDefinition } from '../../fields/SchemaField.types';
3
- export default class GeneratesRelationshipTemplatesTest extends AbstractSpruceTest {
4
- private static wrenchSchema;
5
- private static screwdriverSchema;
6
- private static personSchema;
7
- private static templateItems;
8
- protected static testTemplateDetails(definition: SchemaFieldFieldDefinition, renderAsValue: string, renderAsType: string, renderAsSchemaType: string): Promise<void>;
9
- }
@@ -1,137 +0,0 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
- import AbstractSpruceTest, { test, assert } from '@sprucelabs/test';
17
- import SchemaField from '../../fields/SchemaField.js';
18
- import { TemplateRenderAs, } from '../../types/template.types.js';
19
- import buildSchema from '../../utilities/buildSchema.js';
20
- export default class GeneratesRelationshipTemplatesTest extends AbstractSpruceTest {
21
- static testTemplateDetails(definition, renderAsValue, renderAsType, renderAsSchemaType) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- const templateOptions = {
24
- language: 'ts',
25
- globalNamespace: 'SpruceSchemas',
26
- importAs: 'generated_test',
27
- templateItems: GeneratesRelationshipTemplatesTest.templateItems,
28
- definition: Object.assign(Object.assign({}, definition), { type: 'schema' }),
29
- renderAs: TemplateRenderAs.Type, // is overwritten below
30
- };
31
- const expected = {
32
- renderAsValue,
33
- renderAsType,
34
- renderAsSchemaType,
35
- };
36
- const rendersAs = Object.getOwnPropertyNames(TemplateRenderAs);
37
- rendersAs.forEach((renderAs) => {
38
- const options = Object.assign(Object.assign({}, templateOptions), {
39
- // @ts-ignore
40
- renderAs: TemplateRenderAs[renderAs] });
41
- const { valueType } = SchemaField.generateTemplateDetails(options);
42
- const exp = expected[`renderAs${renderAs}`];
43
- assert.isEqual(valueType, exp);
44
- });
45
- });
46
- }
47
- }
48
- GeneratesRelationshipTemplatesTest.wrenchSchema = buildSchema({
49
- id: 'wrench',
50
- name: 'Wrench',
51
- fields: {
52
- wrenchSize: {
53
- type: 'number',
54
- label: 'Size',
55
- },
56
- },
57
- });
58
- GeneratesRelationshipTemplatesTest.screwdriverSchema = buildSchema({
59
- id: 'screwdriver',
60
- name: 'Screwdriver',
61
- fields: {
62
- isFlathead: {
63
- type: 'boolean',
64
- },
65
- screwdriverLength: {
66
- type: 'number',
67
- label: 'Length',
68
- },
69
- },
70
- });
71
- GeneratesRelationshipTemplatesTest.personSchema = buildSchema({
72
- id: 'union-person',
73
- name: 'Union Person',
74
- fields: {
75
- favoriteTool: {
76
- type: 'schema',
77
- options: {
78
- schemas: [
79
- GeneratesRelationshipTemplatesTest.wrenchSchema,
80
- GeneratesRelationshipTemplatesTest.screwdriverSchema,
81
- ],
82
- },
83
- },
84
- tools: {
85
- type: 'schema',
86
- isArray: true,
87
- options: {
88
- schemas: [
89
- GeneratesRelationshipTemplatesTest.wrenchSchema,
90
- GeneratesRelationshipTemplatesTest.screwdriverSchema,
91
- ],
92
- },
93
- },
94
- },
95
- });
96
- // the global template items[]
97
- GeneratesRelationshipTemplatesTest.templateItems = [
98
- {
99
- namePascal: 'UnionPerson',
100
- nameCamel: 'unionPerson',
101
- nameReadable: 'Union person',
102
- namespace: 'Core',
103
- id: GeneratesRelationshipTemplatesTest.personSchema.id,
104
- schema: GeneratesRelationshipTemplatesTest.personSchema,
105
- destinationDir: '#spruce/schemas',
106
- },
107
- {
108
- namePascal: 'Wrench',
109
- nameCamel: 'wrench',
110
- nameReadable: 'Wrench',
111
- namespace: 'Core',
112
- id: GeneratesRelationshipTemplatesTest.wrenchSchema.id,
113
- schema: GeneratesRelationshipTemplatesTest.wrenchSchema,
114
- destinationDir: '#spruce/schemas',
115
- },
116
- {
117
- namePascal: 'screwdriver',
118
- nameCamel: 'screwdriver',
119
- nameReadable: 'Screwdriver',
120
- namespace: 'Core',
121
- id: GeneratesRelationshipTemplatesTest.screwdriverSchema.id,
122
- schema: GeneratesRelationshipTemplatesTest.screwdriverSchema,
123
- destinationDir: '#spruce/schemas',
124
- },
125
- ];
126
- __decorate([
127
- test('schemaId', { isArray: false, options: { schemaId: { id: 'union-person' } } }, 'unionPersonSchema', 'SpruceSchemas.Core.UnionPerson', 'SpruceSchemas.Core.UnionPersonSchema'),
128
- test('schemaId isArray', { isArray: true, options: { schemaId: { id: 'union-person' } } }, 'unionPersonSchema', 'SpruceSchemas.Core.UnionPerson[]', 'SpruceSchemas.Core.UnionPersonSchema'),
129
- test('schemaIds', {
130
- isArray: false,
131
- options: { schemaIds: [{ id: 'union-person' }, { id: 'wrench' }] },
132
- }, '[unionPersonSchema, wrenchSchema]', "{ schemaId: 'union-person', values: SpruceSchemas.Core.UnionPerson } | { schemaId: 'wrench', values: SpruceSchemas.Core.Wrench }", '(SpruceSchemas.Core.UnionPersonSchema | SpruceSchemas.Core.WrenchSchema)[]'),
133
- test('schemaIds isArray', {
134
- isArray: true,
135
- options: { schemaIds: [{ id: 'union-person' }, { id: 'wrench' }] },
136
- }, '[unionPersonSchema, wrenchSchema]', "({ schemaId: 'union-person', values: SpruceSchemas.Core.UnionPerson } | { schemaId: 'wrench', values: SpruceSchemas.Core.Wrench })[]", '(SpruceSchemas.Core.UnionPersonSchema | SpruceSchemas.Core.WrenchSchema)[]')
137
- ], GeneratesRelationshipTemplatesTest, "testTemplateDetails", null);
@@ -1,5 +0,0 @@
1
- import AbstractSchemaTest from '../../AbstractSchemaTest';
2
- import { SchemaFieldFieldDefinition } from '../../fields';
3
- export default class GeneratesRelationshipTemplatesWithSuffixTest extends AbstractSchemaTest {
4
- protected static testTemplateDetails(definition: SchemaFieldFieldDefinition, renderAsValue: string, renderAsType: string, renderAsSchemaType: string): Promise<void>;
5
- }
@@ -1,146 +0,0 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
- import { test, assert } from '@sprucelabs/test';
17
- import AbstractSchemaTest from '../../AbstractSchemaTest.js';
18
- import { SchemaField } from '../../fields/index.js';
19
- import { TemplateRenderAs, } from '../../types/template.types.js';
20
- import buildSchema from '../../utilities/buildSchema.js';
21
- const wrenchSchema = buildSchema({
22
- id: 'wrench',
23
- name: 'Wrench',
24
- typeSuffix: '<T = any>',
25
- fields: {
26
- wrenchSizeType: {
27
- type: 'raw',
28
- options: {
29
- valueType: 'T',
30
- },
31
- },
32
- },
33
- });
34
- const screwdriverSchema = buildSchema({
35
- id: 'screwdriver',
36
- name: 'Screwdriver',
37
- typeSuffix: '<T = any>',
38
- fields: {
39
- isFlatheadType: {
40
- type: 'raw',
41
- options: {
42
- valueType: 'T',
43
- },
44
- },
45
- screwdriverLength: {
46
- type: 'number',
47
- label: 'Length',
48
- },
49
- },
50
- });
51
- const personSchema = buildSchema({
52
- id: 'union-person',
53
- name: 'Union Person',
54
- typeSuffix: '<T = any>',
55
- fields: {
56
- favoriteTool: {
57
- type: 'schema',
58
- options: {
59
- typeSuffix: '<T>',
60
- schemas: [wrenchSchema, screwdriverSchema],
61
- },
62
- },
63
- tools: {
64
- type: 'schema',
65
- isArray: true,
66
- options: {
67
- typeSuffix: '<T>',
68
- schemas: [wrenchSchema, screwdriverSchema],
69
- },
70
- },
71
- },
72
- });
73
- const templateItems = [
74
- {
75
- namePascal: 'UnionPerson',
76
- nameCamel: 'unionPerson',
77
- nameReadable: 'Union person',
78
- namespace: 'Core',
79
- id: personSchema.id,
80
- schema: personSchema,
81
- destinationDir: '#spruce/schemas',
82
- },
83
- {
84
- namePascal: 'Wrench',
85
- nameCamel: 'wrench',
86
- nameReadable: 'Wrench',
87
- namespace: 'Core',
88
- id: wrenchSchema.id,
89
- schema: wrenchSchema,
90
- destinationDir: '#spruce/schemas',
91
- },
92
- {
93
- namePascal: 'Screwdriver',
94
- nameCamel: 'screwdriver',
95
- nameReadable: 'Screwdriver',
96
- namespace: 'Core',
97
- id: screwdriverSchema.id,
98
- schema: screwdriverSchema,
99
- destinationDir: '#spruce/schemas',
100
- },
101
- ];
102
- export default class GeneratesRelationshipTemplatesWithSuffixTest extends AbstractSchemaTest {
103
- static testTemplateDetails(definition, renderAsValue, renderAsType, renderAsSchemaType) {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- const templateOptions = {
106
- language: 'ts',
107
- globalNamespace: 'SpruceSchemas',
108
- importAs: 'generated_test',
109
- templateItems,
110
- definition: Object.assign(Object.assign({}, definition), { type: 'schema' }),
111
- renderAs: TemplateRenderAs.Type, // is overwritten below
112
- };
113
- const expected = {
114
- renderAsValue,
115
- renderAsType,
116
- renderAsSchemaType,
117
- };
118
- const rendersAs = Object.getOwnPropertyNames(TemplateRenderAs);
119
- rendersAs.forEach((renderAs) => {
120
- const options = Object.assign(Object.assign({}, templateOptions), {
121
- // @ts-ignore
122
- renderAs: TemplateRenderAs[renderAs] });
123
- const { valueType } = SchemaField.generateTemplateDetails(options);
124
- const exp = expected[`renderAs${renderAs}`];
125
- assert.isEqual(valueType, exp);
126
- });
127
- });
128
- }
129
- }
130
- __decorate([
131
- test('schemaId isArray', {
132
- isArray: true,
133
- options: { typeSuffix: '<T>', schemaId: { id: 'union-person' } },
134
- }, 'unionPersonSchema', 'SpruceSchemas.Core.UnionPerson<T>[]', 'SpruceSchemas.Core.UnionPersonSchema'),
135
- test('schemaId notArray', {
136
- isArray: false,
137
- options: { typeSuffix: '<T>', schemaId: { id: 'union-person' } },
138
- }, 'unionPersonSchema', 'SpruceSchemas.Core.UnionPerson<T>', 'SpruceSchemas.Core.UnionPersonSchema'),
139
- test('schemaId isArray union', {
140
- isArray: false,
141
- options: {
142
- typeSuffix: '<T>',
143
- schemaIds: [{ id: 'screwdriver' }, { id: 'wrench' }],
144
- },
145
- }, '[screwdriverSchema, wrenchSchema]', "{ schemaId: 'screwdriver', values: SpruceSchemas.Core.Screwdriver<T> } | { schemaId: 'wrench', values: SpruceSchemas.Core.Wrench<T> }", '(SpruceSchemas.Core.ScrewdriverSchema | SpruceSchemas.Core.WrenchSchema)[]')
146
- ], GeneratesRelationshipTemplatesWithSuffixTest, "testTemplateDetails", null);
@@ -1,5 +0,0 @@
1
- import AbstractSpruceTest from '@sprucelabs/test';
2
- import { FieldDefinition } from '../../fields/field.static.types';
3
- export default class GeneratesTemplatesTest extends AbstractSpruceTest {
4
- protected static testTemplateDetails(Field: any, definition: FieldDefinition, renderAsValue: string, renderAsType: string, renderAsSchemaType: string): Promise<void>;
5
- }
@@ -1,67 +0,0 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
- import AbstractSpruceTest, { test, assert } from '@sprucelabs/test';
17
- import { SelectField } from '../../fields/index.js';
18
- import { TemplateRenderAs, } from '../../types/template.types.js';
19
- export default class GeneratesTemplatesTest extends AbstractSpruceTest {
20
- static testTemplateDetails(Field, definition, renderAsValue, renderAsType, renderAsSchemaType) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- const templateOptions = {
23
- language: 'ts',
24
- globalNamespace: 'SpruceSchemas',
25
- importAs: 'generated_test',
26
- templateItems: [],
27
- definition: Object.assign({}, definition),
28
- renderAs: TemplateRenderAs.Type, // is overwritten below
29
- };
30
- const expected = {
31
- renderAsValue,
32
- renderAsType,
33
- renderAsSchemaType,
34
- };
35
- const rendersAs = Object.getOwnPropertyNames(TemplateRenderAs);
36
- rendersAs.forEach((renderAs) => {
37
- const options = Object.assign(Object.assign({}, templateOptions), {
38
- // @ts-ignore
39
- renderAs: TemplateRenderAs[renderAs] });
40
- const { valueType } = Field.generateTemplateDetails(options);
41
- const exp = expected[`renderAs${renderAs}`];
42
- assert.isEqual(valueType, exp);
43
- });
44
- });
45
- }
46
- }
47
- __decorate([
48
- test('select', SelectField, {
49
- type: 'select',
50
- options: {
51
- choices: [
52
- { value: 'one', label: 'One' },
53
- { value: 'two', label: 'Two' },
54
- ],
55
- },
56
- }, '("one" | "two")', '("one" | "two")', '("one" | "two")'),
57
- test('select isArray', SelectField, {
58
- type: 'select',
59
- isArray: true,
60
- options: {
61
- choices: [
62
- { value: 'one', label: 'One' },
63
- { value: 'two', label: 'Two' },
64
- ],
65
- },
66
- }, '("one" | "two")[]', '("one" | "two")[]', '("one" | "two")[]')
67
- ], GeneratesTemplatesTest, "testTemplateDetails", null);
@@ -1,5 +0,0 @@
1
- import AbstractSpruceTest from '@sprucelabs/test';
2
- import AbstractField from '../../fields/AbstractField';
3
- export default class GeneratesRelationshipTemplatesTest extends AbstractSpruceTest {
4
- protected static testValueGeneratorType(Field: typeof AbstractField, expected: string | undefined): Promise<void>;
5
- }
@@ -1,29 +0,0 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
- import AbstractSpruceTest, { assert, test } from '@sprucelabs/test';
17
- import { BooleanField, SelectField, SchemaField } from '../../fields/index.js';
18
- export default class GeneratesRelationshipTemplatesTest extends AbstractSpruceTest {
19
- static testValueGeneratorType(Field, expected) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- assert.isEqual(Field.generateTypeDetails().valueTypeMapper, expected);
22
- });
23
- }
24
- }
25
- __decorate([
26
- test('Boolean field', BooleanField, undefined),
27
- test('Select field', SelectField, 'SelectFieldValueTypeMapper<F extends SelectFieldDefinition ? F: SelectFieldDefinition>'),
28
- test('Schema field', SchemaField, 'SchemaFieldValueTypeMapper<F extends SchemaFieldFieldDefinition? F : SchemaFieldFieldDefinition, CreateEntityInstances>')
29
- ], GeneratesRelationshipTemplatesTest, "testValueGeneratorType", null);
@@ -1,11 +0,0 @@
1
- import AbstractSpruceTest from '@sprucelabs/test';
2
- import { SchemaFieldFieldDefinition } from '../../fields/SchemaField.types';
3
- export default class GeneratesRelationshipTemplatesTest extends AbstractSpruceTest {
4
- private static wrenchV1Schema;
5
- private static wrenchV2Schema;
6
- private static screwdriverSchema;
7
- private static personSchema;
8
- private static templateItems;
9
- protected static testTemplateDetails(definition: SchemaFieldFieldDefinition, renderAsValue: string, renderAsType: string, renderAsSchemaType: string): Promise<void>;
10
- protected static throwsMissingVersion(definition: SchemaFieldFieldDefinition): Promise<void>;
11
- }