@sprucelabs/schema 25.5.65 → 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.
- package/build/esm/DynamicSchemaEntityImplementation.d.ts +1 -1
- package/build/esm/fields/AbstractField.d.ts +1 -1
- package/build/esm/fields/field.static.types.d.ts +1 -1
- package/build/esm/schemas.static.types.d.ts +1 -1
- package/build/esm/utilities/normalizeFieldValue.d.ts +1 -1
- package/package.json +11 -10
- package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.js +0 -93
- package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.d.ts +0 -18
- package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.js +0 -217
- package/build/esm/__tests__/behavioral/BuildSchema.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/BuildSchema.test.js +0 -66
- package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.js +0 -93
- package/build/esm/__tests__/behavioral/DroppingFields.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/DroppingFields.test.js +0 -86
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.js +0 -137
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.js +0 -146
- package/build/esm/__tests__/behavioral/GeneratesTemplates.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/GeneratesTemplates.test.js +0 -67
- package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.js +0 -29
- package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.d.ts +0 -11
- package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.js +0 -191
- package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.js +0 -88
- package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.d.ts +0 -17
- package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.js +0 -284
- package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.d.ts +0 -11
- package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.js +0 -111
- package/build/esm/__tests__/behavioral/HandlesRelationships.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/HandlesRelationships.test.js +0 -175
- package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.js +0 -37
- package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.js +0 -102
- package/build/esm/__tests__/behavioral/HandlesVersioning.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/HandlesVersioning.test.js +0 -93
- package/build/esm/__tests__/behavioral/IsIdWithVersion.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/IsIdWithVersion.test.js +0 -30
- package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.js +0 -57
- package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.js +0 -77
- package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.js +0 -148
- package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.js +0 -45
- package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.js +0 -138
- package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.js +0 -43
- package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.js +0 -104
- package/build/esm/__tests__/behavioral/UsingSchemas.test.d.ts +0 -13
- package/build/esm/__tests__/behavioral/UsingSchemas.test.js +0 -281
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.d.ts +0 -14
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.js +0 -140
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.d.ts +0 -15
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.js +0 -117
- package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.d.ts +0 -28
- package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.js +0 -674
- package/build/esm/__tests__/data/personWithCars.d.ts +0 -188
- package/build/esm/__tests__/data/personWithCars.js +0 -163
- package/build/esm/__tests__/data/versionedPersonWithCars.d.ts +0 -323
- package/build/esm/__tests__/data/versionedPersonWithCars.js +0 -281
- package/build/esm/__tests__/implementation/BooleanField.test.d.ts +0 -6
- package/build/esm/__tests__/implementation/BooleanField.test.js +0 -59
- package/build/esm/__tests__/implementation/DurationField.test.d.ts +0 -7
- package/build/esm/__tests__/implementation/DurationField.test.js +0 -45
- package/build/esm/__tests__/implementation/EmailField.test.d.ts +0 -4
- package/build/esm/__tests__/implementation/EmailField.test.js +0 -39
- package/build/esm/__tests__/implementation/ErrorMapUtil.test.d.ts +0 -11
- package/build/esm/__tests__/implementation/ErrorMapUtil.test.js +0 -176
- package/build/esm/__tests__/implementation/FieldFactory.test.d.ts +0 -4
- package/build/esm/__tests__/implementation/FieldFactory.test.js +0 -35
- package/build/esm/__tests__/implementation/FileField.test.d.ts +0 -19
- package/build/esm/__tests__/implementation/FileField.test.js +0 -125
- package/build/esm/__tests__/implementation/NumberField.test.d.ts +0 -5
- package/build/esm/__tests__/implementation/NumberField.test.js +0 -54
- package/build/esm/__tests__/implementation/PhoneField.test.d.ts +0 -7
- package/build/esm/__tests__/implementation/PhoneField.test.js +0 -82
- package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.d.ts +0 -5
- package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.js +0 -209
- package/build/esm/__tests__/implementation/SchemaFieldValidation.test.d.ts +0 -8
- package/build/esm/__tests__/implementation/SchemaFieldValidation.test.js +0 -87
- package/build/esm/__tests__/implementation/SelectField.test.d.ts +0 -8
- package/build/esm/__tests__/implementation/SelectField.test.js +0 -127
- package/build/esm/__tests__/implementation/TextField.test.d.ts +0 -4
- package/build/esm/__tests__/implementation/TextField.test.js +0 -34
- package/build/esm/__tests__/implementation/ValidateErrorMessageFormatter.test.d.ts +0 -16
- 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
|
-
}
|