@baseplate-dev/project-builder-server 0.4.4 → 0.5.1
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/dist/actions/registry.d.ts +10 -0
- package/dist/actions/registry.d.ts.map +1 -1
- package/dist/actions/registry.js +2 -1
- package/dist/actions/registry.js.map +1 -1
- package/dist/actions/sync/index.d.ts +1 -0
- package/dist/actions/sync/index.d.ts.map +1 -1
- package/dist/actions/sync/index.js +1 -0
- package/dist/actions/sync/index.js.map +1 -1
- package/dist/actions/sync/sync-file.action.d.ts +21 -0
- package/dist/actions/sync/sync-file.action.d.ts.map +1 -0
- package/dist/actions/sync/sync-file.action.js +106 -0
- package/dist/actions/sync/sync-file.action.js.map +1 -0
- package/dist/actions/sync/sync-project.action.d.ts +1 -0
- package/dist/actions/sync/sync-project.action.d.ts.map +1 -1
- package/dist/actions/sync/sync-project.action.js +6 -1
- package/dist/actions/sync/sync-project.action.js.map +1 -1
- package/dist/compiler/app-compiler.d.ts +1 -1
- package/dist/compiler/app-compiler.d.ts.map +1 -1
- package/dist/compiler/app-compiler.js +2 -3
- package/dist/compiler/app-compiler.js.map +1 -1
- package/dist/compiler/app-entry-builder.d.ts +2 -2
- package/dist/compiler/app-entry-builder.d.ts.map +1 -1
- package/dist/compiler/app-entry-builder.js +1 -1
- package/dist/compiler/app-entry-builder.js.map +1 -1
- package/dist/compiler/backend/backend-compiler.d.ts +1 -2
- package/dist/compiler/backend/backend-compiler.d.ts.map +1 -1
- package/dist/compiler/backend/backend-compiler.js +2 -2
- package/dist/compiler/backend/backend-compiler.js.map +1 -1
- package/dist/compiler/backend/fastify.d.ts.map +1 -1
- package/dist/compiler/backend/fastify.js +1 -2
- package/dist/compiler/backend/fastify.js.map +1 -1
- package/dist/compiler/backend/graphql.js +4 -4
- package/dist/compiler/backend/graphql.js.map +1 -1
- package/dist/compiler/backend/services.d.ts.map +1 -1
- package/dist/compiler/backend/services.js +6 -20
- package/dist/compiler/backend/services.js.map +1 -1
- package/dist/compiler/compile-packages.d.ts +2 -2
- package/dist/compiler/compile-packages.d.ts.map +1 -1
- package/dist/compiler/compile-packages.js +8 -2
- package/dist/compiler/compile-packages.js.map +1 -1
- package/dist/compiler/index.d.ts +1 -0
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/library/index.d.ts +3 -0
- package/dist/compiler/library/index.d.ts.map +1 -0
- package/dist/compiler/library/index.js +3 -0
- package/dist/compiler/library/index.js.map +1 -0
- package/dist/compiler/library/library-compiler.d.ts +3 -0
- package/dist/compiler/library/library-compiler.d.ts.map +1 -0
- package/dist/compiler/library/library-compiler.js +10 -0
- package/dist/compiler/library/library-compiler.js.map +1 -0
- package/dist/compiler/library/node-library-package-compiler.d.ts +3 -0
- package/dist/compiler/library/node-library-package-compiler.d.ts.map +1 -0
- package/dist/compiler/library/node-library-package-compiler.js +32 -0
- package/dist/compiler/library/node-library-package-compiler.js.map +1 -0
- package/dist/compiler/package-compiler.d.ts +0 -69
- package/dist/compiler/package-compiler.d.ts.map +1 -1
- package/dist/compiler/package-compiler.js +0 -51
- package/dist/compiler/package-compiler.js.map +1 -1
- package/dist/compiler/root/root-package-compiler.d.ts +2 -2
- package/dist/compiler/root/root-package-compiler.d.ts.map +1 -1
- package/dist/compiler/root/root-package-compiler.js +17 -10
- package/dist/compiler/root/root-package-compiler.js.map +1 -1
- package/dist/compiler/web/admin/crud/actions.d.ts.map +1 -1
- package/dist/compiler/web/admin/crud/actions.js +5 -23
- package/dist/compiler/web/admin/crud/actions.js.map +1 -1
- package/dist/compiler/web/admin/crud/columns.d.ts.map +1 -1
- package/dist/compiler/web/admin/crud/columns.js +9 -45
- package/dist/compiler/web/admin/crud/columns.js.map +1 -1
- package/dist/compiler/web/admin/crud/index.d.ts.map +1 -1
- package/dist/compiler/web/admin/crud/index.js +13 -5
- package/dist/compiler/web/admin/crud/index.js.map +1 -1
- package/dist/compiler/web/admin/crud/inputs.d.ts.map +1 -1
- package/dist/compiler/web/admin/crud/inputs.js +6 -141
- package/dist/compiler/web/admin/crud/inputs.js.map +1 -1
- package/dist/compiler/web/web-compiler.d.ts +1 -2
- package/dist/compiler/web/web-compiler.d.ts.map +1 -1
- package/dist/compiler/web/web-compiler.js +2 -2
- package/dist/compiler/web/web-compiler.js.map +1 -1
- package/dist/core-modules/admin-crud-action-compiler.d.ts +4 -0
- package/dist/core-modules/admin-crud-action-compiler.d.ts.map +1 -0
- package/dist/core-modules/admin-crud-action-compiler.js +37 -0
- package/dist/core-modules/admin-crud-action-compiler.js.map +1 -0
- package/dist/core-modules/admin-crud-column-compiler.d.ts +4 -0
- package/dist/core-modules/admin-crud-column-compiler.d.ts.map +1 -0
- package/dist/core-modules/admin-crud-column-compiler.js +47 -0
- package/dist/core-modules/admin-crud-column-compiler.js.map +1 -0
- package/dist/core-modules/admin-crud-input-compiler.d.ts +4 -0
- package/dist/core-modules/admin-crud-input-compiler.d.ts.map +1 -0
- package/dist/core-modules/admin-crud-input-compiler.js +157 -0
- package/dist/core-modules/admin-crud-input-compiler.js.map +1 -0
- package/dist/core-modules/index.d.ts +3 -0
- package/dist/core-modules/index.d.ts.map +1 -0
- package/dist/core-modules/index.js +17 -0
- package/dist/core-modules/index.js.map +1 -0
- package/dist/core-modules/library-type-spec.d.ts +10 -0
- package/dist/core-modules/library-type-spec.d.ts.map +1 -0
- package/dist/core-modules/library-type-spec.js +18 -0
- package/dist/core-modules/library-type-spec.js.map +1 -0
- package/dist/core-modules/model-transformer-compiler.d.ts +4 -0
- package/dist/core-modules/model-transformer-compiler.d.ts.map +1 -0
- package/dist/core-modules/model-transformer-compiler.js +31 -0
- package/dist/core-modules/model-transformer-compiler.js.map +1 -0
- package/dist/dev-server/api/router.d.ts +1 -0
- package/dist/dev-server/api/router.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/plugins/node-plugin-store.d.ts.map +1 -1
- package/dist/plugins/node-plugin-store.js +3 -10
- package/dist/plugins/node-plugin-store.js.map +1 -1
- package/dist/project-definition/load-project-definition.js +3 -3
- package/dist/project-definition/load-project-definition.js.map +1 -1
- package/dist/sync/sync-file.d.ts +27 -0
- package/dist/sync/sync-file.d.ts.map +1 -0
- package/dist/sync/sync-file.js +78 -0
- package/dist/sync/sync-file.js.map +1 -0
- package/dist/sync/sync-project.d.ts +5 -1
- package/dist/sync/sync-project.d.ts.map +1 -1
- package/dist/sync/sync-project.js +16 -4
- package/dist/sync/sync-project.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../../../../src/compiler/web/admin/crud/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../../../../src/compiler/web/admin/crud/inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,YAAY,EACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,wBAAwB,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,EACtC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,eAAe,CAejB"}
|
|
@@ -1,145 +1,10 @@
|
|
|
1
|
-
import { adminCrudInputCompilerSpec,
|
|
2
|
-
import { adminCrudEmbeddedInputGenerator, adminCrudEnumInputGenerator, adminCrudForeignInputGenerator, adminCrudPasswordInputGenerator, adminCrudTextInputGenerator, } from '@baseplate-dev/react-generators';
|
|
3
|
-
import { makeIdSafe } from '@baseplate-dev/sync';
|
|
4
|
-
const adminEnumInputCompiler = {
|
|
5
|
-
name: 'enum',
|
|
6
|
-
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
7
|
-
const fieldConfig = model.model.fields.find((f) => f.id === definition.modelFieldRef);
|
|
8
|
-
if (fieldConfig?.type !== 'enum' || !fieldConfig.options.enumRef) {
|
|
9
|
-
throw new Error(`Admin enum input ${definition.modelFieldRef} is not an enum`);
|
|
10
|
-
}
|
|
11
|
-
const enumBlock = EnumUtils.byId(definitionContainer.definition, fieldConfig.options.enumRef);
|
|
12
|
-
if (!enumBlock) {
|
|
13
|
-
throw new Error(`Could not find enum type ${fieldConfig.options.enumRef ?? ''}`);
|
|
14
|
-
}
|
|
15
|
-
const fieldName = definitionContainer.nameFromId(definition.modelFieldRef);
|
|
16
|
-
return adminCrudEnumInputGenerator({
|
|
17
|
-
order,
|
|
18
|
-
modelField: fieldName,
|
|
19
|
-
label: definition.label,
|
|
20
|
-
isOptional: fieldConfig.isOptional,
|
|
21
|
-
options: enumBlock.values.map((v) => ({
|
|
22
|
-
label: v.friendlyName,
|
|
23
|
-
value: v.name,
|
|
24
|
-
})),
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
const adminForeignInputCompiler = {
|
|
29
|
-
name: 'foreign',
|
|
30
|
-
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
31
|
-
const relation = model.model.relations?.find((r) => r.id === definition.localRelationRef);
|
|
32
|
-
if (!relation) {
|
|
33
|
-
throw new Error(`Could not find relation ${definition.localRelationRef} in model ${model.name}`);
|
|
34
|
-
}
|
|
35
|
-
if (relation.references.length !== 1) {
|
|
36
|
-
throw new Error(`Only relations with a single reference are supported`);
|
|
37
|
-
}
|
|
38
|
-
const localField = definitionContainer.nameFromId(relation.references[0].localRef);
|
|
39
|
-
return adminCrudForeignInputGenerator({
|
|
40
|
-
order,
|
|
41
|
-
label: definition.label,
|
|
42
|
-
localRelationName: relation.name,
|
|
43
|
-
isOptional: ModelFieldUtils.isRelationOptional(model, relation),
|
|
44
|
-
localField,
|
|
45
|
-
foreignModelName: definitionContainer.nameFromId(relation.modelRef),
|
|
46
|
-
labelExpression: definition.labelExpression,
|
|
47
|
-
valueExpression: definition.valueExpression,
|
|
48
|
-
defaultLabel: definition.defaultLabel,
|
|
49
|
-
nullLabel: definition.nullLabel,
|
|
50
|
-
});
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
function getInputType(fieldConfig) {
|
|
54
|
-
switch (fieldConfig.type) {
|
|
55
|
-
case 'boolean': {
|
|
56
|
-
return 'checked';
|
|
57
|
-
}
|
|
58
|
-
case 'date': {
|
|
59
|
-
return 'date';
|
|
60
|
-
}
|
|
61
|
-
case 'dateTime': {
|
|
62
|
-
return 'dateTime';
|
|
63
|
-
}
|
|
64
|
-
default: {
|
|
65
|
-
return 'text';
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
function getIsNumber(fieldConfig) {
|
|
70
|
-
return fieldConfig.type === 'int' || fieldConfig.type === 'float';
|
|
71
|
-
}
|
|
72
|
-
const adminCrudTextInputCompiler = {
|
|
73
|
-
name: 'text',
|
|
74
|
-
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
75
|
-
const fieldConfig = model.model.fields.find((f) => f.id === definition.modelFieldRef);
|
|
76
|
-
if (!fieldConfig) {
|
|
77
|
-
throw new Error(`Field ${definition.modelFieldRef} cannot be found in ${model.name}`);
|
|
78
|
-
}
|
|
79
|
-
const fieldName = definitionContainer.nameFromId(definition.modelFieldRef);
|
|
80
|
-
return adminCrudTextInputGenerator({
|
|
81
|
-
order,
|
|
82
|
-
label: definition.label,
|
|
83
|
-
modelField: fieldName,
|
|
84
|
-
type: getInputType(fieldConfig),
|
|
85
|
-
validation: definition.validation
|
|
86
|
-
? definition.validation
|
|
87
|
-
: ModelFieldUtils.getModelFieldValidation(definitionContainer.definition, model.id, fieldConfig.id, true),
|
|
88
|
-
isNumber: getIsNumber(fieldConfig),
|
|
89
|
-
});
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
const adminCrudEmbeddedInputCompiler = {
|
|
93
|
-
name: 'embedded',
|
|
94
|
-
compileInput: (definition, { order, definitionContainer }) => {
|
|
95
|
-
const relationName = definitionContainer.nameFromId(definition.modelRelationRef);
|
|
96
|
-
return adminCrudEmbeddedInputGenerator({
|
|
97
|
-
order,
|
|
98
|
-
// TODO: We should use an actual ID on the input
|
|
99
|
-
id: makeIdSafe(definition.label),
|
|
100
|
-
label: definition.label,
|
|
101
|
-
modelRelation: relationName,
|
|
102
|
-
embeddedFormRef: definition.embeddedFormRef,
|
|
103
|
-
});
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
const adminCrudEmbeddedLocalInputCompiler = {
|
|
107
|
-
name: 'embeddedLocal',
|
|
108
|
-
compileInput(definition, { order, definitionContainer, model }) {
|
|
109
|
-
const localRelation = model.model.relations?.find((r) => r.id === definition.localRelationRef);
|
|
110
|
-
if (!localRelation) {
|
|
111
|
-
throw new Error(`Could not find relation ${definition.localRelationRef} in model ${model.name}`);
|
|
112
|
-
}
|
|
113
|
-
const localRelationName = definitionContainer.nameFromId(definition.localRelationRef);
|
|
114
|
-
return adminCrudEmbeddedInputGenerator({
|
|
115
|
-
order,
|
|
116
|
-
// TODO: We should use an actual ID on the input
|
|
117
|
-
id: makeIdSafe(definition.label),
|
|
118
|
-
label: definition.label,
|
|
119
|
-
modelRelation: localRelationName,
|
|
120
|
-
isRequired: !ModelFieldUtils.isRelationOptional(model, localRelation),
|
|
121
|
-
embeddedFormRef: definition.embeddedFormRef,
|
|
122
|
-
});
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
const adminCrudPasswordInputCompiler = {
|
|
126
|
-
name: 'password',
|
|
127
|
-
compileInput: (definition, { order }) => adminCrudPasswordInputGenerator({
|
|
128
|
-
order,
|
|
129
|
-
label: definition.label,
|
|
130
|
-
}),
|
|
131
|
-
};
|
|
132
|
-
const builtInCompilers = [
|
|
133
|
-
adminEnumInputCompiler,
|
|
134
|
-
adminForeignInputCompiler,
|
|
135
|
-
adminCrudTextInputCompiler,
|
|
136
|
-
adminCrudEmbeddedInputCompiler,
|
|
137
|
-
adminCrudEmbeddedLocalInputCompiler,
|
|
138
|
-
adminCrudPasswordInputCompiler,
|
|
139
|
-
];
|
|
1
|
+
import { adminCrudInputCompilerSpec, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
140
2
|
export function compileAdminCrudInput(field, modelId, builder, crudSectionId, order) {
|
|
141
|
-
const inputCompiler = builder.pluginStore.
|
|
142
|
-
const compiler = inputCompiler.
|
|
3
|
+
const inputCompiler = builder.pluginStore.use(adminCrudInputCompilerSpec);
|
|
4
|
+
const compiler = inputCompiler.inputs.get(field.type);
|
|
5
|
+
if (!compiler) {
|
|
6
|
+
throw new Error(`Compiler for input type ${field.type} not found`);
|
|
7
|
+
}
|
|
143
8
|
return compiler.compileInput(field, {
|
|
144
9
|
order,
|
|
145
10
|
definitionContainer: builder.definitionContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../../../../src/compiler/web/admin/crud/inputs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../../../../src/compiler/web/admin/crud/inputs.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,0BAA0B,EAC1B,UAAU,GACX,MAAM,oCAAoC,CAAC;AAI5C,MAAM,UAAU,qBAAqB,CACnC,KAA+B,EAC/B,OAAe,EACf,OAAsC,EACtC,aAAqB,EACrB,KAAa;IAEb,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE;QAClC,KAAK;QACL,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACjE,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { WebAppConfig } from '@baseplate-dev/project-builder-lib';
|
|
2
|
-
import type { PackageTasks } from '../package-compiler.js';
|
|
1
|
+
import type { PackageTasks, WebAppConfig } from '@baseplate-dev/project-builder-lib';
|
|
3
2
|
import type { PackageEntry } from '../package-entry.js';
|
|
4
3
|
import { AppCompiler } from '../app-compiler.js';
|
|
5
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/web/web-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"web-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/web/web-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACb,MAAM,oCAAoC,CAAC;AAkC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmIjD;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,YAAY,CAAC;IAC/D,OAAO,IAAI,YAAY;IAwBvB,QAAQ,IAAI,YAAY;CAOzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-compiler.js","sourceRoot":"","sources":["../../../src/compiler/web/web-compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-compiler.js","sourceRoot":"","sources":["../../../src/compiler/web/web-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-action-compiler.d.ts","sourceRoot":"","sources":["../../src/core-modules/admin-crud-action-compiler.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,yBAAyB;;EAWpC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { adminCrudActionCompilerSpec, createPluginModule, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { adminCrudDeleteActionGenerator, adminCrudEditActionGenerator, } from '@baseplate-dev/react-generators';
|
|
3
|
+
const adminCrudEditActionCompiler = {
|
|
4
|
+
name: 'edit',
|
|
5
|
+
compileAction: (definition, { order }) => adminCrudEditActionGenerator({
|
|
6
|
+
order,
|
|
7
|
+
position: definition.position,
|
|
8
|
+
}),
|
|
9
|
+
};
|
|
10
|
+
const adminCrudDeleteActionCompiler = {
|
|
11
|
+
name: 'delete',
|
|
12
|
+
compileAction: (definition, { order, model, modelCrudSection, definitionContainer }) => {
|
|
13
|
+
if (model.model.primaryKeyFieldRefs.length !== 1) {
|
|
14
|
+
throw new Error(`Model ${model.name} must have exactly one primary key field`);
|
|
15
|
+
}
|
|
16
|
+
return adminCrudDeleteActionGenerator({
|
|
17
|
+
order,
|
|
18
|
+
position: definition.position,
|
|
19
|
+
modelName: model.name,
|
|
20
|
+
nameField: definitionContainer.nameFromId(modelCrudSection.nameFieldRef),
|
|
21
|
+
idField: definitionContainer.nameFromId(model.model.primaryKeyFieldRefs[0]),
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
export const adminCrudActionCoreModule = createPluginModule({
|
|
26
|
+
name: 'admin-crud-action-compiler',
|
|
27
|
+
dependencies: {
|
|
28
|
+
adminCrudActionCompiler: adminCrudActionCompilerSpec,
|
|
29
|
+
},
|
|
30
|
+
initialize: ({ adminCrudActionCompiler }) => {
|
|
31
|
+
adminCrudActionCompiler.actions.addMany([
|
|
32
|
+
adminCrudEditActionCompiler,
|
|
33
|
+
adminCrudDeleteActionCompiler,
|
|
34
|
+
]);
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=admin-crud-action-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-action-compiler.js","sourceRoot":"","sources":["../../src/core-modules/admin-crud-action-compiler.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,2BAA2B,GAC/B;IACE,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACvC,4BAA4B,CAAC;QAC3B,KAAK;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC;CACL,CAAC;AAEJ,MAAM,6BAA6B,GACjC;IACE,IAAI,EAAE,QAAQ;IACd,aAAa,EAAE,CACb,UAAU,EACV,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,EACvD,EAAE;QACF,IAAI,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,CAAC,IAAI,0CAA0C,CAC9D,CAAC;QACJ,CAAC;QACD,OAAO,8BAA8B,CAAC;YACpC,KAAK;YACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS,EAAE,mBAAmB,CAAC,UAAU,CACvC,gBAAgB,CAAC,YAAY,CAC9B;YACD,OAAO,EAAE,mBAAmB,CAAC,UAAU,CACrC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACnC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;IAC1D,IAAI,EAAE,4BAA4B;IAClC,YAAY,EAAE;QACZ,uBAAuB,EAAE,2BAA2B;KACrD;IACD,UAAU,EAAE,CAAC,EAAE,uBAAuB,EAAE,EAAE,EAAE;QAC1C,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC;YACtC,2BAA2B;YAC3B,6BAA6B;SAC9B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-column-compiler.d.ts","sourceRoot":"","sources":["../../src/core-modules/admin-crud-column-compiler.ts"],"names":[],"mappings":"AAuEA,eAAO,MAAM,yBAAyB;;EAWpC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { adminCrudColumnCompilerSpec, createPluginModule, ModelFieldUtils, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { adminCrudForeignColumnGenerator, adminCrudTextColumnGenerator, } from '@baseplate-dev/react-generators';
|
|
3
|
+
const adminCrudTextColumnCompiler = {
|
|
4
|
+
name: 'text',
|
|
5
|
+
compileColumn: (column, options) => adminCrudTextColumnGenerator({
|
|
6
|
+
id: column.id,
|
|
7
|
+
label: column.label,
|
|
8
|
+
order: options.order,
|
|
9
|
+
modelField: options.definitionContainer.nameFromId(column.modelFieldRef),
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
const adminCrudForeignColumnCompiler = {
|
|
13
|
+
name: 'foreign',
|
|
14
|
+
compileColumn: (column, { definitionContainer, model, order }) => {
|
|
15
|
+
const relation = model.model.relations?.find((r) => r.id === column.localRelationRef);
|
|
16
|
+
const localRelationName = definitionContainer.nameFromId(column.localRelationRef);
|
|
17
|
+
if (!relation) {
|
|
18
|
+
throw new Error(`Could not find relation ${localRelationName} in model ${model.name}`);
|
|
19
|
+
}
|
|
20
|
+
if (relation.references.length !== 1) {
|
|
21
|
+
throw new Error(`Only relations with a single reference are supported`);
|
|
22
|
+
}
|
|
23
|
+
const foreignModelIdFields = ModelUtils.byIdOrThrow(definitionContainer.definition, relation.modelRef).model.primaryKeyFieldRefs.map((ref) => definitionContainer.nameFromId(ref));
|
|
24
|
+
return adminCrudForeignColumnGenerator({
|
|
25
|
+
id: column.id,
|
|
26
|
+
label: column.label,
|
|
27
|
+
order,
|
|
28
|
+
relationName: localRelationName,
|
|
29
|
+
foreignModelIdFields,
|
|
30
|
+
isOptional: ModelFieldUtils.isRelationOptional(model, relation),
|
|
31
|
+
labelExpression: column.labelExpression,
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
export const adminCrudColumnCoreModule = createPluginModule({
|
|
36
|
+
name: 'admin-crud-column-compiler',
|
|
37
|
+
dependencies: {
|
|
38
|
+
adminCrudColumnCompiler: adminCrudColumnCompilerSpec,
|
|
39
|
+
},
|
|
40
|
+
initialize: ({ adminCrudColumnCompiler }) => {
|
|
41
|
+
adminCrudColumnCompiler.columns.addMany([
|
|
42
|
+
adminCrudTextColumnCompiler,
|
|
43
|
+
adminCrudForeignColumnCompiler,
|
|
44
|
+
]);
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=admin-crud-column-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-column-compiler.js","sourceRoot":"","sources":["../../src/core-modules/admin-crud-column-compiler.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EACf,UAAU,GACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,2BAA2B,GAC/B;IACE,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACjC,4BAA4B,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAChD,MAAM,CAAC,aAAa,CACrB;KACF,CAAC;CACL,CAAC;AAEJ,MAAM,8BAA8B,GAClC;IACE,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CACxC,CAAC;QACF,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,UAAU,CACtD,MAAM,CAAC,gBAAgB,CACxB,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,aAAa,KAAK,CAAC,IAAI,EAAE,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,CACjD,mBAAmB,CAAC,UAAU,EAC9B,QAAQ,CAAC,QAAQ,CAClB,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CACpC,CAAC;QAEF,OAAO,+BAA+B,CAAC;YACrC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK;YACL,YAAY,EAAE,iBAAiB;YAC/B,oBAAoB;YACpB,UAAU,EAAE,eAAe,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC/D,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;IAC1D,IAAI,EAAE,4BAA4B;IAClC,YAAY,EAAE;QACZ,uBAAuB,EAAE,2BAA2B;KACrD;IACD,UAAU,EAAE,CAAC,EAAE,uBAAuB,EAAE,EAAE,EAAE;QAC1C,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC;YACtC,2BAA2B;YAC3B,8BAA8B;SAC/B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-input-compiler.d.ts","sourceRoot":"","sources":["../../src/core-modules/admin-crud-input-compiler.ts"],"names":[],"mappings":"AAoPA,eAAO,MAAM,wBAAwB;;EAenC,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { adminCrudInputCompilerSpec, createPluginModule, EnumUtils, ModelFieldUtils, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { adminCrudEmbeddedInputGenerator, adminCrudEnumInputGenerator, adminCrudForeignInputGenerator, adminCrudPasswordInputGenerator, adminCrudTextInputGenerator, } from '@baseplate-dev/react-generators';
|
|
3
|
+
const adminEnumInputCompiler = {
|
|
4
|
+
name: 'enum',
|
|
5
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
6
|
+
const fieldConfig = model.model.fields.find((f) => f.id === definition.modelFieldRef);
|
|
7
|
+
if (fieldConfig?.type !== 'enum' || !fieldConfig.options.enumRef) {
|
|
8
|
+
throw new Error(`Admin enum input ${definition.modelFieldRef} is not an enum`);
|
|
9
|
+
}
|
|
10
|
+
const enumBlock = EnumUtils.byId(definitionContainer.definition, fieldConfig.options.enumRef);
|
|
11
|
+
if (!enumBlock) {
|
|
12
|
+
throw new Error(`Could not find enum type ${fieldConfig.options.enumRef ?? ''}`);
|
|
13
|
+
}
|
|
14
|
+
const fieldName = definitionContainer.nameFromId(definition.modelFieldRef);
|
|
15
|
+
return adminCrudEnumInputGenerator({
|
|
16
|
+
order,
|
|
17
|
+
modelField: fieldName,
|
|
18
|
+
label: definition.label,
|
|
19
|
+
isOptional: fieldConfig.isOptional,
|
|
20
|
+
options: enumBlock.values.map((v) => ({
|
|
21
|
+
label: v.friendlyName,
|
|
22
|
+
value: v.name,
|
|
23
|
+
})),
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
const adminForeignInputCompiler = {
|
|
28
|
+
name: 'foreign',
|
|
29
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
30
|
+
const relation = model.model.relations?.find((r) => r.id === definition.localRelationRef);
|
|
31
|
+
if (!relation) {
|
|
32
|
+
throw new Error(`Could not find relation ${definition.localRelationRef} in model ${model.name}`);
|
|
33
|
+
}
|
|
34
|
+
if (relation.references.length !== 1) {
|
|
35
|
+
throw new Error(`Only relations with a single reference are supported`);
|
|
36
|
+
}
|
|
37
|
+
const localField = definitionContainer.nameFromId(relation.references[0].localRef);
|
|
38
|
+
const localFieldType = model.model.fields.find((f) => f.id === relation.references[0].localRef)?.type;
|
|
39
|
+
if (!localFieldType ||
|
|
40
|
+
(localFieldType !== 'string' && localFieldType !== 'uuid')) {
|
|
41
|
+
throw new Error(`Only string and uuid primary keys are supported for foreign inputs`);
|
|
42
|
+
}
|
|
43
|
+
return adminCrudForeignInputGenerator({
|
|
44
|
+
order,
|
|
45
|
+
label: definition.label,
|
|
46
|
+
localRelationName: relation.name,
|
|
47
|
+
isOptional: ModelFieldUtils.isRelationOptional(model, relation),
|
|
48
|
+
localField,
|
|
49
|
+
foreignModelName: definitionContainer.nameFromId(relation.modelRef),
|
|
50
|
+
labelExpression: definition.labelExpression,
|
|
51
|
+
valueExpression: definition.valueExpression,
|
|
52
|
+
valueType: localFieldType,
|
|
53
|
+
defaultLabel: definition.defaultLabel,
|
|
54
|
+
nullLabel: definition.nullLabel,
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
function getInputType(fieldConfig) {
|
|
59
|
+
switch (fieldConfig.type) {
|
|
60
|
+
case 'boolean': {
|
|
61
|
+
return 'checked';
|
|
62
|
+
}
|
|
63
|
+
case 'date': {
|
|
64
|
+
return 'date';
|
|
65
|
+
}
|
|
66
|
+
case 'dateTime': {
|
|
67
|
+
return 'dateTime';
|
|
68
|
+
}
|
|
69
|
+
default: {
|
|
70
|
+
return 'text';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function getIsNumber(fieldConfig) {
|
|
75
|
+
return fieldConfig.type === 'int' || fieldConfig.type === 'float';
|
|
76
|
+
}
|
|
77
|
+
const adminCrudTextInputCompiler = {
|
|
78
|
+
name: 'text',
|
|
79
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
80
|
+
const fieldConfig = model.model.fields.find((f) => f.id === definition.modelFieldRef);
|
|
81
|
+
if (!fieldConfig) {
|
|
82
|
+
throw new Error(`Field ${definition.modelFieldRef} cannot be found in ${model.name}`);
|
|
83
|
+
}
|
|
84
|
+
const fieldName = definitionContainer.nameFromId(definition.modelFieldRef);
|
|
85
|
+
return adminCrudTextInputGenerator({
|
|
86
|
+
order,
|
|
87
|
+
label: definition.label,
|
|
88
|
+
modelField: fieldName,
|
|
89
|
+
type: getInputType(fieldConfig),
|
|
90
|
+
validation: definition.validation
|
|
91
|
+
? definition.validation
|
|
92
|
+
: ModelFieldUtils.getModelFieldValidation(definitionContainer.definition, model.id, fieldConfig.id, true),
|
|
93
|
+
isNumber: getIsNumber(fieldConfig),
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
const adminCrudEmbeddedInputCompiler = {
|
|
98
|
+
name: 'embedded',
|
|
99
|
+
compileInput: (definition, { order, definitionContainer, model }) => {
|
|
100
|
+
const relationName = definitionContainer.nameFromId(definition.modelRelationRef);
|
|
101
|
+
const relation = ModelUtils.getRelationsToModel(definitionContainer.definition, model.id).find((r) => r.relation.foreignId === definition.modelRelationRef);
|
|
102
|
+
if (!relation) {
|
|
103
|
+
throw new Error(`Could not find relation ${definition.modelRelationRef} in model ${model.name}`);
|
|
104
|
+
}
|
|
105
|
+
const idFields = ModelUtils.getPrimaryKeyFields(relation.model).map((f) => definitionContainer.nameFromId(f.id));
|
|
106
|
+
return adminCrudEmbeddedInputGenerator({
|
|
107
|
+
order,
|
|
108
|
+
id: definition.modelRelationRef,
|
|
109
|
+
idFields,
|
|
110
|
+
label: definition.label,
|
|
111
|
+
modelRelation: relationName,
|
|
112
|
+
embeddedFormRef: definition.embeddedFormRef,
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
const adminCrudEmbeddedLocalInputCompiler = {
|
|
117
|
+
name: 'embeddedLocal',
|
|
118
|
+
compileInput(definition, { order, definitionContainer, model }) {
|
|
119
|
+
const localRelation = ModelFieldUtils.relationByIdOrThrow(model, definition.localRelationRef);
|
|
120
|
+
const foreignModel = ModelUtils.byIdOrThrow(definitionContainer.definition, localRelation.modelRef);
|
|
121
|
+
const idFields = ModelUtils.getPrimaryKeyFields(foreignModel).map((f) => definitionContainer.nameFromId(f.id));
|
|
122
|
+
const localRelationName = definitionContainer.nameFromId(definition.localRelationRef);
|
|
123
|
+
return adminCrudEmbeddedInputGenerator({
|
|
124
|
+
order,
|
|
125
|
+
id: definition.localRelationRef,
|
|
126
|
+
idFields,
|
|
127
|
+
label: definition.label,
|
|
128
|
+
modelRelation: localRelationName,
|
|
129
|
+
isRequired: !ModelFieldUtils.isRelationOptional(model, localRelation),
|
|
130
|
+
embeddedFormRef: definition.embeddedFormRef,
|
|
131
|
+
});
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
const adminCrudPasswordInputCompiler = {
|
|
135
|
+
name: 'password',
|
|
136
|
+
compileInput: (definition, { order }) => adminCrudPasswordInputGenerator({
|
|
137
|
+
order,
|
|
138
|
+
label: definition.label,
|
|
139
|
+
}),
|
|
140
|
+
};
|
|
141
|
+
export const adminCrudInputCoreModule = createPluginModule({
|
|
142
|
+
name: 'admin-crud-input-compiler',
|
|
143
|
+
dependencies: {
|
|
144
|
+
adminCrudInputCompiler: adminCrudInputCompilerSpec,
|
|
145
|
+
},
|
|
146
|
+
initialize: ({ adminCrudInputCompiler }) => {
|
|
147
|
+
adminCrudInputCompiler.inputs.addMany([
|
|
148
|
+
adminEnumInputCompiler,
|
|
149
|
+
adminForeignInputCompiler,
|
|
150
|
+
adminCrudTextInputCompiler,
|
|
151
|
+
adminCrudEmbeddedInputCompiler,
|
|
152
|
+
adminCrudEmbeddedLocalInputCompiler,
|
|
153
|
+
adminCrudPasswordInputCompiler,
|
|
154
|
+
]);
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=admin-crud-input-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-crud-input-compiler.js","sourceRoot":"","sources":["../../src/core-modules/admin-crud-input-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core-modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAQ9E,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EAUlD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { adminCrudActionCoreModule } from './admin-crud-action-compiler.js';
|
|
2
|
+
import { adminCrudColumnCoreModule } from './admin-crud-column-compiler.js';
|
|
3
|
+
import { adminCrudInputCoreModule } from './admin-crud-input-compiler.js';
|
|
4
|
+
import { libraryTypeCoreModule } from './library-type-spec.js';
|
|
5
|
+
import { modelTransformerCoreModule } from './model-transformer-compiler.js';
|
|
6
|
+
export const SERVER_CORE_MODULES = [
|
|
7
|
+
adminCrudActionCoreModule,
|
|
8
|
+
modelTransformerCoreModule,
|
|
9
|
+
adminCrudColumnCoreModule,
|
|
10
|
+
adminCrudInputCoreModule,
|
|
11
|
+
libraryTypeCoreModule,
|
|
12
|
+
].map((module) => ({
|
|
13
|
+
key: `core/server/${module.name}`,
|
|
14
|
+
pluginKey: 'core',
|
|
15
|
+
module,
|
|
16
|
+
}));
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core-modules/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,CAAC,MAAM,mBAAmB,GAA0B;IACxD,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,wBAAwB;IACxB,qBAAqB;CACtB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjB,GAAG,EAAE,eAAe,MAAM,CAAC,IAAI,EAAE;IACjC,SAAS,EAAE,MAAM;IACjB,MAAM;CACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core module that registers package compilers.
|
|
3
|
+
*
|
|
4
|
+
* The schemas are already pre-populated in packageTypeSpec from project-builder-lib.
|
|
5
|
+
* This module registers the compile implementations that require server-side dependencies.
|
|
6
|
+
*/
|
|
7
|
+
export declare const libraryTypeCoreModule: import("@baseplate-dev/project-builder-lib").PluginModule<{
|
|
8
|
+
[x: string]: import("@baseplate-dev/project-builder-lib").PluginSpec<object, object>;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=library-type-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-type-spec.d.ts","sourceRoot":"","sources":["../../src/core-modules/library-type-spec.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;EAQhC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createPluginModule, libraryTypeSpec, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { nodeLibraryCompilerCreator } from '#src/compiler/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Core module that registers package compilers.
|
|
5
|
+
*
|
|
6
|
+
* The schemas are already pre-populated in packageTypeSpec from project-builder-lib.
|
|
7
|
+
* This module registers the compile implementations that require server-side dependencies.
|
|
8
|
+
*/
|
|
9
|
+
export const libraryTypeCoreModule = createPluginModule({
|
|
10
|
+
name: 'package-compiler',
|
|
11
|
+
dependencies: {
|
|
12
|
+
libraryType: libraryTypeSpec,
|
|
13
|
+
},
|
|
14
|
+
initialize: ({ libraryType }) => {
|
|
15
|
+
libraryType.compilerCreators.add(nodeLibraryCompilerCreator);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=library-type-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-type-spec.js","sourceRoot":"","sources":["../../src/core-modules/library-type-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;IACtD,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE;QACZ,WAAW,EAAE,eAAe;KAC7B;IACD,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9B,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC/D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-transformer-compiler.d.ts","sourceRoot":"","sources":["../../src/core-modules/model-transformer-compiler.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,0BAA0B;;EAUrC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { prismaDataNestedFieldGenerator } from '@baseplate-dev/fastify-generators';
|
|
2
|
+
import { createPluginModule, modelTransformerCompilerSpec, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
3
|
+
const embeddedRelationTransformerCompiler = {
|
|
4
|
+
name: 'embeddedRelation',
|
|
5
|
+
compileField(definition, { definitionContainer, model }) {
|
|
6
|
+
// find foreign relation
|
|
7
|
+
const nestedRelation = ModelUtils.getRelationsToModel(definitionContainer.definition, model.id).find(({ relation }) => relation.foreignId === definition.foreignRelationRef);
|
|
8
|
+
if (!nestedRelation) {
|
|
9
|
+
throw new Error(`Could not find relation ${definition.foreignRelationRef} for nested relation field`);
|
|
10
|
+
}
|
|
11
|
+
return prismaDataNestedFieldGenerator({
|
|
12
|
+
modelName: model.name,
|
|
13
|
+
relationName: definitionContainer.nameFromId(definition.foreignRelationRef),
|
|
14
|
+
nestedModelName: nestedRelation.model.name,
|
|
15
|
+
scalarFieldNames: definition.embeddedFieldNames.map((e) => definitionContainer.nameFromId(e)),
|
|
16
|
+
virtualInputFieldNames: definition.embeddedTransformerNames?.map((t) => definitionContainer.nameFromId(t)),
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export const modelTransformerCoreModule = createPluginModule({
|
|
21
|
+
name: 'model-transformer-compiler',
|
|
22
|
+
dependencies: {
|
|
23
|
+
modelTransformerCompiler: modelTransformerCompilerSpec,
|
|
24
|
+
},
|
|
25
|
+
initialize: ({ modelTransformerCompiler }) => {
|
|
26
|
+
modelTransformerCompiler.transformers.addMany([
|
|
27
|
+
embeddedRelationTransformerCompiler,
|
|
28
|
+
]);
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=model-transformer-compiler.js.map
|