@things-factory/resource-base 7.0.0-alpha.9 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist-server/index.d.ts +1 -0
  2. package/dist-server/index.js +0 -1
  3. package/dist-server/index.js.map +1 -1
  4. package/dist-server/service/entity/entity-mutation.d.ts +9 -0
  5. package/dist-server/service/entity/entity-mutation.js +4 -8
  6. package/dist-server/service/entity/entity-mutation.js.map +1 -1
  7. package/dist-server/service/entity/entity-query.d.ts +15 -0
  8. package/dist-server/service/entity/entity-query.js +3 -3
  9. package/dist-server/service/entity/entity-query.js.map +1 -1
  10. package/dist-server/service/entity/entity-type.d.ts +48 -0
  11. package/dist-server/service/entity/entity-type.js +6 -6
  12. package/dist-server/service/entity/entity-type.js.map +1 -1
  13. package/dist-server/service/entity/entity.d.ts +34 -0
  14. package/dist-server/service/entity/entity.js +10 -11
  15. package/dist-server/service/entity/entity.js.map +1 -1
  16. package/dist-server/service/entity/index.d.ts +5 -0
  17. package/dist-server/service/entity-column/entity-column-mutation.d.ts +9 -0
  18. package/dist-server/service/entity-column/entity-column-mutation.js +2 -2
  19. package/dist-server/service/entity-column/entity-column-mutation.js.map +1 -1
  20. package/dist-server/service/entity-column/entity-column-query.d.ts +13 -0
  21. package/dist-server/service/entity-column/entity-column-query.js +3 -3
  22. package/dist-server/service/entity-column/entity-column-query.js.map +1 -1
  23. package/dist-server/service/entity-column/entity-column-type.d.ts +80 -0
  24. package/dist-server/service/entity-column/entity-column-type.js +6 -6
  25. package/dist-server/service/entity-column/entity-column-type.js.map +1 -1
  26. package/dist-server/service/entity-column/entity-column.d.ts +49 -0
  27. package/dist-server/service/entity-column/entity-column.js +5 -5
  28. package/dist-server/service/entity-column/entity-column.js.map +1 -1
  29. package/dist-server/service/entity-column/index.d.ts +5 -0
  30. package/dist-server/service/entity-metadata/entity-metadata-query.d.ts +4 -0
  31. package/dist-server/service/entity-metadata/entity-metadata-query.js +2 -2
  32. package/dist-server/service/entity-metadata/entity-metadata-query.js.map +1 -1
  33. package/dist-server/service/entity-metadata/entity-metadata.d.ts +29 -0
  34. package/dist-server/service/entity-metadata/entity-metadata.js +6 -6
  35. package/dist-server/service/entity-metadata/entity-metadata.js.map +1 -1
  36. package/dist-server/service/entity-metadata/index.d.ts +4 -0
  37. package/dist-server/service/index.d.ts +7 -0
  38. package/dist-server/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +3 -4
  40. package/server/index.ts +0 -1
  41. package/server/service/entity/entity-mutation.ts +4 -17
  42. package/server/service/entity/entity-query.ts +1 -1
  43. package/server/service/entity/entity.ts +3 -3
  44. package/server/service/entity-column/entity-column-query.ts +4 -1
  45. package/server/service/entity-column/entity-column.ts +3 -3
  46. package/things-factory.config.js +1 -5
  47. package/client/bootstrap.js +0 -4
  48. package/client/index.js +0 -2
  49. package/client/menu-meta.js +0 -77
  50. package/client/mixin/resource-parser.js +0 -178
  51. package/dist-server/constants/del-strategy-type.js +0 -10
  52. package/dist-server/constants/del-strategy-type.js.map +0 -1
  53. package/dist-server/migrations/index.js +0 -12
  54. package/dist-server/migrations/index.js.map +0 -1
  55. package/server/constants/del-strategy-type.ts +0 -6
  56. package/server/migrations/index.ts +0 -9
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@things-factory/resource-base",
3
- "version": "7.0.0-alpha.9",
3
+ "version": "7.0.0",
4
4
  "main": "dist-server/index.js",
5
- "browser": "client/index.js",
6
5
  "things-factory": true,
7
6
  "author": "",
8
7
  "description": "Module to manage searching resource in application.",
@@ -24,7 +23,7 @@
24
23
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
24
  },
