zova-module-rest-resource 5.1.35 → 5.1.40
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/index.js +51 -25
- package/dist/index.js.map +1 -1
- package/dist/model/resource.d.ts +22 -1
- package/dist/model/resource.d.ts.map +1 -1
- package/dist/page/entry/controller.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/model/resource.ts +66 -16
- package/src/page/entry/controller.tsx +1 -2
package/dist/index.js
CHANGED
|
@@ -72,13 +72,8 @@ var ModelResource = (_dec$4 = Model({ enableSelector: true }), _dec2$4 = BeanInf
|
|
|
72
72
|
await this._bootstrap();
|
|
73
73
|
}
|
|
74
74
|
selectGeneral(actionPath, query) {
|
|
75
|
-
const queryHash = hashkey(query);
|
|
76
75
|
return this.$useStateData({
|
|
77
|
-
queryKey:
|
|
78
|
-
"select",
|
|
79
|
-
actionPath ?? "",
|
|
80
|
-
queryHash
|
|
81
|
-
],
|
|
76
|
+
queryKey: this.keySelect(actionPath, query),
|
|
82
77
|
queryFn: async () => {
|
|
83
78
|
const apiPath = actionPath ? `${this.resourceApi}/${actionPath}` : this.resourceApi;
|
|
84
79
|
return this.$fetch.get(this.sys.util.apiActionPathTranslate(apiPath), this.sys.util.apiActionConfigPrepare(void 0, { query }));
|
|
@@ -88,10 +83,19 @@ var ModelResource = (_dec$4 = Model({ enableSelector: true }), _dec2$4 = BeanInf
|
|
|
88
83
|
select(query) {
|
|
89
84
|
return this.selectGeneral(void 0, query);
|
|
90
85
|
}
|
|
91
|
-
|
|
86
|
+
queryItem(options) {
|
|
87
|
+
const { id, action, queryFn, meta } = options;
|
|
92
88
|
if (isNil(id)) throw new Error("row id cannot empty");
|
|
93
89
|
return this.$useStateData({
|
|
94
|
-
queryKey:
|
|
90
|
+
queryKey: this.keyItem(id, action),
|
|
91
|
+
queryFn,
|
|
92
|
+
meta
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
view(id) {
|
|
96
|
+
return this.queryItem({
|
|
97
|
+
id,
|
|
98
|
+
action: "view",
|
|
95
99
|
queryFn: async () => {
|
|
96
100
|
return await this.$fetch.get(this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }), this.sys.util.apiActionConfigPrepare()) ?? null;
|
|
97
101
|
}
|
|
@@ -108,27 +112,34 @@ var ModelResource = (_dec$4 = Model({ enableSelector: true }), _dec2$4 = BeanInf
|
|
|
108
112
|
}
|
|
109
113
|
});
|
|
110
114
|
}
|
|
111
|
-
|
|
115
|
+
mutationItem(options) {
|
|
116
|
+
const { id, action, mutationFn, onSuccess, invalidateSelect = true } = options;
|
|
117
|
+
if (isNil(id)) throw new Error("row id cannot empty");
|
|
112
118
|
return this.$useMutationData({
|
|
113
|
-
mutationKey: ["
|
|
119
|
+
mutationKey: [...this.keyItem(id, action), "mutation"],
|
|
120
|
+
mutationFn,
|
|
121
|
+
onSuccess: async (data, variables, context) => {
|
|
122
|
+
if (invalidateSelect) this.$invalidateQueries({ queryKey: ["select"] });
|
|
123
|
+
this.$invalidateQueries({ queryKey: this.keyItemRoot(id) });
|
|
124
|
+
await onSuccess?.(data, variables, context);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
update(id) {
|
|
129
|
+
return this.mutationItem({
|
|
130
|
+
id,
|
|
131
|
+
action: "update",
|
|
114
132
|
mutationFn: async (params) => {
|
|
115
133
|
return this.$fetch.patch(this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }), params, this.sys.util.apiActionConfigPrepare());
|
|
116
|
-
},
|
|
117
|
-
onSuccess: () => {
|
|
118
|
-
this.$invalidateQueries({ queryKey: ["select"] });
|
|
119
|
-
this.$invalidateQueries({ queryKey: ["get", id] });
|
|
120
134
|
}
|
|
121
135
|
});
|
|
122
136
|
}
|
|
123
137
|
delete(id) {
|
|
124
|
-
return this
|
|
125
|
-
|
|
138
|
+
return this.mutationItem({
|
|
139
|
+
id,
|
|
140
|
+
action: "delete",
|
|
126
141
|
mutationFn: async () => {
|
|
127
142
|
return this.$fetch.delete(this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }), this.sys.util.apiActionConfigPrepare());
|
|
128
|
-
},
|
|
129
|
-
onSuccess: () => {
|
|
130
|
-
this.$invalidateQueries({ queryKey: ["select"] });
|
|
131
|
-
this.$invalidateQueries({ queryKey: ["get", id] });
|
|
132
143
|
}
|
|
133
144
|
});
|
|
134
145
|
}
|
|
@@ -172,6 +183,25 @@ var ModelResource = (_dec$4 = Model({ enableSelector: true }), _dec2$4 = BeanInf
|
|
|
172
183
|
if (typeof schemaName === "object") schemaName = schemaName[SymbolOpenapiSchemaName];
|
|
173
184
|
return this.$sdk.getSchemaDefaultValue(schemaName);
|
|
174
185
|
}
|
|
186
|
+
keySelect(actionPath, query) {
|
|
187
|
+
return [
|
|
188
|
+
"select",
|
|
189
|
+
actionPath ?? "",
|
|
190
|
+
hashkey(query)
|
|
191
|
+
];
|
|
192
|
+
}
|
|
193
|
+
keyItemRoot(id) {
|
|
194
|
+
if (isNil(id)) throw new Error("row id cannot empty");
|
|
195
|
+
return ["item", id];
|
|
196
|
+
}
|
|
197
|
+
keyItem(id, action) {
|
|
198
|
+
if (isNil(id)) throw new Error("row id cannot empty");
|
|
199
|
+
return [
|
|
200
|
+
"item",
|
|
201
|
+
id,
|
|
202
|
+
action
|
|
203
|
+
];
|
|
204
|
+
}
|
|
175
205
|
async _bootstrap() {
|
|
176
206
|
const queryBootstrap = await $QueryAutoLoad(() => this.$sdk.getBootstrap(this.resource));
|
|
177
207
|
if (!queryBootstrap?.data) throw new Error(`not found sdk of resource: ${this.resource}`);
|
|
@@ -225,11 +255,7 @@ var ControllerPageEntry = (_dec$3 = Controller(), _dec2$3 = BeanInfo({ module: "
|
|
|
225
255
|
}
|
|
226
256
|
async __init__() {
|
|
227
257
|
this.formMeta = this.$computed(() => {
|
|
228
|
-
|
|
229
|
-
return {
|
|
230
|
-
...formMetaFromFormScene(formScene),
|
|
231
|
-
formScene
|
|
232
|
-
};
|
|
258
|
+
return formMetaFromFormScene(this.formScene);
|
|
233
259
|
});
|
|
234
260
|
this.formProvider = this.$computed(() => {
|
|
235
261
|
return this.$$modelResource.formProvider;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isNil","z","BeanControllerPageBase","deepExtend","Use","usePrepareArg","ZovaJsx","Controller","formMetaFromFormScene","$QueryAutoLoad","_isSlot","s","Object","prototype","toString","call","_isVNode","ControllerPageEntrySchemaParams","object","resource","string","id","optional","formScene","ControllerPageEntry","_dec","_dec2","__z_BeanInfo","module","_dec3","beanFullName","_dec4","Reflect","metadata","Function","_dec5","_class","_class2","constructor","args","formMeta","formProvider","formSchema","jsxZova","$$modelResource","$params","entryId","__init__","$computed","getFormSchema","_prepareJsx","getFormApiSchemas","sdk","bean","_newBeanSimple","components","render","blocks","rest","length","domBlocks","forEach","block","index","options","key","domBlock","Array","isArray","push","_createVNode","ZPage","default","_applyDecoratedDescriptor","getOwnPropertyDescriptor","Virtual","Controller","ControllerPageEntry","ControllerPageEntrySchemaParams","ControllerPageEntryCreateSchemaParams","ControllerPageEntryCreate","_dec","_dec2","_dec3","__z_BeanInfo","module","_class","z","BeanControllerPageBase","deepExtend","Use","usePrepareArg","ZovaJsx","Controller","$QueryAutoLoad","_isSlot","s","Object","prototype","toString","call","_isVNode","ControllerPageResourceSchemaParams","object","resource","string","ControllerPageResource","_dec","_dec2","__z_BeanInfo","module","_dec3","beanFullName","_dec4","Reflect","metadata","Function","_dec5","_class","_class2","constructor","args","jsxZova","$$modelResource","$params","__init__","_prepareJsx","apiSchemasSelect","sdk","bean","_newBeanSimple","schemaRow","render","blocks","rest","length","domBlocks","forEach","block","index","options","key","domBlock","Array","isArray","push","_createVNode","ZPage","default","_applyDecoratedDescriptor","getOwnPropertyDescriptor"],"sources":["../src/model/resource.ts","../src/page/entry/controller.tsx","../src/page/entryCreate/controller.tsx","../src/page/resource/controller.tsx","../src/.metadata/page/entry.ts","../src/.metadata/page/entryCreate.ts","../src/.metadata/page/resource.ts","../src/routes.ts","../src/.metadata/index.ts"],"sourcesContent":["import type { TableIdentity } from 'table-identity';\nimport type { DataMutation, IDecoratorModelOptions } from 'zova-module-a-model';\nimport type {\n IFormMeta,\n IFormProvider,\n ISchemaObjectExtensionField,\n ITableQuery,\n ITableRes,\n TypeOpenapiPermissions,\n} from 'zova-module-a-openapi';\n\nimport { hashkey, isNil } from '@cabloy/utils';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { UseScope } from 'zova';\nimport { formSceneFromFormMeta } from 'zova-module-a-form';\nimport { $QueryAutoLoad, BeanModelBase, Model } from 'zova-module-a-model';\nimport { ScopeModuleAOpenapi, SymbolOpenapiSchemaName } from 'zova-module-a-openapi';\n\nexport interface IModelOptionsResource extends IDecoratorModelOptions {}\n\n@Model<IModelOptionsResource>({\n enableSelector: true,\n})\nexport class ModelResource<\n Entity = any,\n EntityCreate = Partial<Entity>,\n EntityUpdate = Partial<Entity>,\n> extends BeanModelBase {\n public resource: string;\n public resourceApi: string;\n public permissions?: TypeOpenapiPermissions;\n public formProvider: IFormProvider;\n public schemaView?: ISchemaObjectExtensionField;\n public schemaCreate?: ISchemaObjectExtensionField;\n public schemaUpdate?: ISchemaObjectExtensionField;\n public schemaFilter?: ISchemaObjectExtensionField;\n public schemaRow?: ISchemaObjectExtensionField;\n public schemaPages?: ISchemaObjectExtensionField;\n\n @UseScope()\n $$scopeOpenapi: ScopeModuleAOpenapi;\n\n protected async __init__(resource: string) {\n if (!resource) throw new Error('resource not specified');\n await super.__init__(resource);\n this.resource = resource;\n this.permissions = this.$computed(() => {\n const permissions = this.$sdk.getPermissions(this.resource);\n return permissions.data;\n });\n this.formProvider = this.$computed(() => {\n return this.$$scopeOpenapi.config.formProvider;\n });\n this.schemaView = this.$computed(() => {\n return this.apiSchemasView.responseBody;\n });\n this.schemaCreate = this.$computed(() => {\n return this.apiSchemasCreate.requestBody;\n });\n this.schemaUpdate = this.$computed(() => {\n return this.apiSchemasUpdate.requestBody;\n });\n this.schemaFilter = this.$computed(() => {\n return this.apiSchemasSelect.filter;\n });\n this.schemaRow = this.$computed(() => {\n return this.apiSchemasSelect.row;\n });\n this.schemaPages = this.$computed(() => {\n return this.apiSchemasSelect.paged;\n });\n // bootstrap\n await this._bootstrap();\n }\n\n selectGeneral(actionPath?: string, query?: ITableQuery) {\n const queryHash = hashkey(query);\n return this.$useStateData({\n queryKey: ['select', actionPath ?? '', queryHash],\n queryFn: async () => {\n const apiPath = actionPath ? `${this.resourceApi}/${actionPath}` : this.resourceApi;\n return this.$fetch.get<any, ITableRes<Entity>>(\n this.sys.util.apiActionPathTranslate(apiPath),\n this.sys.util.apiActionConfigPrepare(undefined, { query }),\n );\n },\n });\n }\n\n select(query?: ITableQuery) {\n return this.selectGeneral(undefined, query);\n }\n\n view(id: TableIdentity) {\n if (isNil(id)) throw new Error('row id cannot empty');\n return this.$useStateData({\n queryKey: ['get', id],\n queryFn: async () => {\n const res = await this.$fetch.get<any, Entity>(\n this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }),\n this.sys.util.apiActionConfigPrepare(),\n );\n return res ?? null;\n },\n });\n }\n\n create() {\n return this.$useMutationData<void, EntityCreate>({\n mutationKey: ['create'],\n mutationFn: async params => {\n return this.$fetch.post<any, void, EntityCreate>(\n this.sys.util.apiActionPathTranslate(this.resourceApi),\n params,\n this.sys.util.apiActionConfigPrepare(),\n );\n },\n onSuccess: () => {\n this.$invalidateQueries({ queryKey: ['select'] });\n },\n });\n }\n\n update(id: TableIdentity) {\n return this.$useMutationData<void, EntityUpdate>({\n mutationKey: ['update', id],\n mutationFn: async params => {\n return this.$fetch.patch<any, void, EntityUpdate>(\n this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }),\n params,\n this.sys.util.apiActionConfigPrepare(),\n );\n },\n onSuccess: () => {\n this.$invalidateQueries({ queryKey: ['select'] });\n this.$invalidateQueries({ queryKey: ['get', id] });\n },\n });\n }\n\n delete(id: TableIdentity) {\n return this.$useMutationData<void, void>({\n mutationKey: ['delete', id],\n mutationFn: async () => {\n return this.$fetch.delete<any, void, void>(\n this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }),\n this.sys.util.apiActionConfigPrepare(),\n );\n },\n onSuccess: () => {\n this.$invalidateQueries({ queryKey: ['select'] });\n this.$invalidateQueries({ queryKey: ['get', id] });\n },\n });\n }\n\n public get apiSchemasSelect() {\n return this.$sdk.createApiSchemas(this.resourceApi, 'get');\n }\n\n public get apiSchemasView() {\n return this.$sdk.createApiSchemas(`${this.resourceApi}/:id`, 'get');\n }\n\n public get apiSchemasCreate() {\n return this.$sdk.createApiSchemas(this.resourceApi, 'post');\n }\n\n public get apiSchemasUpdate() {\n return this.$sdk.createApiSchemas(`${this.resourceApi}/:id`, 'patch');\n }\n\n public getFormSchema(formMeta: IFormMeta) {\n const formScene = formMeta.formScene ?? formSceneFromFormMeta(formMeta);\n if (formScene === 'view') return this.schemaView;\n if (formScene === 'create') return this.schemaCreate;\n if (formScene === 'edit') return this.schemaUpdate;\n }\n\n public getFormApiSchemas(formMeta: IFormMeta) {\n const formScene = formMeta.formScene ?? formSceneFromFormMeta(formMeta);\n if (formScene === 'view') return this.apiSchemasView;\n if (formScene === 'create') return this.apiSchemasCreate;\n if (formScene === 'edit') return this.apiSchemasUpdate;\n throw new Error('invalid parameters');\n }\n\n public getFormMutationSubmit(formMeta: IFormMeta, id?: TableIdentity): DataMutation | undefined {\n if (formMeta.formMode !== 'edit') return;\n if (formMeta.editMode === 'create') {\n return this.create() as any;\n } else if (formMeta.editMode === 'update') {\n return this.update(id!) as any;\n }\n }\n\n public getFormData(\n formMeta: IFormMeta,\n id?: TableIdentity,\n ): Entity | EntityCreate | EntityUpdate | undefined {\n if (formMeta.formMode === 'edit' && formMeta.editMode === 'create') {\n return this.getQueryDataDefaultValue(this.schemaCreate);\n }\n if (isNil(id)) return undefined;\n return this.view(id).data as Entity | EntityUpdate | undefined;\n }\n\n public getQueryDataDefaultValue(schemaName?: SchemaObject | string): EntityCreate | undefined {\n if (!schemaName) return;\n if (typeof schemaName === 'object') {\n schemaName = schemaName[SymbolOpenapiSchemaName] as string;\n }\n return this.$sdk.getSchemaDefaultValue(schemaName) as EntityCreate | undefined;\n }\n\n private async _bootstrap() {\n const queryBootstrap = await $QueryAutoLoad(() => this.$sdk.getBootstrap(this.resource));\n if (!queryBootstrap?.data) {\n throw new Error(`not found sdk of resource: ${this.resource}`);\n }\n this.resourceApi = this.sys.util.parseResourceApi(this.resource, queryBootstrap.data.apiPath);\n }\n}\n","import type {\n IFormMeta,\n IFormProvider,\n ISchemaObjectExtensionField,\n TypeFormScene,\n} from 'zova-module-a-openapi';\n\nimport { isNil } from '@cabloy/utils';\nimport { VNode } from 'vue';\nimport { z } from 'zod';\nimport { BeanControllerPageBase, deepExtend, Use, usePrepareArg } from 'zova';\nimport { ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport { formMetaFromFormScene } from 'zova-module-a-form';\nimport { $QueryAutoLoad } from 'zova-module-a-model';\nimport { ZPage } from 'zova-module-home-base';\n\nimport type { ModelResource } from '../../model/resource.js';\n\nexport const ControllerPageEntrySchemaParams = z.object({\n resource: z.string(),\n id: z.string().optional(),\n formScene: z.string().optional(),\n});\n\n@Controller()\nexport class ControllerPageEntry extends BeanControllerPageBase {\n formMeta: IFormMeta;\n formProvider: IFormProvider;\n formSchema?: ISchemaObjectExtensionField;\n jsxZova: ZovaJsx;\n\n @Use({ beanFullName: 'rest-resource.model.resource' })\n get $$modelResource(): ModelResource {\n return usePrepareArg(this.$params.resource, true);\n }\n\n get resource() {\n return this.$params.resource;\n }\n\n get entryId() {\n return this.$params.id;\n }\n\n get formScene() {\n return (\n (this.$params.formScene as TypeFormScene | undefined) ??\n (isNil(this.entryId) ? 'create' : 'view')\n );\n }\n\n protected async __init__() {\n this.formMeta = this.$computed(() => {\n const formScene = this.formScene;\n return { ...formMetaFromFormScene(formScene), formScene };\n });\n this.formProvider = this.$computed(() => {\n return this.$$modelResource.formProvider;\n });\n this.formSchema = this.$computed(() => {\n return this.$$modelResource.getFormSchema(this.formMeta);\n });\n // jsx\n this._prepareJsx();\n // load schema\n await $QueryAutoLoad(() => this.$$modelResource.getFormApiSchemas(this.formMeta)?.sdk);\n }\n\n private _prepareJsx() {\n this.jsxZova = this.bean._newBeanSimple(ZovaJsx, false, this.formProvider.components);\n }\n\n protected render() {\n const blocks = this.formSchema?.rest?.blocks;\n if (!blocks || blocks.length === 0) return;\n const domBlocks: VNode[] = [];\n blocks.forEach((block, index) => {\n const options = deepExtend(\n { key: index },\n {\n resource: this.resource,\n id: this.entryId,\n formScene: this.formScene,\n },\n block.options,\n );\n const domBlock = this.jsxZova.render(block.render!, options);\n if (!domBlock) return;\n if (Array.isArray(domBlock)) {\n domBlocks.push(...domBlock);\n } else {\n domBlocks.push(domBlock);\n }\n });\n return <ZPage>{domBlocks}</ZPage>;\n }\n}\n","import { Virtual } from 'zova-core';\nimport { Controller } from 'zova-module-a-bean';\n\nimport { ControllerPageEntry, ControllerPageEntrySchemaParams } from '../entry/controller.jsx';\n\nexport const ControllerPageEntryCreateSchemaParams = ControllerPageEntrySchemaParams;\n\n@Controller()\n@Virtual()\nexport class ControllerPageEntryCreate extends ControllerPageEntry {}\n","import { VNode } from 'vue';\nimport { z } from 'zod';\nimport { BeanControllerPageBase, deepExtend, Use, usePrepareArg } from 'zova';\nimport { ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport { $QueryAutoLoad } from 'zova-module-a-model';\nimport { ZPage } from 'zova-module-home-base';\n\nimport type { ModelResource } from '../../model/resource.js';\n\nexport const ControllerPageResourceSchemaParams = z.object({\n resource: z.string(),\n});\n\n@Controller()\nexport class ControllerPageResource extends BeanControllerPageBase {\n jsxZova: ZovaJsx;\n\n @Use({ beanFullName: 'rest-resource.model.resource' })\n get $$modelResource(): ModelResource {\n return usePrepareArg(this.$params.resource, true);\n }\n\n get resource() {\n return this.$params.resource;\n }\n\n protected async __init__() {\n // jsx\n this._prepareJsx();\n // load schema/data\n await $QueryAutoLoad(() => this.$$modelResource.apiSchemasSelect.sdk);\n }\n\n private _prepareJsx() {\n this.jsxZova = this.bean._newBeanSimple(ZovaJsx, false);\n }\n\n get schemaRow() {\n return this.$$modelResource.schemaRow;\n }\n\n public render() {\n const blocks = this.schemaRow?.rest?.blocks;\n if (!blocks || blocks.length === 0) return;\n const domBlocks: VNode[] = [];\n blocks.forEach((block, index) => {\n const options = deepExtend(\n { key: index },\n {\n resource: this.resource,\n },\n block.options,\n );\n const domBlock = this.jsxZova.render(block.render!, options);\n if (!domBlock) return;\n if (Array.isArray(domBlock)) {\n domBlocks.push(...domBlock);\n } else {\n domBlocks.push(domBlock);\n }\n });\n return <ZPage>{domBlocks}</ZPage>;\n }\n}\n","import { z } from 'zod';\nimport { createZovaComponentPage } from 'zova';\n\nimport { ControllerPageEntry } from '../../page/entry/controller.jsx';\nimport { ControllerPageEntrySchemaParams } from '../../page/entry/controller.jsx';\nexport namespace NSControllerPageEntry {\n export const paramsSchema = ControllerPageEntrySchemaParams;\n export type ParamsInput = z.input<typeof ControllerPageEntrySchemaParams>;\n export type ParamsOutput = z.output<typeof ControllerPageEntrySchemaParams>;\n}\n\nexport const ZPageEntry = createZovaComponentPage(ControllerPageEntry, undefined, undefined);\n","import { z } from 'zod';\nimport { createZovaComponentPage } from 'zova';\n\nimport { ControllerPageEntryCreate } from '../../page/entryCreate/controller.jsx';\nimport { ControllerPageEntryCreateSchemaParams } from '../../page/entryCreate/controller.jsx';\nexport namespace NSControllerPageEntryCreate {\n export const paramsSchema = ControllerPageEntryCreateSchemaParams;\n export type ParamsInput = z.input<typeof ControllerPageEntryCreateSchemaParams>;\n export type ParamsOutput = z.output<typeof ControllerPageEntryCreateSchemaParams>;\n}\n\nexport const ZPageEntryCreate = createZovaComponentPage(\n ControllerPageEntryCreate,\n undefined,\n undefined,\n);\n","import { z } from 'zod';\nimport { createZovaComponentPage } from 'zova';\n\nimport { ControllerPageResource } from '../../page/resource/controller.jsx';\nimport { ControllerPageResourceSchemaParams } from '../../page/resource/controller.jsx';\nexport namespace NSControllerPageResource {\n export const paramsSchema = ControllerPageResourceSchemaParams;\n export type ParamsInput = z.input<typeof ControllerPageResourceSchemaParams>;\n export type ParamsOutput = z.output<typeof ControllerPageResourceSchemaParams>;\n}\n\nexport const ZPageResource = createZovaComponentPage(ControllerPageResource, undefined, undefined);\n","import type { IModuleRoute } from 'zova-module-a-router';\n\nimport { ZPageEntry } from './.metadata/page/entry.js';\nimport { ZPageEntryCreate } from './.metadata/page/entryCreate.js';\nimport { ZPageResource } from './.metadata/page/resource.js';\n\nexport const routes: IModuleRoute[] = [\n {\n name: 'resource',\n path: ':resource',\n component: ZPageResource,\n meta: {\n tabKey,\n },\n },\n {\n name: 'entryCreate',\n path: ':resource/create',\n component: ZPageEntryCreate,\n meta: {\n tabKey,\n },\n },\n {\n name: 'entry',\n path: ':resource/:id/:formScene?',\n component: ZPageEntry,\n meta: {\n tabKey,\n },\n },\n];\n\nfunction tabKey(route) {\n return `/rest/resource/${encodeURIComponent(route.params.resource)}`;\n}\n","// eslint-disable\n/** model: begin */\nexport * from '../model/resource.js';\nimport { IModelOptionsResource } from '../model/resource.js';\nimport 'zova-module-a-model';\ndeclare module 'zova-module-a-model' {\n \n export interface IModelRecord {\n 'rest-resource:resource': IModelOptionsResource;\n }\n\n \n}\ndeclare module 'zova-module-rest-resource' {\n \n export interface ModelResource {\n /** @internal */\n get scope(): ScopeModuleRestResource;\n }\n\n export interface ModelResource {\n get $beanFullName(): 'rest-resource.model.resource';\n get $onionName(): 'rest-resource:resource';\n get $onionOptions(): IModelOptionsResource;\n } \n}\n/** model: end */\n/** model: begin */\nimport { ModelResource } from '../model/resource.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'rest-resource.model.resource': ModelResource;\n }\n}\n/** model: end */\n/** controller: begin */\nexport * from '../page/entry/controller.jsx';\nexport * from '../page/entryCreate/controller.jsx';\nexport * from '../page/resource/controller.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-rest-resource' {\n \n export interface ControllerPageEntry {\n /** @internal */\n get scope(): ScopeModuleRestResource;\n }\n\n export interface ControllerPageResource {\n /** @internal */\n get scope(): ScopeModuleRestResource;\n } \n}\n/** controller: end */\n/** controller: begin */\nimport { ControllerPageEntry } from '../page/entry/controller.jsx';\nimport { ControllerPageEntryCreate } from '../page/entryCreate/controller.jsx';\nimport { ControllerPageResource } from '../page/resource/controller.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'rest-resource.controller.pageEntry': ControllerPageEntry;\n'rest-resource.controller.pageEntryCreate': ControllerPageEntryCreate;\n'rest-resource.controller.pageResource': ControllerPageResource;\n }\n}\n/** controller: end */\n/** pages: begin */\nexport * from './page/entry.js';\nimport { NSControllerPageEntry } from './page/entry.js';\nexport * from './page/entryCreate.js';\nimport { NSControllerPageEntryCreate } from './page/entryCreate.js';\nexport * from './page/resource.js';\nimport { NSControllerPageResource } from './page/resource.js';\nexport * from '../routes.js';\nimport { TypePagePathSchema } from 'zova-module-a-router';\nimport 'zova';\ndeclare module 'zova-module-a-router' {\nexport interface IPagePathRecord {\n '/rest/resource/:resource/:id/:formScene?': TypePagePathSchema<NSControllerPageEntry.ParamsInput,undefined>;\n'/rest/resource/:resource/create': TypePagePathSchema<NSControllerPageEntryCreate.ParamsInput,undefined>;\n'/rest/resource/:resource': TypePagePathSchema<NSControllerPageResource.ParamsInput,undefined>;\n}\nexport interface IPageNameRecord {\n 'rest-resource:entry': undefined;\n'rest-resource:entryCreate': undefined;\n'rest-resource:resource': undefined;\n}\n}\nexport const pagePathSchemas = {\n\n};\nexport const pageNameSchemas = {\n'rest-resource:entry': {\n params: NSControllerPageEntry.paramsSchema,\n \n },\n'rest-resource:entryCreate': {\n params: NSControllerPageEntryCreate.paramsSchema,\n \n },\n'rest-resource:resource': {\n params: NSControllerPageResource.paramsSchema,\n \n },\n};\ndeclare module 'zova-module-rest-resource' {\n export interface ControllerPageEntry {\n $params: NSControllerPageEntry.ParamsOutput;\n }\nexport interface ControllerPageEntryCreate {\n $params: NSControllerPageEntryCreate.ParamsOutput;\n }\nexport interface ControllerPageResource {\n $params: NSControllerPageResource.ParamsOutput;\n }\n}\n/** pages: end */\n\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\n\n@Scope()\nexport class ScopeModuleRestResource extends BeanScopeBase {}\n\nexport interface ScopeModuleRestResource {\n util: BeanScopeUtil;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'rest-resource': ScopeModuleRestResource;\n }\n \n \n\n \n\n \n}\n \n/** scope: end */\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["isNil","z","BeanControllerPageBase","deepExtend","Use","usePrepareArg","ZovaJsx","Controller","formMetaFromFormScene","$QueryAutoLoad","_isSlot","s","Object","prototype","toString","call","_isVNode","ControllerPageEntrySchemaParams","object","resource","string","id","optional","formScene","ControllerPageEntry","_dec","_dec2","__z_BeanInfo","module","_dec3","beanFullName","_dec4","Reflect","metadata","Function","_dec5","_class","_class2","constructor","args","formMeta","formProvider","formSchema","jsxZova","$$modelResource","$params","entryId","__init__","$computed","getFormSchema","_prepareJsx","getFormApiSchemas","sdk","bean","_newBeanSimple","components","render","blocks","rest","length","domBlocks","forEach","block","index","options","key","domBlock","Array","isArray","push","_createVNode","ZPage","default","_applyDecoratedDescriptor","getOwnPropertyDescriptor","Virtual","Controller","ControllerPageEntry","ControllerPageEntrySchemaParams","ControllerPageEntryCreateSchemaParams","ControllerPageEntryCreate","_dec","_dec2","_dec3","__z_BeanInfo","module","_class","z","BeanControllerPageBase","deepExtend","Use","usePrepareArg","ZovaJsx","Controller","$QueryAutoLoad","_isSlot","s","Object","prototype","toString","call","_isVNode","ControllerPageResourceSchemaParams","object","resource","string","ControllerPageResource","_dec","_dec2","__z_BeanInfo","module","_dec3","beanFullName","_dec4","Reflect","metadata","Function","_dec5","_class","_class2","constructor","args","jsxZova","$$modelResource","$params","__init__","_prepareJsx","apiSchemasSelect","sdk","bean","_newBeanSimple","schemaRow","render","blocks","rest","length","domBlocks","forEach","block","index","options","key","domBlock","Array","isArray","push","_createVNode","ZPage","default","_applyDecoratedDescriptor","getOwnPropertyDescriptor"],"sources":["../src/model/resource.ts","../src/page/entry/controller.tsx","../src/page/entryCreate/controller.tsx","../src/page/resource/controller.tsx","../src/.metadata/page/entry.ts","../src/.metadata/page/entryCreate.ts","../src/.metadata/page/resource.ts","../src/routes.ts","../src/.metadata/index.ts"],"sourcesContent":["var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { hashkey, isNil } from '@cabloy/utils';\nimport { UseScope } from 'zova';\nimport { formSceneFromFormMeta } from 'zova-module-a-form';\nimport { $QueryAutoLoad, BeanModelBase, Model } from 'zova-module-a-model';\nimport { SymbolOpenapiSchemaName } from 'zova-module-a-openapi';\nexport let ModelResource = (_dec = Model({\n enableSelector: true\n}), _dec2 = __z_BeanInfo({\n module: \"rest-resource\"\n}), _dec3 = UseScope(\"a-openapi\"), _dec4 = Reflect.metadata(\"design:type\", typeof ScopeModuleAOpenapi === \"undefined\" ? Object : ScopeModuleAOpenapi), _dec(_class = _dec2(_class = (_class2 = class ModelResource extends BeanModelBase {\n constructor(...args) {\n super(...args);\n this.resource = void 0;\n this.resourceApi = void 0;\n this.permissions = void 0;\n this.formProvider = void 0;\n this.schemaView = void 0;\n this.schemaCreate = void 0;\n this.schemaUpdate = void 0;\n this.schemaFilter = void 0;\n this.schemaRow = void 0;\n this.schemaPages = void 0;\n _initializerDefineProperty(this, \"$$scopeOpenapi\", _descriptor, this);\n }\n async __init__(resource) {\n if (!resource) throw new Error('resource not specified');\n await super.__init__(resource);\n this.resource = resource;\n this.permissions = this.$computed(() => {\n const permissions = this.$sdk.getPermissions(this.resource);\n return permissions.data;\n });\n this.formProvider = this.$computed(() => {\n return this.$$scopeOpenapi.config.formProvider;\n });\n this.schemaView = this.$computed(() => {\n return this.apiSchemasView.responseBody;\n });\n this.schemaCreate = this.$computed(() => {\n return this.apiSchemasCreate.requestBody;\n });\n this.schemaUpdate = this.$computed(() => {\n return this.apiSchemasUpdate.requestBody;\n });\n this.schemaFilter = this.$computed(() => {\n return this.apiSchemasSelect.filter;\n });\n this.schemaRow = this.$computed(() => {\n return this.apiSchemasSelect.row;\n });\n this.schemaPages = this.$computed(() => {\n return this.apiSchemasSelect.paged;\n });\n // bootstrap\n await this._bootstrap();\n }\n selectGeneral(actionPath, query) {\n return this.$useStateData({\n queryKey: this.keySelect(actionPath, query),\n queryFn: async () => {\n const apiPath = actionPath ? `${this.resourceApi}/${actionPath}` : this.resourceApi;\n return this.$fetch.get(this.sys.util.apiActionPathTranslate(apiPath), this.sys.util.apiActionConfigPrepare(undefined, {\n query\n }));\n }\n });\n }\n select(query) {\n return this.selectGeneral(undefined, query);\n }\n queryItem(options) {\n const {\n id,\n action,\n queryFn,\n meta\n } = options;\n if (isNil(id)) throw new Error('row id cannot empty');\n return this.$useStateData({\n queryKey: this.keyItem(id, action),\n queryFn,\n meta\n });\n }\n view(id) {\n return this.queryItem({\n id,\n action: 'view',\n queryFn: async () => {\n const res = await this.$fetch.get(this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, {\n id\n }), this.sys.util.apiActionConfigPrepare());\n return res ?? null;\n }\n });\n }\n create() {\n return this.$useMutationData({\n mutationKey: ['create'],\n mutationFn: async params => {\n return this.$fetch.post(this.sys.util.apiActionPathTranslate(this.resourceApi), params, this.sys.util.apiActionConfigPrepare());\n },\n onSuccess: () => {\n this.$invalidateQueries({\n queryKey: ['select']\n });\n }\n });\n }\n mutationItem(options) {\n const {\n id,\n action,\n mutationFn,\n onSuccess,\n invalidateSelect = true\n } = options;\n if (isNil(id)) throw new Error('row id cannot empty');\n return this.$useMutationData({\n mutationKey: [...this.keyItem(id, action), 'mutation'],\n mutationFn,\n onSuccess: async (data, variables, context) => {\n if (invalidateSelect) {\n this.$invalidateQueries({\n queryKey: ['select']\n });\n }\n this.$invalidateQueries({\n queryKey: this.keyItemRoot(id)\n });\n await onSuccess?.(data, variables, context);\n }\n });\n }\n update(id) {\n return this.mutationItem({\n id,\n action: 'update',\n mutationFn: async params => {\n return this.$fetch.patch(this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, {\n id\n }), params, this.sys.util.apiActionConfigPrepare());\n }\n });\n }\n delete(id) {\n return this.mutationItem({\n id,\n action: 'delete',\n mutationFn: async () => {\n return this.$fetch.delete(this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, {\n id\n }), this.sys.util.apiActionConfigPrepare());\n }\n });\n }\n get apiSchemasSelect() {\n return this.$sdk.createApiSchemas(this.resourceApi, 'get');\n }\n get apiSchemasView() {\n return this.$sdk.createApiSchemas(`${this.resourceApi}/:id`, 'get');\n }\n get apiSchemasCreate() {\n return this.$sdk.createApiSchemas(this.resourceApi, 'post');\n }\n get apiSchemasUpdate() {\n return this.$sdk.createApiSchemas(`${this.resourceApi}/:id`, 'patch');\n }\n getFormSchema(formMeta) {\n const formScene = formMeta.formScene ?? formSceneFromFormMeta(formMeta);\n if (formScene === 'view') return this.schemaView;\n if (formScene === 'create') return this.schemaCreate;\n if (formScene === 'edit') return this.schemaUpdate;\n }\n getFormApiSchemas(formMeta) {\n const formScene = formMeta.formScene ?? formSceneFromFormMeta(formMeta);\n if (formScene === 'view') return this.apiSchemasView;\n if (formScene === 'create') return this.apiSchemasCreate;\n if (formScene === 'edit') return this.apiSchemasUpdate;\n throw new Error('invalid parameters');\n }\n getFormMutationSubmit(formMeta, id) {\n if (formMeta.formMode !== 'edit') return;\n if (formMeta.editMode === 'create') {\n return this.create();\n } else if (formMeta.editMode === 'update') {\n return this.update(id);\n }\n }\n getFormData(formMeta, id) {\n if (formMeta.formMode === 'edit' && formMeta.editMode === 'create') {\n return this.getQueryDataDefaultValue(this.schemaCreate);\n }\n if (isNil(id)) return undefined;\n return this.view(id).data;\n }\n getQueryDataDefaultValue(schemaName) {\n if (!schemaName) return;\n if (typeof schemaName === 'object') {\n schemaName = schemaName[SymbolOpenapiSchemaName];\n }\n return this.$sdk.getSchemaDefaultValue(schemaName);\n }\n keySelect(actionPath, query) {\n return ['select', actionPath ?? '', hashkey(query)];\n }\n keyItemRoot(id) {\n if (isNil(id)) throw new Error('row id cannot empty');\n return ['item', id];\n }\n keyItem(id, action) {\n if (isNil(id)) throw new Error('row id cannot empty');\n return ['item', id, action];\n }\n async _bootstrap() {\n const queryBootstrap = await $QueryAutoLoad(() => this.$sdk.getBootstrap(this.resource));\n if (!queryBootstrap?.data) {\n throw new Error(`not found sdk of resource: ${this.resource}`);\n }\n this.resourceApi = this.sys.util.parseResourceApi(this.resource, queryBootstrap.data.apiPath);\n }\n}, _descriptor = _applyDecoratedDescriptor(_class2.prototype, \"$$scopeOpenapi\", [_dec3, _dec4], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _class2)) || _class) || _class);","import type {\n IFormMeta,\n IFormProvider,\n ISchemaObjectExtensionField,\n TypeFormScene,\n} from 'zova-module-a-openapi';\n\nimport { isNil } from '@cabloy/utils';\nimport { VNode } from 'vue';\nimport { z } from 'zod';\nimport { BeanControllerPageBase, deepExtend, Use, usePrepareArg } from 'zova';\nimport { ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport { formMetaFromFormScene } from 'zova-module-a-form';\nimport { $QueryAutoLoad } from 'zova-module-a-model';\nimport { ZPage } from 'zova-module-home-base';\n\nimport type { ModelResource } from '../../model/resource.js';\n\nexport const ControllerPageEntrySchemaParams = z.object({\n resource: z.string(),\n id: z.string().optional(),\n formScene: z.string().optional(),\n});\n\n@Controller()\nexport class ControllerPageEntry extends BeanControllerPageBase {\n formMeta: IFormMeta;\n formProvider: IFormProvider;\n formSchema?: ISchemaObjectExtensionField;\n jsxZova: ZovaJsx;\n\n @Use({ beanFullName: 'rest-resource.model.resource' })\n get $$modelResource(): ModelResource {\n return usePrepareArg(this.$params.resource, true);\n }\n\n get resource() {\n return this.$params.resource;\n }\n\n get entryId() {\n return this.$params.id;\n }\n\n get formScene() {\n return (\n (this.$params.formScene as TypeFormScene | undefined) ??\n (isNil(this.entryId) ? 'create' : 'view')\n );\n }\n\n protected async __init__() {\n this.formMeta = this.$computed(() => {\n return formMetaFromFormScene(this.formScene);\n });\n this.formProvider = this.$computed(() => {\n return this.$$modelResource.formProvider;\n });\n this.formSchema = this.$computed(() => {\n return this.$$modelResource.getFormSchema(this.formMeta);\n });\n // jsx\n this._prepareJsx();\n // load schema\n await $QueryAutoLoad(() => this.$$modelResource.getFormApiSchemas(this.formMeta)?.sdk);\n }\n\n private _prepareJsx() {\n this.jsxZova = this.bean._newBeanSimple(ZovaJsx, false, this.formProvider.components);\n }\n\n protected render() {\n const blocks = this.formSchema?.rest?.blocks;\n if (!blocks || blocks.length === 0) return;\n const domBlocks: VNode[] = [];\n blocks.forEach((block, index) => {\n const options = deepExtend(\n { key: index },\n {\n resource: this.resource,\n id: this.entryId,\n formScene: this.formScene,\n },\n block.options,\n );\n const domBlock = this.jsxZova.render(block.render!, options);\n if (!domBlock) return;\n if (Array.isArray(domBlock)) {\n domBlocks.push(...domBlock);\n } else {\n domBlocks.push(domBlock);\n }\n });\n return <ZPage>{domBlocks}</ZPage>;\n }\n}\n","import { Virtual } from 'zova-core';\nimport { Controller } from 'zova-module-a-bean';\n\nimport { ControllerPageEntry, ControllerPageEntrySchemaParams } from '../entry/controller.jsx';\n\nexport const ControllerPageEntryCreateSchemaParams = ControllerPageEntrySchemaParams;\n\n@Controller()\n@Virtual()\nexport class ControllerPageEntryCreate extends ControllerPageEntry {}\n","import { VNode } from 'vue';\nimport { z } from 'zod';\nimport { BeanControllerPageBase, deepExtend, Use, usePrepareArg } from 'zova';\nimport { ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport { $QueryAutoLoad } from 'zova-module-a-model';\nimport { ZPage } from 'zova-module-home-base';\n\nimport type { ModelResource } from '../../model/resource.js';\n\nexport const ControllerPageResourceSchemaParams = z.object({\n resource: z.string(),\n});\n\n@Controller()\nexport class ControllerPageResource extends BeanControllerPageBase {\n jsxZova: ZovaJsx;\n\n @Use({ beanFullName: 'rest-resource.model.resource' })\n get $$modelResource(): ModelResource {\n return usePrepareArg(this.$params.resource, true);\n }\n\n get resource() {\n return this.$params.resource;\n }\n\n protected async __init__() {\n // jsx\n this._prepareJsx();\n // load schema/data\n await $QueryAutoLoad(() => this.$$modelResource.apiSchemasSelect.sdk);\n }\n\n private _prepareJsx() {\n this.jsxZova = this.bean._newBeanSimple(ZovaJsx, false);\n }\n\n get schemaRow() {\n return this.$$modelResource.schemaRow;\n }\n\n public render() {\n const blocks = this.schemaRow?.rest?.blocks;\n if (!blocks || blocks.length === 0) return;\n const domBlocks: VNode[] = [];\n blocks.forEach((block, index) => {\n const options = deepExtend(\n { key: index },\n {\n resource: this.resource,\n },\n block.options,\n );\n const domBlock = this.jsxZova.render(block.render!, options);\n if (!domBlock) return;\n if (Array.isArray(domBlock)) {\n domBlocks.push(...domBlock);\n } else {\n domBlocks.push(domBlock);\n }\n });\n return <ZPage>{domBlocks}</ZPage>;\n }\n}\n","import { createZovaComponentPage } from 'zova';\nimport { ControllerPageEntry } from '../../page/entry/controller.jsx';\nimport { ControllerPageEntrySchemaParams } from '../../page/entry/controller.jsx';\nexport let NSControllerPageEntry;\n(function (_NSControllerPageEntry) {\n const paramsSchema = _NSControllerPageEntry.paramsSchema = ControllerPageEntrySchemaParams;\n})(NSControllerPageEntry || (NSControllerPageEntry = {}));\nexport const ZPageEntry = createZovaComponentPage(ControllerPageEntry, undefined, undefined);","import { createZovaComponentPage } from 'zova';\nimport { ControllerPageEntryCreate } from '../../page/entryCreate/controller.jsx';\nimport { ControllerPageEntryCreateSchemaParams } from '../../page/entryCreate/controller.jsx';\nexport let NSControllerPageEntryCreate;\n(function (_NSControllerPageEntryCreate) {\n const paramsSchema = _NSControllerPageEntryCreate.paramsSchema = ControllerPageEntryCreateSchemaParams;\n})(NSControllerPageEntryCreate || (NSControllerPageEntryCreate = {}));\nexport const ZPageEntryCreate = createZovaComponentPage(ControllerPageEntryCreate, undefined, undefined);","import { createZovaComponentPage } from 'zova';\nimport { ControllerPageResource } from '../../page/resource/controller.jsx';\nimport { ControllerPageResourceSchemaParams } from '../../page/resource/controller.jsx';\nexport let NSControllerPageResource;\n(function (_NSControllerPageResource) {\n const paramsSchema = _NSControllerPageResource.paramsSchema = ControllerPageResourceSchemaParams;\n})(NSControllerPageResource || (NSControllerPageResource = {}));\nexport const ZPageResource = createZovaComponentPage(ControllerPageResource, undefined, undefined);","import { ZPageEntry } from './.metadata/page/entry.js';\nimport { ZPageEntryCreate } from './.metadata/page/entryCreate.js';\nimport { ZPageResource } from './.metadata/page/resource.js';\nexport const routes = [{\n name: 'resource',\n path: ':resource',\n component: ZPageResource,\n meta: {\n tabKey\n }\n}, {\n name: 'entryCreate',\n path: ':resource/create',\n component: ZPageEntryCreate,\n meta: {\n tabKey\n }\n}, {\n name: 'entry',\n path: ':resource/:id/:formScene?',\n component: ZPageEntry,\n meta: {\n tabKey\n }\n}];\nfunction tabKey(route) {\n return `/rest/resource/${encodeURIComponent(route.params.resource)}`;\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** model: begin */\nexport * from '../model/resource.js';\nimport 'zova-module-a-model';\n/** model: end */\n/** model: begin */\nimport { ModelResource } from '../model/resource.js';\nimport 'zova';\n/** model: end */\n/** controller: begin */\nexport * from '../page/entry/controller.jsx';\nexport * from '../page/entryCreate/controller.jsx';\nexport * from '../page/resource/controller.jsx';\nimport 'zova';\n/** controller: end */\n/** controller: begin */\nimport { ControllerPageEntry } from '../page/entry/controller.jsx';\nimport { ControllerPageEntryCreate } from '../page/entryCreate/controller.jsx';\nimport { ControllerPageResource } from '../page/resource/controller.jsx';\nimport 'zova';\n/** controller: end */\n/** pages: begin */\nexport * from './page/entry.js';\nimport { NSControllerPageEntry } from './page/entry.js';\nexport * from './page/entryCreate.js';\nimport { NSControllerPageEntryCreate } from './page/entryCreate.js';\nexport * from './page/resource.js';\nimport { NSControllerPageResource } from './page/resource.js';\nexport * from '../routes.js';\nimport 'zova';\nexport const pagePathSchemas = {};\nexport const pageNameSchemas = {\n 'rest-resource:entry': {\n params: NSControllerPageEntry.paramsSchema\n },\n 'rest-resource:entryCreate': {\n params: NSControllerPageEntryCreate.paramsSchema\n },\n 'rest-resource:resource': {\n params: NSControllerPageResource.paramsSchema\n }\n};\n/** pages: end */\n\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleRestResource = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"rest-resource\"\n}), _dec(_class = _dec2(_class = class ScopeModuleRestResource extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */"],"mappings":"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"}
|
package/dist/model/resource.d.ts
CHANGED
|
@@ -6,6 +6,21 @@ import { BeanModelBase } from 'zova-module-a-model';
|
|
|
6
6
|
import { ScopeModuleAOpenapi } from 'zova-module-a-openapi';
|
|
7
7
|
export interface IModelOptionsResource extends IDecoratorModelOptions {
|
|
8
8
|
}
|
|
9
|
+
interface IModelResourceQueryItemOptions<TData> {
|
|
10
|
+
id: TableIdentity;
|
|
11
|
+
action: string;
|
|
12
|
+
queryFn: () => Promise<TData>;
|
|
13
|
+
meta?: {
|
|
14
|
+
disableSuspenseOnInit?: boolean;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
interface IModelResourceMutationItemOptions<TData = void, TVariables = void> {
|
|
18
|
+
id: TableIdentity;
|
|
19
|
+
action: string;
|
|
20
|
+
mutationFn: (params: TVariables) => Promise<TData>;
|
|
21
|
+
onSuccess?: (data: TData, variables: TVariables, context: unknown) => void | Promise<void>;
|
|
22
|
+
invalidateSelect?: boolean;
|
|
23
|
+
}
|
|
9
24
|
export declare class ModelResource<Entity = any, EntityCreate = Partial<Entity>, EntityUpdate = Partial<Entity>> extends BeanModelBase {
|
|
10
25
|
resource: string;
|
|
11
26
|
resourceApi: string;
|
|
@@ -21,8 +36,10 @@ export declare class ModelResource<Entity = any, EntityCreate = Partial<Entity>,
|
|
|
21
36
|
protected __init__(resource: string): Promise<void>;
|
|
22
37
|
selectGeneral(actionPath?: string, query?: ITableQuery): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseQueryReturnType<ITableRes<Entity>, Error>>;
|
|
23
38
|
select(query?: ITableQuery): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseQueryReturnType<ITableRes<Entity>, Error>>;
|
|
24
|
-
|
|
39
|
+
queryItem<TData>(options: IModelResourceQueryItemOptions<TData>): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseQueryReturnType<TData, Error>>;
|
|
40
|
+
view(id: TableIdentity): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseQueryReturnType<Entity | null, Error>>;
|
|
25
41
|
create(): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseMutationReturnType<void, Error, EntityCreate, unknown>>;
|
|
42
|
+
mutationItem<TData = void, TVariables = void>(options: IModelResourceMutationItemOptions<TData, TVariables>): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseMutationReturnType<TData, Error, TVariables, unknown>>;
|
|
26
43
|
update(id: TableIdentity): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseMutationReturnType<void, Error, EntityUpdate, unknown>>;
|
|
27
44
|
delete(id: TableIdentity): import("vue").UnwrapNestedRefs<import("@tanstack/vue-query").UseMutationReturnType<void, Error, void, unknown>>;
|
|
28
45
|
get apiSchemasSelect(): import("zova-module-a-openapi").IOpenapiSchemas;
|
|
@@ -34,6 +51,10 @@ export declare class ModelResource<Entity = any, EntityCreate = Partial<Entity>,
|
|
|
34
51
|
getFormMutationSubmit(formMeta: IFormMeta, id?: TableIdentity): DataMutation | undefined;
|
|
35
52
|
getFormData(formMeta: IFormMeta, id?: TableIdentity): Entity | EntityCreate | EntityUpdate | undefined;
|
|
36
53
|
getQueryDataDefaultValue(schemaName?: SchemaObject | string): EntityCreate | undefined;
|
|
54
|
+
protected keySelect(actionPath?: string, query?: ITableQuery): readonly ["select", string, string];
|
|
55
|
+
protected keyItemRoot(id: TableIdentity): readonly ["item", TableIdentity];
|
|
56
|
+
protected keyItem(id: TableIdentity, action: string): readonly ["item", TableIdentity, string];
|
|
37
57
|
private _bootstrap;
|
|
38
58
|
}
|
|
59
|
+
export {};
|
|
39
60
|
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/model/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,2BAA2B,EAC3B,WAAW,EACX,SAAS,EACT,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAkB,aAAa,EAAS,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAA2B,MAAM,uBAAuB,CAAC;AAErF,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;CAAG;AAExE,qBAGa,aAAa,CACxB,MAAM,GAAG,GAAG,EACZ,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,EAC9B,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAC9B,SAAQ,aAAa;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAGjD,cAAc,EAAE,mBAAmB,CAAC;cAEpB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAiCzC,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/model/resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/page/entry/controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,2BAA2B,EAC3B,aAAa,EACd,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAkC,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,qBACa,mBAAoB,SAAQ,sBAAsB;IAC7D,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IAEjB,IACI,eAAe,IAAI,aAAa,CAEnC;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,OAAO,uBAEV;IAED,IAAI,SAAS,kBAKZ;cAEe,QAAQ;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/page/entry/controller.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,2BAA2B,EAC3B,aAAa,EACd,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAkC,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,qBACa,mBAAoB,SAAQ,sBAAsB;IAC7D,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IAEjB,IACI,eAAe,IAAI,aAAa,CAEnC;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,OAAO,uBAEV;IAED,IAAI,SAAS,kBAKZ;cAEe,QAAQ;IAgBxB,OAAO,CAAC,WAAW;IAInB,SAAS,CAAC,MAAM;CAwBjB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-module-rest-resource",
|
|
3
|
-
"version": "5.1.
|
|
4
|
-
"gitHead": "
|
|
3
|
+
"version": "5.1.40",
|
|
4
|
+
"gitHead": "1a39e8008e1b48001cfeff475ddd53a2a0d867c4",
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"Zova Module"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/zova.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
28
28
|
"prepublishOnly": "npm run tsc:publish",
|
|
29
29
|
"prepack": "clean-package",
|
|
30
|
-
"postpack": "clean-package restore
|
|
30
|
+
"postpack": "clean-package restore"
|
|
31
31
|
},
|
|
32
32
|
"title": "rest-resource"
|
|
33
33
|
}
|
package/src/model/resource.ts
CHANGED
|
@@ -18,6 +18,23 @@ import { ScopeModuleAOpenapi, SymbolOpenapiSchemaName } from 'zova-module-a-open
|
|
|
18
18
|
|
|
19
19
|
export interface IModelOptionsResource extends IDecoratorModelOptions {}
|
|
20
20
|
|
|
21
|
+
interface IModelResourceQueryItemOptions<TData> {
|
|
22
|
+
id: TableIdentity;
|
|
23
|
+
action: string;
|
|
24
|
+
queryFn: () => Promise<TData>;
|
|
25
|
+
meta?: {
|
|
26
|
+
disableSuspenseOnInit?: boolean;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
interface IModelResourceMutationItemOptions<TData = void, TVariables = void> {
|
|
31
|
+
id: TableIdentity;
|
|
32
|
+
action: string;
|
|
33
|
+
mutationFn: (params: TVariables) => Promise<TData>;
|
|
34
|
+
onSuccess?: (data: TData, variables: TVariables, context: unknown) => void | Promise<void>;
|
|
35
|
+
invalidateSelect?: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
21
38
|
@Model<IModelOptionsResource>({
|
|
22
39
|
enableSelector: true,
|
|
23
40
|
})
|
|
@@ -74,9 +91,8 @@ export class ModelResource<
|
|
|
74
91
|
}
|
|
75
92
|
|
|
76
93
|
selectGeneral(actionPath?: string, query?: ITableQuery) {
|
|
77
|
-
const queryHash = hashkey(query);
|
|
78
94
|
return this.$useStateData({
|
|
79
|
-
queryKey:
|
|
95
|
+
queryKey: this.keySelect(actionPath, query),
|
|
80
96
|
queryFn: async () => {
|
|
81
97
|
const apiPath = actionPath ? `${this.resourceApi}/${actionPath}` : this.resourceApi;
|
|
82
98
|
return this.$fetch.get<any, ITableRes<Entity>>(
|
|
@@ -91,10 +107,20 @@ export class ModelResource<
|
|
|
91
107
|
return this.selectGeneral(undefined, query);
|
|
92
108
|
}
|
|
93
109
|
|
|
94
|
-
|
|
110
|
+
queryItem<TData>(options: IModelResourceQueryItemOptions<TData>) {
|
|
111
|
+
const { id, action, queryFn, meta } = options;
|
|
95
112
|
if (isNil(id)) throw new Error('row id cannot empty');
|
|
96
113
|
return this.$useStateData({
|
|
97
|
-
queryKey:
|
|
114
|
+
queryKey: this.keyItem(id, action),
|
|
115
|
+
queryFn,
|
|
116
|
+
meta,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
view(id: TableIdentity) {
|
|
121
|
+
return this.queryItem<Entity | null>({
|
|
122
|
+
id,
|
|
123
|
+
action: 'view',
|
|
98
124
|
queryFn: async () => {
|
|
99
125
|
const res = await this.$fetch.get<any, Entity>(
|
|
100
126
|
this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }),
|
|
@@ -121,9 +147,26 @@ export class ModelResource<
|
|
|
121
147
|
});
|
|
122
148
|
}
|
|
123
149
|
|
|
150
|
+
mutationItem<TData = void, TVariables = void>(options: IModelResourceMutationItemOptions<TData, TVariables>) {
|
|
151
|
+
const { id, action, mutationFn, onSuccess, invalidateSelect = true } = options;
|
|
152
|
+
if (isNil(id)) throw new Error('row id cannot empty');
|
|
153
|
+
return this.$useMutationData<TData, TVariables>({
|
|
154
|
+
mutationKey: [...this.keyItem(id, action), 'mutation'],
|
|
155
|
+
mutationFn,
|
|
156
|
+
onSuccess: async (data, variables, context) => {
|
|
157
|
+
if (invalidateSelect) {
|
|
158
|
+
this.$invalidateQueries({ queryKey: ['select'] });
|
|
159
|
+
}
|
|
160
|
+
this.$invalidateQueries({ queryKey: this.keyItemRoot(id) });
|
|
161
|
+
await onSuccess?.(data, variables, context);
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
124
166
|
update(id: TableIdentity) {
|
|
125
|
-
return this
|
|
126
|
-
|
|
167
|
+
return this.mutationItem<void, EntityUpdate>({
|
|
168
|
+
id,
|
|
169
|
+
action: 'update',
|
|
127
170
|
mutationFn: async params => {
|
|
128
171
|
return this.$fetch.patch<any, void, EntityUpdate>(
|
|
129
172
|
this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }),
|
|
@@ -131,26 +174,19 @@ export class ModelResource<
|
|
|
131
174
|
this.sys.util.apiActionConfigPrepare(),
|
|
132
175
|
);
|
|
133
176
|
},
|
|
134
|
-
onSuccess: () => {
|
|
135
|
-
this.$invalidateQueries({ queryKey: ['select'] });
|
|
136
|
-
this.$invalidateQueries({ queryKey: ['get', id] });
|
|
137
|
-
},
|
|
138
177
|
});
|
|
139
178
|
}
|
|
140
179
|
|
|
141
180
|
delete(id: TableIdentity) {
|
|
142
|
-
return this
|
|
143
|
-
|
|
181
|
+
return this.mutationItem<void, void>({
|
|
182
|
+
id,
|
|
183
|
+
action: 'delete',
|
|
144
184
|
mutationFn: async () => {
|
|
145
185
|
return this.$fetch.delete<any, void, void>(
|
|
146
186
|
this.sys.util.apiActionPathTranslate(`${this.resourceApi}/:id`, { id }),
|
|
147
187
|
this.sys.util.apiActionConfigPrepare(),
|
|
148
188
|
);
|
|
149
189
|
},
|
|
150
|
-
onSuccess: () => {
|
|
151
|
-
this.$invalidateQueries({ queryKey: ['select'] });
|
|
152
|
-
this.$invalidateQueries({ queryKey: ['get', id] });
|
|
153
|
-
},
|
|
154
190
|
});
|
|
155
191
|
}
|
|
156
192
|
|
|
@@ -213,6 +249,20 @@ export class ModelResource<
|
|
|
213
249
|
return this.$sdk.getSchemaDefaultValue(schemaName) as EntityCreate | undefined;
|
|
214
250
|
}
|
|
215
251
|
|
|
252
|
+
protected keySelect(actionPath?: string, query?: ITableQuery) {
|
|
253
|
+
return ['select', actionPath ?? '', hashkey(query)] as const;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
protected keyItemRoot(id: TableIdentity) {
|
|
257
|
+
if (isNil(id)) throw new Error('row id cannot empty');
|
|
258
|
+
return ['item', id] as const;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
protected keyItem(id: TableIdentity, action: string) {
|
|
262
|
+
if (isNil(id)) throw new Error('row id cannot empty');
|
|
263
|
+
return ['item', id, action] as const;
|
|
264
|
+
}
|
|
265
|
+
|
|
216
266
|
private async _bootstrap() {
|
|
217
267
|
const queryBootstrap = await $QueryAutoLoad(() => this.$sdk.getBootstrap(this.resource));
|
|
218
268
|
if (!queryBootstrap?.data) {
|
|
@@ -52,8 +52,7 @@ export class ControllerPageEntry extends BeanControllerPageBase {
|
|
|
52
52
|
|
|
53
53
|
protected async __init__() {
|
|
54
54
|
this.formMeta = this.$computed(() => {
|
|
55
|
-
|
|
56
|
-
return { ...formMetaFromFormScene(formScene), formScene };
|
|
55
|
+
return formMetaFromFormScene(this.formScene);
|
|
57
56
|
});
|
|
58
57
|
this.formProvider = this.$computed(() => {
|
|
59
58
|
return this.$$modelResource.formProvider;
|