@things-factory/resource-base 7.0.1-alpha.9 → 7.0.1-alpha.92

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/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@things-factory/resource-base",
3
- "version": "7.0.1-alpha.9",
3
+ "version": "7.0.1-alpha.92",
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.1-alpha.9"
26
+ "@things-factory/auth-base": "^7.0.1-alpha.92"
28
27
  },
29
- "gitHead": "e77082517f5483704f1e884cbc81b7f94c0eec15"
28
+ "gitHead": "9cd59ab35277b7c8ac1e3677beb4bdca89a97980"
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) {
@@ -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)
@@ -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)
@@ -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
- })