@qelos/plugin-play 3.3.5 → 3.3.7
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/crud.js +50 -13
- package/dist/crud.js.map +1 -1
- package/dist/crud.types.d.ts +5 -3
- package/dist/micro-frontends.d.ts +8 -2
- package/dist/micro-frontends.js +9 -1
- package/dist/micro-frontends.js.map +1 -1
- package/package.json +2 -2
- package/src/crud.ts +51 -17
- package/src/crud.types.ts +5 -3
- package/src/micro-frontends.ts +12 -3
package/dist/crud.js
CHANGED
|
@@ -2,7 +2,8 @@ import { addProxyEndpoint } from './endpoints';
|
|
|
2
2
|
import { ResponseError } from './response-error';
|
|
3
3
|
import logger from './logger';
|
|
4
4
|
import manifest from './manifest';
|
|
5
|
-
import { addGroupedMicroFrontends } from './micro-frontends';
|
|
5
|
+
import { addGroupedMicroFrontends, NavBarPosition } from './micro-frontends';
|
|
6
|
+
import { getSdkForTenant } from './sdk';
|
|
6
7
|
export function getPlural(word) {
|
|
7
8
|
const lastChar = word[word.length - 1].toLowerCase();
|
|
8
9
|
if (['x', 'h', 's'].includes(lastChar)) {
|
|
@@ -25,7 +26,7 @@ export function getDisplayNames(name) {
|
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
28
|
function isPropValidToDisplay(value, propSchema, dest) {
|
|
28
|
-
return (propSchema
|
|
29
|
+
return (propSchema?.public &&
|
|
29
30
|
!(propSchema.hideInList && dest === 'list') &&
|
|
30
31
|
(typeof propSchema.type === 'undefined' ||
|
|
31
32
|
(propSchema.type === null && value === null) ||
|
|
@@ -35,7 +36,7 @@ function fillFromSchema(exposed, item, schema, dest = 'single') {
|
|
|
35
36
|
for (const key in schema) {
|
|
36
37
|
const prop = schema[key];
|
|
37
38
|
const value = item[key];
|
|
38
|
-
if (isPropValidToDisplay(value, prop
|
|
39
|
+
if (isPropValidToDisplay(value, prop, dest)) {
|
|
39
40
|
if (prop.schema && prop.type === Object) {
|
|
40
41
|
exposed[key] = {};
|
|
41
42
|
fillFromSchema(exposed[key], value, prop.schema);
|
|
@@ -104,11 +105,13 @@ export function createCrud(options) {
|
|
|
104
105
|
list: {},
|
|
105
106
|
create: {},
|
|
106
107
|
edit: {},
|
|
108
|
+
view: {},
|
|
107
109
|
...options.screens,
|
|
108
110
|
};
|
|
109
111
|
const crudOptions = {
|
|
110
112
|
name: display.plural.replaceAll(' ', '-'),
|
|
111
113
|
identifierKey: '_id',
|
|
114
|
+
dispatchPrefix: options.dispatchPrefix === false ? options.dispatchPrefix : options.dispatchPrefix || manifest.name,
|
|
112
115
|
verify: async () => null,
|
|
113
116
|
...options,
|
|
114
117
|
display: {
|
|
@@ -116,18 +119,22 @@ export function createCrud(options) {
|
|
|
116
119
|
...options.display
|
|
117
120
|
},
|
|
118
121
|
screens: {
|
|
119
|
-
list: {
|
|
122
|
+
list: screens.list === false ? screens.list : {
|
|
120
123
|
use: screens.list.use || 'rows-list',
|
|
121
124
|
structure: screens.list.structure,
|
|
122
125
|
},
|
|
123
|
-
create: {
|
|
126
|
+
create: screens.create === false ? screens.create : {
|
|
124
127
|
use: screens.create.use || 'basic-form',
|
|
125
128
|
structure: screens.create.structure
|
|
126
129
|
},
|
|
127
|
-
edit: {
|
|
130
|
+
edit: screens.edit === false ? screens.edit : {
|
|
128
131
|
use: screens.edit.use || 'basic-form',
|
|
129
132
|
structure: screens.edit.structure,
|
|
130
133
|
},
|
|
134
|
+
view: screens.view === false ? screens.view : {
|
|
135
|
+
use: screens.view.use || 'basic-form',
|
|
136
|
+
structure: screens.view.structure,
|
|
137
|
+
},
|
|
131
138
|
},
|
|
132
139
|
nav: options.nav || {}
|
|
133
140
|
};
|
|
@@ -150,6 +157,19 @@ export function createCrud(options) {
|
|
|
150
157
|
throw err;
|
|
151
158
|
}
|
|
152
159
|
const itemPath = crudOptions.name + '/:id';
|
|
160
|
+
const singlePath = crudOptions.display.name.toLowerCase().replaceAll(' ', '-');
|
|
161
|
+
async function triggerOperation(req, kind, metadata) {
|
|
162
|
+
if (crudOptions.dispatchPrefix) {
|
|
163
|
+
const sdk = await getSdkForTenant(req.tenantPayload);
|
|
164
|
+
sdk?.events.dispatch({
|
|
165
|
+
source: `${crudOptions.dispatchPrefix}:${crudOptions.name}`,
|
|
166
|
+
kind,
|
|
167
|
+
eventName: `${kind}-${singlePath}`,
|
|
168
|
+
user: req.user._id,
|
|
169
|
+
metadata,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
153
173
|
// get one
|
|
154
174
|
addProxyEndpoint(itemPath, {
|
|
155
175
|
verifyToken: true,
|
|
@@ -178,6 +198,7 @@ export function createCrud(options) {
|
|
|
178
198
|
await crudOptions.verify(req, reply);
|
|
179
199
|
const id = req.params.id || '';
|
|
180
200
|
const item = await crudOptions.updateOne(id, getValidatedItem(req.body, crudOptions.schema), req, reply);
|
|
201
|
+
triggerOperation(req, 'update', item).catch();
|
|
181
202
|
if (!crudOptions.schema) {
|
|
182
203
|
return item;
|
|
183
204
|
}
|
|
@@ -197,6 +218,7 @@ export function createCrud(options) {
|
|
|
197
218
|
await crudOptions.verify(req, reply);
|
|
198
219
|
const id = req.params.id || '';
|
|
199
220
|
const item = await crudOptions.deleteOne(id, req, reply);
|
|
221
|
+
triggerOperation(req, 'delete', item).catch();
|
|
200
222
|
if (!crudOptions.schema) {
|
|
201
223
|
return item;
|
|
202
224
|
}
|
|
@@ -215,6 +237,7 @@ export function createCrud(options) {
|
|
|
215
237
|
try {
|
|
216
238
|
await crudOptions.verify(req, reply);
|
|
217
239
|
const item = await crudOptions.createOne(getValidatedItem(req.body, crudOptions.schema), req, reply);
|
|
240
|
+
triggerOperation(req, 'create', item).catch();
|
|
218
241
|
if (!crudOptions.schema) {
|
|
219
242
|
return item;
|
|
220
243
|
}
|
|
@@ -236,7 +259,7 @@ export function createCrud(options) {
|
|
|
236
259
|
if (!crudOptions.schema) {
|
|
237
260
|
return list;
|
|
238
261
|
}
|
|
239
|
-
return list.map(
|
|
262
|
+
return list.map(getPublicDataForList);
|
|
240
263
|
}
|
|
241
264
|
catch (err) {
|
|
242
265
|
return handleError(err, reply);
|
|
@@ -249,40 +272,54 @@ export function createCrud(options) {
|
|
|
249
272
|
identifierKey: crudOptions.identifierKey,
|
|
250
273
|
schema: getJsonSchema(crudOptions.schema),
|
|
251
274
|
});
|
|
252
|
-
const singlePath = crudOptions.display.name.toLowerCase().replaceAll(' ', '-');
|
|
253
275
|
addGroupedMicroFrontends({ name: crudOptions.display.capitalizedPlural, key: crudOptions.name, ...crudOptions.nav }, [
|
|
254
|
-
{
|
|
276
|
+
crudOptions.screens.list && {
|
|
255
277
|
name: 'List',
|
|
256
278
|
crud: crudOptions.name,
|
|
257
279
|
description: 'List of ' + crudOptions.display.capitalizedPlural,
|
|
258
280
|
use: crudOptions.screens.list.use,
|
|
281
|
+
structure: crudOptions.screens.list.structure,
|
|
259
282
|
route: {
|
|
260
283
|
name: crudOptions.name + '-list',
|
|
261
284
|
path: crudOptions.name,
|
|
262
|
-
navBarPosition:
|
|
285
|
+
navBarPosition: NavBarPosition.TOP
|
|
263
286
|
}
|
|
264
287
|
},
|
|
265
|
-
{
|
|
288
|
+
crudOptions.screens.create && {
|
|
266
289
|
name: 'Create',
|
|
267
290
|
crud: crudOptions.name,
|
|
268
291
|
description: 'Create a new ' + crudOptions.display.capitalized,
|
|
269
292
|
use: crudOptions.screens.create.use,
|
|
293
|
+
structure: crudOptions.screens.create.structure,
|
|
270
294
|
route: {
|
|
271
295
|
name: 'add-' + singlePath,
|
|
272
296
|
path: 'add-' + singlePath,
|
|
273
|
-
navBarPosition:
|
|
297
|
+
navBarPosition: NavBarPosition.TOP
|
|
274
298
|
}
|
|
275
299
|
},
|
|
276
|
-
{
|
|
300
|
+
crudOptions.screens.edit && {
|
|
277
301
|
name: 'Edit',
|
|
278
302
|
crud: crudOptions.name,
|
|
279
303
|
description: 'Edit existing ' + crudOptions.display.capitalized,
|
|
280
304
|
use: crudOptions.screens.edit.use,
|
|
305
|
+
structure: crudOptions.screens.edit.structure,
|
|
281
306
|
route: {
|
|
282
307
|
name: 'edit-' + singlePath,
|
|
283
308
|
path: `edit-${singlePath}/:id`,
|
|
284
309
|
navBarPosition: false
|
|
285
310
|
}
|
|
311
|
+
},
|
|
312
|
+
crudOptions.screens.view && {
|
|
313
|
+
name: 'View',
|
|
314
|
+
crud: crudOptions.name,
|
|
315
|
+
description: 'View existing ' + crudOptions.display.capitalized,
|
|
316
|
+
use: crudOptions.screens.view.use,
|
|
317
|
+
structure: crudOptions.screens.view.structure,
|
|
318
|
+
route: {
|
|
319
|
+
name: 'view-' + singlePath,
|
|
320
|
+
path: `view-${singlePath}/:id`,
|
|
321
|
+
navBarPosition: false
|
|
322
|
+
}
|
|
286
323
|
}
|
|
287
324
|
]);
|
|
288
325
|
}
|
package/dist/crud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../src/crud.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud.js","sourceRoot":"","sources":["../src/crud.ts"],"names":[],"mappings":"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"}
|
package/dist/crud.types.d.ts
CHANGED
|
@@ -40,11 +40,13 @@ export interface ICrudOptions<ResourcePublicData, ResourceInsertData> {
|
|
|
40
40
|
priority?: number;
|
|
41
41
|
};
|
|
42
42
|
screens?: {
|
|
43
|
-
list: Screen;
|
|
44
|
-
create: Screen;
|
|
45
|
-
edit: Screen;
|
|
43
|
+
list: false | Screen;
|
|
44
|
+
create: false | Screen;
|
|
45
|
+
edit: false | Screen;
|
|
46
|
+
view: false | Screen;
|
|
46
47
|
};
|
|
47
48
|
schema?: ResourceSchema;
|
|
49
|
+
dispatchPrefix: string | false;
|
|
48
50
|
verify?: (request: FastifyRequest, reply: FastifyReply) => Promise<any>;
|
|
49
51
|
createOne: (body: Partial<ResourceInsertData>, request: FastifyRequest, reply: FastifyReply) => (any | Promise<ResourcePublicData>);
|
|
50
52
|
readOne: (id: string, request: FastifyRequest, reply: FastifyReply) => (Promise<ResourcePublicData>);
|
|
@@ -5,6 +5,12 @@ export interface IframeMicroFrontend extends GlobalMicroFrontend {
|
|
|
5
5
|
interface PreDesignedMicroFrontend extends GlobalMicroFrontend {
|
|
6
6
|
use: string;
|
|
7
7
|
crud: string;
|
|
8
|
+
structure: string;
|
|
9
|
+
}
|
|
10
|
+
export declare enum NavBarPosition {
|
|
11
|
+
TOP = "top",
|
|
12
|
+
BOTTOM = "bottom",
|
|
13
|
+
USER_DROPDOWN = "user-dropdown"
|
|
8
14
|
}
|
|
9
15
|
export interface GlobalMicroFrontend {
|
|
10
16
|
name: string;
|
|
@@ -13,7 +19,7 @@ export interface GlobalMicroFrontend {
|
|
|
13
19
|
route?: {
|
|
14
20
|
name: string;
|
|
15
21
|
path: string;
|
|
16
|
-
navBarPosition:
|
|
22
|
+
navBarPosition: NavBarPosition | false;
|
|
17
23
|
group?: string;
|
|
18
24
|
iconName?: string;
|
|
19
25
|
iconSvg?: string;
|
|
@@ -31,5 +37,5 @@ export interface GlobalMicroFrontend {
|
|
|
31
37
|
export type MicroFrontendOptions = IframeMicroFrontend | PreDesignedMicroFrontend;
|
|
32
38
|
export type MicroFrontend = IframeMicroFrontend | PreDesignedMicroFrontend;
|
|
33
39
|
export declare function addMicroFrontend(mfe: MicroFrontendOptions): void;
|
|
34
|
-
export declare function addGroupedMicroFrontends(group: NavBarGroup, mfeArray: MicroFrontendOptions[]): void;
|
|
40
|
+
export declare function addGroupedMicroFrontends(group: NavBarGroup, mfeArray: (MicroFrontendOptions | false | null | undefined)[]): void;
|
|
35
41
|
export {};
|
package/dist/micro-frontends.js
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import manifest from './manifest';
|
|
2
|
+
export var NavBarPosition;
|
|
3
|
+
(function (NavBarPosition) {
|
|
4
|
+
NavBarPosition["TOP"] = "top";
|
|
5
|
+
NavBarPosition["BOTTOM"] = "bottom";
|
|
6
|
+
NavBarPosition["USER_DROPDOWN"] = "user-dropdown";
|
|
7
|
+
})(NavBarPosition || (NavBarPosition = {}));
|
|
2
8
|
export function addMicroFrontend(mfe) {
|
|
3
9
|
manifest.microFrontends.push({ ...mfe });
|
|
4
10
|
}
|
|
5
11
|
export function addGroupedMicroFrontends(group, mfeArray) {
|
|
6
12
|
manifest.navBarGroups.push(group);
|
|
7
13
|
mfeArray.forEach(mfe => {
|
|
8
|
-
|
|
14
|
+
if (mfe) {
|
|
15
|
+
addMicroFrontend({ ...mfe, route: { ...mfe.route, group: group.key } });
|
|
16
|
+
}
|
|
9
17
|
});
|
|
10
18
|
}
|
|
11
19
|
//# sourceMappingURL=micro-frontends.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"micro-frontends.js","sourceRoot":"","sources":["../src/micro-frontends.ts"],"names":[],"mappings":"AAAA,OAAO,QAAuB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"micro-frontends.js","sourceRoot":"","sources":["../src/micro-frontends.ts"],"names":[],"mappings":"AAAA,OAAO,QAAuB,MAAM,YAAY,CAAC;AAYjD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,mCAAiB,CAAA;IACjB,iDAA+B,CAAA;AACjC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AA4BD,MAAM,UAAU,gBAAgB,CAAC,GAAyB;IACxD,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,GAAG,GAAG,EAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAkB,EAAE,QAA6D;IACxH,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACrB,IAAI,GAAG,EAAE;YACP,gBAAgB,CAAC,EAAC,GAAG,GAAG,EAAE,KAAK,EAAE,EAAC,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAC,EAAC,CAAC,CAAA;SACpE;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qelos/plugin-play",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.7",
|
|
4
4
|
"description": "Play a plugin for Qelos!",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@fastify/cookie": "^8.3.0",
|
|
17
17
|
"@fastify/static": "^6.5.0",
|
|
18
18
|
"@qelos/cache-manager": "^3.2.1",
|
|
19
|
-
"@qelos/sdk": "^3.
|
|
19
|
+
"@qelos/sdk": "^3.3.6",
|
|
20
20
|
"@qelos/web-sdk": "^3.2.8",
|
|
21
21
|
"fastify": "^4.3.0",
|
|
22
22
|
"jsonwebtoken": "^9.0.0",
|
package/src/crud.ts
CHANGED
|
@@ -4,7 +4,8 @@ import {ResponseError} from './response-error';
|
|
|
4
4
|
import logger from './logger';
|
|
5
5
|
import manifest from './manifest';
|
|
6
6
|
import {Crud, ICrudOptions, ResourceProperty, ResourceSchema} from './crud.types';
|
|
7
|
-
import {addGroupedMicroFrontends} from './micro-frontends';
|
|
7
|
+
import {addGroupedMicroFrontends, NavBarPosition} from './micro-frontends';
|
|
8
|
+
import {getSdkForTenant} from './sdk';
|
|
8
9
|
|
|
9
10
|
export function getPlural(word: string) {
|
|
10
11
|
const lastChar = word[word.length - 1].toLowerCase();
|
|
@@ -31,7 +32,7 @@ export function getDisplayNames(name: string) {
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
function isPropValidToDisplay(value, propSchema: ResourceSchema | ResourceProperty, dest: 'list' | 'single') {
|
|
34
|
-
return (propSchema
|
|
35
|
+
return (propSchema?.public &&
|
|
35
36
|
!(propSchema.hideInList && dest === 'list') &&
|
|
36
37
|
(
|
|
37
38
|
typeof propSchema.type === 'undefined' ||
|
|
@@ -44,7 +45,7 @@ function fillFromSchema(exposed: any, item: any, schema: ResourceSchema, dest: '
|
|
|
44
45
|
for (const key in schema) {
|
|
45
46
|
const prop = schema[key];
|
|
46
47
|
const value = item[key];
|
|
47
|
-
if (isPropValidToDisplay(value, prop
|
|
48
|
+
if (isPropValidToDisplay(value, prop, dest)) {
|
|
48
49
|
if (prop.schema && prop.type === Object) {
|
|
49
50
|
exposed[key] = {}
|
|
50
51
|
fillFromSchema(exposed[key], value, prop.schema as ResourceSchema);
|
|
@@ -117,12 +118,14 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
117
118
|
list: {},
|
|
118
119
|
create: {},
|
|
119
120
|
edit: {},
|
|
121
|
+
view: {},
|
|
120
122
|
...options.screens,
|
|
121
123
|
}
|
|
122
124
|
|
|
123
125
|
const crudOptions: ICrudOptions<ResourcePublicData, ResourceInsertData> & Crud = {
|
|
124
126
|
name: display.plural.replaceAll(' ', '-'),
|
|
125
127
|
identifierKey: '_id',
|
|
128
|
+
dispatchPrefix: options.dispatchPrefix === false ? options.dispatchPrefix : options.dispatchPrefix || manifest.name,
|
|
126
129
|
verify: async () => null,
|
|
127
130
|
...options,
|
|
128
131
|
display: {
|
|
@@ -130,18 +133,22 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
130
133
|
...options.display
|
|
131
134
|
},
|
|
132
135
|
screens: {
|
|
133
|
-
list: {
|
|
136
|
+
list: screens.list === false ? screens.list : {
|
|
134
137
|
use: screens.list.use || 'rows-list',
|
|
135
138
|
structure: screens.list.structure,
|
|
136
139
|
},
|
|
137
|
-
create: {
|
|
140
|
+
create: screens.create === false ? screens.create : {
|
|
138
141
|
use: screens.create.use || 'basic-form',
|
|
139
142
|
structure: screens.create.structure
|
|
140
143
|
},
|
|
141
|
-
edit: {
|
|
144
|
+
edit: screens.edit === false ? screens.edit : {
|
|
142
145
|
use: screens.edit.use || 'basic-form',
|
|
143
146
|
structure: screens.edit.structure,
|
|
144
147
|
},
|
|
148
|
+
view: screens.view === false ? screens.view : {
|
|
149
|
+
use: screens.view.use || 'basic-form',
|
|
150
|
+
structure: screens.view.structure,
|
|
151
|
+
},
|
|
145
152
|
},
|
|
146
153
|
nav: options.nav || {}
|
|
147
154
|
};
|
|
@@ -168,6 +175,20 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
168
175
|
}
|
|
169
176
|
|
|
170
177
|
const itemPath = crudOptions.name + '/:id';
|
|
178
|
+
const singlePath = crudOptions.display.name.toLowerCase().replaceAll(' ', '-');
|
|
179
|
+
|
|
180
|
+
async function triggerOperation(req, kind, metadata) {
|
|
181
|
+
if (crudOptions.dispatchPrefix) {
|
|
182
|
+
const sdk = await getSdkForTenant(req.tenantPayload);
|
|
183
|
+
sdk?.events.dispatch({
|
|
184
|
+
source: `${crudOptions.dispatchPrefix}:${crudOptions.name}`,
|
|
185
|
+
kind,
|
|
186
|
+
eventName: `${kind}-${singlePath}`,
|
|
187
|
+
user: req.user._id,
|
|
188
|
+
metadata,
|
|
189
|
+
})
|
|
190
|
+
}
|
|
191
|
+
}
|
|
171
192
|
|
|
172
193
|
// get one
|
|
173
194
|
addProxyEndpoint(itemPath, {
|
|
@@ -200,7 +221,7 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
200
221
|
await crudOptions.verify(req, reply);
|
|
201
222
|
const id: string = (req.params as any).id || '';
|
|
202
223
|
const item = await crudOptions.updateOne(id, getValidatedItem(req.body, crudOptions.schema), req, reply);
|
|
203
|
-
|
|
224
|
+
triggerOperation(req, 'update', item).catch();
|
|
204
225
|
if (!crudOptions.schema) {
|
|
205
226
|
return item;
|
|
206
227
|
}
|
|
@@ -222,7 +243,7 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
222
243
|
await crudOptions.verify(req, reply);
|
|
223
244
|
const id: string = (req.params as any).id || '';
|
|
224
245
|
const item = await crudOptions.deleteOne(id, req, reply);
|
|
225
|
-
|
|
246
|
+
triggerOperation(req, 'delete', item).catch();
|
|
226
247
|
if (!crudOptions.schema) {
|
|
227
248
|
return item;
|
|
228
249
|
}
|
|
@@ -243,7 +264,7 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
243
264
|
try {
|
|
244
265
|
await crudOptions.verify(req, reply);
|
|
245
266
|
const item = await crudOptions.createOne(getValidatedItem(req.body, crudOptions.schema), req, reply);
|
|
246
|
-
|
|
267
|
+
triggerOperation(req, 'create', item).catch();
|
|
247
268
|
if (!crudOptions.schema) {
|
|
248
269
|
return item;
|
|
249
270
|
}
|
|
@@ -269,7 +290,7 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
269
290
|
return list;
|
|
270
291
|
}
|
|
271
292
|
|
|
272
|
-
return list.map(
|
|
293
|
+
return list.map(getPublicDataForList);
|
|
273
294
|
} catch (err) {
|
|
274
295
|
return handleError(err, reply);
|
|
275
296
|
}
|
|
@@ -283,43 +304,56 @@ export function createCrud<ResourcePublicData = any, ResourceInsertData = any>(
|
|
|
283
304
|
schema: getJsonSchema(crudOptions.schema),
|
|
284
305
|
});
|
|
285
306
|
|
|
286
|
-
const singlePath = crudOptions.display.name.toLowerCase().replaceAll(' ', '-');
|
|
287
|
-
|
|
288
307
|
addGroupedMicroFrontends(
|
|
289
308
|
{name: crudOptions.display.capitalizedPlural, key: crudOptions.name, ...crudOptions.nav},
|
|
290
309
|
[
|
|
291
|
-
{
|
|
310
|
+
crudOptions.screens.list && {
|
|
292
311
|
name: 'List',
|
|
293
312
|
crud: crudOptions.name,
|
|
294
313
|
description: 'List of ' + crudOptions.display.capitalizedPlural,
|
|
295
314
|
use: crudOptions.screens.list.use,
|
|
315
|
+
structure: crudOptions.screens.list.structure,
|
|
296
316
|
route: {
|
|
297
317
|
name: crudOptions.name + '-list',
|
|
298
318
|
path: crudOptions.name,
|
|
299
|
-
navBarPosition:
|
|
319
|
+
navBarPosition: NavBarPosition.TOP
|
|
300
320
|
}
|
|
301
321
|
},
|
|
302
|
-
{
|
|
322
|
+
crudOptions.screens.create && {
|
|
303
323
|
name: 'Create',
|
|
304
324
|
crud: crudOptions.name,
|
|
305
325
|
description: 'Create a new ' + crudOptions.display.capitalized,
|
|
306
326
|
use: crudOptions.screens.create.use,
|
|
327
|
+
structure: crudOptions.screens.create.structure,
|
|
307
328
|
route: {
|
|
308
329
|
name: 'add-' + singlePath,
|
|
309
330
|
path: 'add-' + singlePath,
|
|
310
|
-
navBarPosition:
|
|
331
|
+
navBarPosition: NavBarPosition.TOP
|
|
311
332
|
}
|
|
312
333
|
},
|
|
313
|
-
{
|
|
334
|
+
crudOptions.screens.edit && {
|
|
314
335
|
name: 'Edit',
|
|
315
336
|
crud: crudOptions.name,
|
|
316
337
|
description: 'Edit existing ' + crudOptions.display.capitalized,
|
|
317
338
|
use: crudOptions.screens.edit.use,
|
|
339
|
+
structure: crudOptions.screens.edit.structure,
|
|
318
340
|
route: {
|
|
319
341
|
name: 'edit-' + singlePath,
|
|
320
342
|
path: `edit-${singlePath}/:id`,
|
|
321
343
|
navBarPosition: false
|
|
322
344
|
}
|
|
345
|
+
},
|
|
346
|
+
crudOptions.screens.view && {
|
|
347
|
+
name: 'View',
|
|
348
|
+
crud: crudOptions.name,
|
|
349
|
+
description: 'View existing ' + crudOptions.display.capitalized,
|
|
350
|
+
use: crudOptions.screens.view.use,
|
|
351
|
+
structure: crudOptions.screens.view.structure,
|
|
352
|
+
route: {
|
|
353
|
+
name: 'view-' + singlePath,
|
|
354
|
+
path: `view-${singlePath}/:id`,
|
|
355
|
+
navBarPosition: false
|
|
356
|
+
}
|
|
323
357
|
}
|
|
324
358
|
]
|
|
325
359
|
)
|
package/src/crud.types.ts
CHANGED
|
@@ -46,11 +46,13 @@ export interface ICrudOptions<ResourcePublicData, ResourceInsertData> {
|
|
|
46
46
|
priority?: number;
|
|
47
47
|
},
|
|
48
48
|
screens?: {
|
|
49
|
-
list: Screen;
|
|
50
|
-
create: Screen;
|
|
51
|
-
edit: Screen;
|
|
49
|
+
list: false | Screen;
|
|
50
|
+
create: false | Screen;
|
|
51
|
+
edit: false | Screen;
|
|
52
|
+
view: false | Screen;
|
|
52
53
|
},
|
|
53
54
|
schema?: ResourceSchema,
|
|
55
|
+
dispatchPrefix: string | false,
|
|
54
56
|
verify?: (request: FastifyRequest, reply: FastifyReply) => Promise<any>;
|
|
55
57
|
createOne: (body: Partial<ResourceInsertData>, request: FastifyRequest, reply: FastifyReply) => (any | Promise<ResourcePublicData>),
|
|
56
58
|
readOne: (id: string, request: FastifyRequest, reply: FastifyReply) => (Promise<ResourcePublicData>);
|
package/src/micro-frontends.ts
CHANGED
|
@@ -7,6 +7,13 @@ export interface IframeMicroFrontend extends GlobalMicroFrontend {
|
|
|
7
7
|
interface PreDesignedMicroFrontend extends GlobalMicroFrontend {
|
|
8
8
|
use: string;
|
|
9
9
|
crud: string;
|
|
10
|
+
structure: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export enum NavBarPosition {
|
|
14
|
+
TOP = 'top',
|
|
15
|
+
BOTTOM = 'bottom',
|
|
16
|
+
USER_DROPDOWN = 'user-dropdown',
|
|
10
17
|
}
|
|
11
18
|
|
|
12
19
|
export interface GlobalMicroFrontend {
|
|
@@ -16,7 +23,7 @@ export interface GlobalMicroFrontend {
|
|
|
16
23
|
route?: {
|
|
17
24
|
name: string;
|
|
18
25
|
path: string;
|
|
19
|
-
navBarPosition:
|
|
26
|
+
navBarPosition: NavBarPosition | false;
|
|
20
27
|
group?: string;
|
|
21
28
|
iconName?: string;
|
|
22
29
|
iconSvg?: string;
|
|
@@ -39,9 +46,11 @@ export function addMicroFrontend(mfe: MicroFrontendOptions) {
|
|
|
39
46
|
manifest.microFrontends.push({...mfe});
|
|
40
47
|
}
|
|
41
48
|
|
|
42
|
-
export function addGroupedMicroFrontends(group: NavBarGroup, mfeArray: MicroFrontendOptions[]) {
|
|
49
|
+
export function addGroupedMicroFrontends(group: NavBarGroup, mfeArray: (MicroFrontendOptions | false | null | undefined)[]) {
|
|
43
50
|
manifest.navBarGroups.push(group);
|
|
44
51
|
mfeArray.forEach(mfe => {
|
|
45
|
-
|
|
52
|
+
if (mfe) {
|
|
53
|
+
addMicroFrontend({...mfe, route: {...mfe.route, group: group.key}})
|
|
54
|
+
}
|
|
46
55
|
})
|
|
47
56
|
}
|