26
25
  "dependencies": {
27
- "@things-factory/auth-base": "^7.0.0-alpha.9"
26
+ "@things-factory/auth-base": "^7.0.0"
28
27
  },
29
- "gitHead": "99fc5aead211b3c82e3ebbf76e8d5d1db01b1ddc"
28
+ "gitHead": "00f3917ca132679e3571f3f4fd16f4caf84f488e"
30
29
  }
package/server/index.ts CHANGED
@@ -1,2 +1 @@
1
1
  export * from './service'
2
- export * from './migrations'
@@ -1,7 +1,5 @@
1
- import { DEL_STRATEGY } from '../../constants/del-strategy-type'
2
1
  import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
3
2
  import { In } from 'typeorm'
4
- import { EntityColumn } from '../entity-column/entity-column'
5
3
 
6
4
  import { Entity } from './entity'
7
5
  import { EntityPatch, NewEntity } from './entity-type'
@@ -29,11 +27,7 @@ export class EntityMutation {
29
27
 
30
28
  @Directive('@transaction')
31
29
  @Mutation(returns => Entity, { description: "To modify Entity' information" })
32
- async updateEntity(
33
- @Arg('id', type => String) id: string,
34
- @Arg('patch', type => EntityPatch) patch: EntityPatch,
35
- @Ctx() context: ResolverContext
36
- ): Promise<Entity> {
30
+ async updateEntity(@Arg('id', type => String) id: string, @Arg('patch', type => EntityPatch) patch: EntityPatch, @Ctx() context: ResolverContext): Promise<Entity> {
37
31
  const { domain, user, tx } = context.state
38
32
 
39
33
  const repository = tx.getRepository(Entity)
@@ -59,10 +53,7 @@ export class EntityMutation {
59
53
 
60
54
  @Directive('@transaction')
61
55
  @Mutation(returns => [Entity], { description: "To modify multiple Entitys' information" })
62
- async updateMultipleEntity(
63
- @Arg('patches', type => [EntityPatch]) patches: EntityPatch[],
64
- @Ctx() context: ResolverContext
65
- ): Promise<Entity[]> {
56
+ async updateMultipleEntity(@Arg('patches', type => [EntityPatch]) patches: EntityPatch[], @Ctx() context: ResolverContext): Promise<Entity[]> {
66
57
  const { domain, user, tx } = context.state
67
58
 
68
59
  let results = []
@@ -75,9 +66,7 @@ export class EntityMutation {
75
66
  const newRecord = _createRecords[i]
76
67
 
77
68
  if (newRecord.master) {
78
- newRecord.master = (await tx
79
- .getRepository(Entity)
80
- .findOne({ where: { domain: { id: domain.id }, id: newRecord.master } })) as any
69
+ newRecord.master = (await tx.getRepository(Entity).findOne({ where: { domain: { id: domain.id }, id: newRecord.master } })) as any
81
70
  }
82
71
 
83
72
  if (newRecord.children && newRecord.children.length) {
@@ -101,9 +90,7 @@ export class EntityMutation {
101
90
  const entity = await entityRepo.findOneBy({ id: updateRecord.id })
102
91
 
103
92
  if (updateRecord.master) {
104
- updateRecord.master = (await tx
105
- .getRepository(Entity)
106
- .findOne({ where: { domain: { id: domain.id }, id: updateRecord.master } })) as any
93
+ updateRecord.master = (await tx.getRepository(Entity).findOne({ where: { domain: { id: domain.id }, id: updateRecord.master } })) as any
107
94
  }
108
95
 
109
96
  if (updateRecord.children && updateRecord.children.length) {
@@ -19,7 +19,7 @@ export class EntityQuery {
19
19
  }
20
20
 
21
21
  @Query(returns => EntityList, { description: 'To fetch multiple Entities' })
22
- async entities(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<EntityList> {
22
+ async entities(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<EntityList> {
23
23
  const { domain } = context.state
24
24
 
25
25
  const queryBuilder = getQueryBuilderFromListParams({
@@ -28,7 +28,7 @@ export class Entity {
28
28
  readonly id: string
29
29
 
30
30
  @ManyToOne(type => Domain)
31
- @Field({ nullable: true })
31
+ @Field(type => Domain)
32
32
  domain?: Domain
33
33
 
34
34
  @RelationId((entity: Entity) => entity.domain)
@@ -151,7 +151,7 @@ export class Entity {
151
151
  @ManyToOne(type => User, {
152
152
  nullable: true
153
153
  })
154
- @Field({ nullable: true })
154
+ @Field(type => User, { nullable: true })
155
155
  creator?: User
156
156
 
157
157
  @RelationId((entity: Entity) => entity.creator)
@@ -160,7 +160,7 @@ export class Entity {
160
160
  @ManyToOne(type => User, {
161
161
  nullable: true
162
162
  })
163
- @Field({ nullable: true })
163
+ @Field(type => User, { nullable: true })
164
164
  updater?: User
165
165
 
166
166
  @RelationId((entity: Entity) => entity.updater)
@@ -19,7 +19,10 @@ export class EntityColumnQuery {
19
19
  }
20
20
 
21
21
  @Query(returns => EntityColumnList, { description: 'To fetch multiple EntityColumns' })
22
- async entityColumns(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<EntityColumnList> {
22
+ async entityColumns(
23
+ @Args(type => ListParam) params: ListParam,
24
+ @Ctx() context: ResolverContext
25
+ ): Promise<EntityColumnList> {
23
26
  const { domain } = context.state
24
27
 
25
28
  const queryBuilder = getQueryBuilderFromListParams({
@@ -27,7 +27,7 @@ export class EntityColumn {
27
27
  readonly id: string
28
28
 
29
29
  @ManyToOne(type => Domain)
30
- @Field({ nullable: true })
30
+ @Field(type => Domain)
31
31
  domain?: Domain
32
32
 
33
33
  @RelationId((entityColumn: EntityColumn) => entityColumn.domain)
@@ -249,7 +249,7 @@ export class EntityColumn {
249
249
  @ManyToOne(type => User, {
250
250
  nullable: true
251
251
  })
252
- @Field({ nullable: true })
252
+ @Field(type => User, { nullable: true })
253
253
  creator?: User
254
254
 
255
255
  @RelationId((entityColumn: EntityColumn) => entityColumn.creator)
@@ -258,7 +258,7 @@ export class EntityColumn {
258
258
  @ManyToOne(type => User, {
259
259
  nullable: true
260
260
  })
261
- @Field({ nullable: true })
261
+ @Field(type => User, { nullable: true })
262
262
  updater?: User
263
263
 
264
264
  @RelationId((entityColumn: EntityColumn) => entityColumn.updater)
@@ -1,5 +1 @@
1
- import bootstrap from './client/bootstrap'
2
-
3
- export default {
4
- bootstrap
5
- }
1
+ export default {}
@@ -1,4 +0,0 @@
1
- import { store } from '@things-factory/shell'
2
-
3
- export default function bootstrap() {
4
- }
package/client/index.js DELETED
@@ -1,2 +0,0 @@
1
- export * from './mixin/resource-parser'
2
- export * from './menu-meta'
@@ -1,77 +0,0 @@
1
- import gql from 'graphql-tag'
2
- import { client } from '@things-factory/shell'
3
- import { gqlBuilder } from '@things-factory/utils'
4
-
5
- export async function getColumns(tableName) {
6
- const response = await client.query({
7
- query: gql`
8
- query {
9
- menu (${gqlBuilder.buildArgs({
10
- name: tableName
11
- })}) {
12
- id
13
- name
14
- description
15
- category
16
- menuType
17
- rank
18
- routing
19
- routingType
20
- resourceType
21
- resourceUrl
22
- resourceName
23
- idField
24
- titleField
25
- gridSaveUrl
26
- pagination
27
- detailFormId
28
- detailLayout
29
- template
30
- hiddenFlag
31
- itemsProp
32
- totalProp
33
- fixedColumns
34
- iconPath
35
- columns {
36
- id
37
- name
38
- description
39
- rank
40
- term
41
- colType
42
- colSize
43
- nullable
44
- refType
45
- refName
46
- refUrl
47
- refParams
48
- refRelated
49
- searchRank
50
- sortRank
51
- reverseSort
52
- virtualField
53
- extField
54
- searchName
55
- searchEditor
56
- searchOper
57
- searchInitVal
58
- gridRank
59
- gridEditor
60
- gridFormat
61
- gridValidator
62
- gridWidth
63
- gridAlign
64
- uniqRank
65
- formEditor
66
- formValidator
67
- formFormat
68
- defVal
69
- rangeVal
70
- ignoreOnSave
71
- }
72
- }
73
- }
74
- `
75
- })
76
- return response.data
77
- }
@@ -1,178 +0,0 @@
1
- export const resourceParser = baseElement =>
2
- class extends baseElement {
3
-
4
- _parseButtons(buttonList) {
5
- if (buttonList) {
6
- buttonList.forEach(function(button) {
7
- button.id = button.text + '-btn'
8
- })
9
- }
10
-
11
- return buttonList
12
- }
13
-
14
- _parseSearchFormFields(metaDataList) {
15
- const searchMetaList = metaDataList.filter(metaData => {
16
- return metaData.search_rank && metaData.search_rank > 0
17
- })
18
-
19
- this._sortMetaData(searchMetaList, 'search_rank')
20
-
21
- return searchMetaList.map(metaData => {
22
- const field = {
23
- name: metaData.name,
24
- label: metaData.term,
25
- type: metaData.search_editor,
26
- op: metaData.search_oper || 'eq'
27
- }
28
-
29
- metaData.search_editor = metaData.search_editor || 'text'
30
- metaData.search_editor = this._parseSearchFormField(field, metaData)
31
- field.default = metaData.search_init_val || null
32
-
33
- return field
34
- })
35
- }
36
-
37
- _sortMetaData(list, sortField) {
38
- list.sort((a, b) => {
39
- return a[sortField] > b[sortField] ? 1 : b[sortField] > a[sortField] ? -1 : 0
40
- })
41
- }
42
-
43
- _parseSearchFormField(field, metaData) {
44
- const editor = metaData.search_editor
45
-
46
- if ('code-combo' == editor) {
47
- field.codeName = metaData.ref_name
48
- } else if (
49
- editor.indexOf('resource-selector') >= 0 ||
50
- editor.indexOf('resource-format-selector') >= 0 ||
51
- editor.indexOf('resource-field') >= 0 ||
52
- editor.indexOf('resource-combo') >= 0 ||
53
- editor.indexOf('resource-code') >= 0
54
- ) {
55
- field.userData = {
56
- resourceType: metaData.ref_type,
57
- resourceName: metaData.ref_name,
58
- initialParams: metaData.ref_params,
59
- bindFields: metaData.ref_related,
60
- submitName: field.name
61
- }
62
-
63
- if (editor.indexOf('.') > 0) {
64
- var editorSplitArr = editor.split('.')
65
- field.type = editorSplitArr[0]
66
- field.userData.delegateColumn = editorSplitArr[1]
67
- } else {
68
- field.type = editor
69
- }
70
-
71
- if (field.type == 'resource-combo') {
72
- field.userData.delegateColumn = metaData.search_name ? metaData.search_name : 'id'
73
- }
74
-
75
- if (field.type == 'resource-format-selector') {
76
- field.userData.delegateColumn = metaData.search_name ? metaData.search_name : 'name'
77
- }
78
- } else if (editor == 'reference-query') {
79
- var refName = field.name.indexOf('_id') > 0 ? field.name.substr(0, field.name.indexOf('_id')) : field.name
80
- field.userData = {
81
- type: metaData.col_type,
82
- refName: refName,
83
- fieldName: metaData.search_name,
84
- searchName: refName + '.' + metaData.search_name
85
- }
86
- } else if (editor == 'number') {
87
- field.userData = { type: metaData.col_type }
88
- this._parseSearchValueRange(field, metaData.range_val, 'number')
89
- } else if ('date-from-to-picker' == editor || 'ranged-date-picker' == editor) {
90
- field.userData = { defaultRange: metaData.def_val, format: metaData.search_name }
91
- this._parseSearchValueRange(field, metaData.search_init_val, 'date')
92
- } else if ('date-picker' == editor) {
93
- if (metaData.search_name || metaData.search_init_val) {
94
- field.userData = {}
95
- if (metaData.search_name) field.userData.format = metaData.search_name
96
- if (metaData.search_init_val) field.userData.defValue = this._calcDate(metaData.search_init_val)
97
- }
98
- } else if ('time-picker' == editor || 'datetime-picker' == editor || 'ranged-datetime-picker' == editor) {
99
- if (metaData.search_name) {
100
- field.userData = { format: metaData.search_name }
101
- }
102
-
103
- if ('ranged-datetime-picker' == editor && metaData.search_init_val) {
104
- this._parseDatetimeInitValue(field, metaData.search_init_val)
105
- }
106
- }
107
- }
108
-
109
- _parseGridModel(metaDataList) {
110
- var gridModelMetaList = metaDataList.filter(function(metaData) {
111
- if (metaData.name == 'id' && !metaData.grid_rank) metaData.grid_rank = -10
112
- return metaData.grid_rank && metaData.grid_rank != 0
113
- })
114
-
115
- var selectColumns = ''
116
-
117
- var gridModel = gridModelMetaList.map(function(metaData) {
118
- var field = { fieldName: metaData.name }
119
-
120
- if (
121
- metaData.col_type == 'integer' ||
122
- metaData.col_type == 'int' ||
123
- metaData.col_type == 'long' ||
124
- metaData.col_type == 'double' ||
125
- metaData.col_type == 'float'
126
- ) {
127
- field.dataType = 'number'
128
- } else if (metaData.col_type == 'date' || metaData.col_type == 'time') {
129
- field.dataType = 'datetime'
130
- field.datetimeFormat = metaData.grid_format ? metaData.grid_format : 'yyyy-MM-dd'
131
- }
132
-
133
- var editor = metaData.grid_editor
134
-
135
- if (editor == 'rank') {
136
- field.rank = true
137
- field.increment = metaData.grid_format ? Number(metaData.grid_format) : 1
138
- }
139
-
140
- if (editor && editor.indexOf('resource-column') >= 0) {
141
- field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
142
- field.dataType = 'object'
143
- }
144
-
145
- if (editor && editor.indexOf('resource-selector') >= 0) {
146
- field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
147
- field.dataType = 'object'
148
- }
149
-
150
- if (editor && editor.indexOf('resource-format-selector') >= 0) {
151
- if (field.fieldName.indexOf('_id') >= 0) {
152
- field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
153
- }
154
- }
155
-
156
- if (editor && editor.indexOf('file-selector') >= 0) {
157
- field.fieldName = field.fieldName.substr(0, field.fieldName.indexOf('_id'))
158
- field.dataType = 'object'
159
- }
160
-
161
- if (field.dataType != 'object' && metaData.def_val) {
162
- field.defaultValue = field.dataType == 'number' ? Number(metaData.def_val) : metaData.def_val
163
- }
164
-
165
- if (!metaData.virtual_field || metaData.virtual_field == false) {
166
- selectColumns += field.fieldName + ','
167
- }
168
-
169
- return field
170
- })
171
-
172
- if (selectColumns.length > 2) {
173
- this.selectFields = selectColumns.substr(0, selectColumns.length - 1)
174
- }
175
-
176
- return gridModel
177
- }
178
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEL_STRATEGY = void 0;
4
- exports.DEL_STRATEGY = {
5
- DELETE: 'delete',
6
- DESTROY: 'destroy',
7
- NULLIFY: 'nullify',
8
- RESTRICT_WITH_ERROR: 'restrict with error'
9
- };
10
- //# sourceMappingURL=del-strategy-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"del-strategy-type.js","sourceRoot":"","sources":["../../server/constants/del-strategy-type.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,mBAAmB,EAAE,qBAAqB;CAC3C,CAAA","sourcesContent":["export const DEL_STRATEGY = {\n DELETE: 'delete',\n DESTROY: 'destroy',\n NULLIFY: 'nullify',\n RESTRICT_WITH_ERROR: 'restrict with error'\n}\n"]}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.migrations = void 0;
4
- const glob = require('glob');
5
- const path = require('path');
6
- exports.migrations = [];
7
- glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function (file) {
8
- if (file.indexOf('index.js') !== -1)
9
- return;
10
- exports.migrations = exports.migrations.concat(Object.values(require(path.resolve(file))) || []);
11
- });
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/migrations/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAEjB,QAAA,UAAU,GAAG,EAAE,CAAA;AAE1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAE,OAAM;IAC3C,kBAAU,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA","sourcesContent":["const glob = require('glob')\nconst path = require('path')\n\nexport var migrations = []\n\nglob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {\n if (file.indexOf('index.js') !== -1) return\n migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])\n})\n"]}
@@ -1,6 +0,0 @@
1
- export const DEL_STRATEGY = {
2
- DELETE: 'delete',
3
- DESTROY: 'destroy',
4
- NULLIFY: 'nullify',
5
- RESTRICT_WITH_ERROR: 'restrict with error'
6
- }
@@ -1,9 +0,0 @@
1
- const glob = require('glob')
2
- const path = require('path')
3
-
4
- export var migrations = []
5
-
6
- glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
7
- if (file.indexOf('index.js') !== -1) return
8
- migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
9
- })