@steedos/objectql 2.2.50 → 2.2.51-beta.4
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/lib/services/helpers/graphql/consts.d.ts +17 -0
- package/lib/services/helpers/graphql/consts.js +28 -0
- package/lib/services/helpers/graphql/consts.js.map +1 -0
- package/lib/services/helpers/graphql/getQueryFields.js +17 -2
- package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
- package/lib/services/helpers/graphql/index.d.ts +1 -1
- package/lib/services/helpers/graphql/index.js +31 -46
- package/lib/services/helpers/graphql/index.js.map +1 -1
- package/lib/util/index.js +7 -0
- package/lib/util/index.js.map +1 -1
- package/package.json +11 -12
- package/src/actions/field_updates.ts +0 -118
- package/src/actions/index.ts +0 -3
- package/src/actions/types/field_update_target.ts +0 -7
- package/src/actions/types/workflow_notification.ts +0 -9
- package/src/actions/types/workflow_rule.ts +0 -11
- package/src/actions/workflow_notifications.ts +0 -81
- package/src/actions/workflow_rule.ts +0 -136
- package/src/driver/driver.ts +0 -102
- package/src/driver/field-encrytion/index.ts +0 -8
- package/src/driver/field-encrytion/sharedconst.ts +0 -34
- package/src/driver/fieldDBType.ts +0 -14
- package/src/driver/format.ts +0 -36
- package/src/driver/index.ts +0 -20
- package/src/driver/metadata.ts +0 -226
- package/src/driver/meteorMongo.ts +0 -639
- package/src/driver/mongo.ts +0 -416
- package/src/driver/mysql.ts +0 -47
- package/src/driver/oracle.ts +0 -60
- package/src/driver/postgres.ts +0 -46
- package/src/driver/sqlite3.ts +0 -40
- package/src/driver/sqlserver.ts +0 -52
- package/src/dynamic-load/actions.ts +0 -146
- package/src/dynamic-load/approval_process.ts +0 -73
- package/src/dynamic-load/button.ts +0 -75
- package/src/dynamic-load/chart.ts +0 -22
- package/src/dynamic-load/client_script.ts +0 -65
- package/src/dynamic-load/field.ts +0 -77
- package/src/dynamic-load/flow_role.ts +0 -46
- package/src/dynamic-load/index.ts +0 -21
- package/src/dynamic-load/layout.ts +0 -53
- package/src/dynamic-load/listview.ts +0 -57
- package/src/dynamic-load/method.ts +0 -63
- package/src/dynamic-load/object_translations.ts +0 -61
- package/src/dynamic-load/originalObject.ts +0 -8
- package/src/dynamic-load/package.ts +0 -312
- package/src/dynamic-load/page.ts +0 -23
- package/src/dynamic-load/permission.ts +0 -71
- package/src/dynamic-load/permissionset.ts +0 -78
- package/src/dynamic-load/preload_data.ts +0 -104
- package/src/dynamic-load/profile.ts +0 -90
- package/src/dynamic-load/query.ts +0 -22
- package/src/dynamic-load/restrictionRules.ts +0 -23
- package/src/dynamic-load/role.ts +0 -46
- package/src/dynamic-load/shareRules.ts +0 -23
- package/src/dynamic-load/tab.ts +0 -17
- package/src/dynamic-load/tabs.ts +0 -13
- package/src/dynamic-load/translations.ts +0 -54
- package/src/dynamic-load/trigger.ts +0 -236
- package/src/dynamic-load/validation_rule.ts +0 -77
- package/src/dynamic-load/workflow.ts +0 -114
- package/src/errors/index.ts +0 -111
- package/src/formula/core.ts +0 -490
- package/src/formula/field_formula.ts +0 -107
- package/src/formula/index.ts +0 -81
- package/src/formula/params.ts +0 -197
- package/src/formula/recompute.ts +0 -65
- package/src/formula/simple_params.ts +0 -92
- package/src/formula/type.ts +0 -107
- package/src/formula/util.ts +0 -207
- package/src/index.ts +0 -24
- package/src/metadata-register/_base.ts +0 -85
- package/src/metadata-register/app.ts +0 -30
- package/src/metadata-register/chart.ts +0 -9
- package/src/metadata-register/index.ts +0 -123
- package/src/metadata-register/layout.ts +0 -38
- package/src/metadata-register/object.ts +0 -68
- package/src/metadata-register/page.ts +0 -9
- package/src/metadata-register/permissionFields.ts +0 -13
- package/src/metadata-register/permissionset.ts +0 -25
- package/src/metadata-register/process.ts +0 -16
- package/src/metadata-register/processTrigger.ts +0 -24
- package/src/metadata-register/profile.ts +0 -25
- package/src/metadata-register/query.ts +0 -9
- package/src/metadata-register/restrictionRules.ts +0 -12
- package/src/metadata-register/shareRules.ts +0 -13
- package/src/metadata-register/tab.ts +0 -9
- package/src/metadata-register/tabs.ts +0 -43
- package/src/services/datasourceServiceFactory.ts +0 -55
- package/src/services/helpers/graphql/getPrimaryFieldType.ts +0 -48
- package/src/services/helpers/graphql/getQueryFields.ts +0 -36
- package/src/services/helpers/graphql/index.ts +0 -681
- package/src/services/helpers/rest.ts +0 -57
- package/src/services/index.ts +0 -13
- package/src/services/objectService.ts +0 -846
- package/src/services/objectServiceDispatcher.ts +0 -209
- package/src/services/objectServiceFactory.ts +0 -29
- package/src/summary/core.ts +0 -263
- package/src/summary/field_summary.ts +0 -71
- package/src/summary/index.ts +0 -96
- package/src/summary/recompute.ts +0 -31
- package/src/summary/type.ts +0 -60
- package/src/ts-types/index.ts +0 -3
- package/src/ts-types/permissionset.ts +0 -8
- package/src/ts-types/profile.ts +0 -11
- package/src/ts-types/triggerActionParams.ts +0 -22
- package/src/typeorm/driver.ts +0 -379
- package/src/typeorm/index.ts +0 -3
- package/src/typeorm/util.ts +0 -147
- package/src/types/action.ts +0 -52
- package/src/types/app.ts +0 -280
- package/src/types/config.ts +0 -152
- package/src/types/connection.ts +0 -87
- package/src/types/dashboard.ts +0 -91
- package/src/types/datasource.ts +0 -570
- package/src/types/field.ts +0 -370
- package/src/types/field_permission.ts +0 -42
- package/src/types/field_types.ts +0 -1
- package/src/types/index.ts +0 -21
- package/src/types/list_view.ts +0 -56
- package/src/types/listeners.ts +0 -18
- package/src/types/object.ts +0 -2076
- package/src/types/object_dynamic_load.ts +0 -426
- package/src/types/object_events.ts +0 -43
- package/src/types/object_layouts.ts +0 -20
- package/src/types/object_permission.ts +0 -134
- package/src/types/query.ts +0 -28
- package/src/types/report.ts +0 -128
- package/src/types/restrictionRule.ts +0 -57
- package/src/types/schema.ts +0 -273
- package/src/types/shareRule.ts +0 -57
- package/src/types/trigger.ts +0 -88
- package/src/types/userSession.ts +0 -45
- package/src/types/validation_rules.ts +0 -29
- package/src/util/convert.ts +0 -131
- package/src/util/field.ts +0 -93
- package/src/util/function_expression.ts +0 -63
- package/src/util/index.ts +0 -1058
- package/src/util/locale.ts +0 -24
- package/src/util/permission_shares.ts +0 -25
- package/src/util/suffix.ts +0 -78
- package/src/util/transform.ts +0 -239
- package/src/validators/index.ts +0 -36
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
const clone = require('clone');
|
|
2
|
-
export async function registerProfile(broker, serviceName, profileConfig) {
|
|
3
|
-
const metadata = clone(profileConfig);
|
|
4
|
-
delete metadata.triggers
|
|
5
|
-
const res = await broker.call("permissionsets.addProfile", {profileApiName: metadata._id || metadata.name ,data: metadata}, {meta: {
|
|
6
|
-
metadataServiceName: serviceName,
|
|
7
|
-
caller: {
|
|
8
|
-
nodeID: broker.nodeID,
|
|
9
|
-
service: {
|
|
10
|
-
name: serviceName,
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}});
|
|
14
|
-
return res;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export async function getProfile(broker, profileApiName) {
|
|
18
|
-
const res = await broker.call("permissionsets.getProfile", {profileApiName: profileApiName});
|
|
19
|
-
return res;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export async function getProfiles(broker) {
|
|
23
|
-
const res = await broker.call("permissionsets.getProfiles");
|
|
24
|
-
return res;
|
|
25
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { RegisterBase } from "./_base";
|
|
2
|
-
const SERVICE_NAME = 'restriction_rules';
|
|
3
|
-
class RegisterRestrictionRules extends RegisterBase {
|
|
4
|
-
constructor() {
|
|
5
|
-
super(SERVICE_NAME);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
getApiName(config) {
|
|
9
|
-
return `${config.object_name}.${config.name}`
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export const registerRestrictionRules = new RegisterRestrictionRules();
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { RegisterBase } from "./_base";
|
|
2
|
-
const SERVICE_NAME = 'share_rules';
|
|
3
|
-
class RegisterShareRules extends RegisterBase {
|
|
4
|
-
constructor() {
|
|
5
|
-
super(SERVICE_NAME);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
getApiName(config) {
|
|
9
|
-
return `${config.object_name}.${config.name}`
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const registerShareRules = new RegisterShareRules();
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
const clone = require('clone');
|
|
2
|
-
const SERVICE_NAME = 'tabs';
|
|
3
|
-
|
|
4
|
-
/***
|
|
5
|
-
* 此文件内容不再维护,迁移到tab.ts
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export async function registerTab(broker, serviceName, config) {
|
|
9
|
-
const metadata = clone(config);
|
|
10
|
-
delete metadata.triggers
|
|
11
|
-
const res = await broker.call(`${SERVICE_NAME}.add`, {tabApiName: metadata.name ,data: metadata}, {meta: {
|
|
12
|
-
metadataServiceName: serviceName,
|
|
13
|
-
caller: {
|
|
14
|
-
nodeID: broker.nodeID,
|
|
15
|
-
service: {
|
|
16
|
-
name: serviceName,
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}});
|
|
20
|
-
return res;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export async function removeTab(broker, tabApiName) {
|
|
24
|
-
const res = await broker.call(`${SERVICE_NAME}.delete`, {tabApiName: tabApiName});
|
|
25
|
-
return res;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export async function getTab(broker, tabApiName) {
|
|
29
|
-
const res = await broker.call(`${SERVICE_NAME}.get`, {tabApiName: tabApiName});
|
|
30
|
-
return res;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export async function getTabs(broker) {
|
|
34
|
-
const res = await broker.call(`${SERVICE_NAME}.getAll`);
|
|
35
|
-
return res;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export async function filterTabs(broker, tabApiName, spaceId?, objectApiName?){
|
|
39
|
-
const res = await broker.call(`${SERVICE_NAME}.filter`, {
|
|
40
|
-
objectApiName, spaceId, tabApiName
|
|
41
|
-
});
|
|
42
|
-
return res;
|
|
43
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import * as _ from 'underscore';
|
|
2
|
-
import { getDataSourceServiceName } from './index';
|
|
3
|
-
import { jsonToObject } from '../util/convert';
|
|
4
|
-
import { getDataSource } from '../types/datasource';
|
|
5
|
-
const LocalDataSourceServices = {};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export async function createDataSourceService(broker, dataSource) {
|
|
9
|
-
const dataSourceName = dataSource.name;
|
|
10
|
-
const serviceName = getDataSourceServiceName(dataSourceName);
|
|
11
|
-
|
|
12
|
-
if (LocalDataSourceServices[serviceName]) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
let service = broker.createService({
|
|
17
|
-
name: serviceName,
|
|
18
|
-
events: {
|
|
19
|
-
[`${dataSourceName}.*.metadata.objects.inserted`]: {
|
|
20
|
-
handler(ctx) {
|
|
21
|
-
let objectConfig = ctx.params.data;
|
|
22
|
-
jsonToObject(objectConfig)
|
|
23
|
-
dataSource.initObject(objectConfig)
|
|
24
|
-
/**
|
|
25
|
-
* 每次都需要初始化,TypeORM不适用于微服务模式
|
|
26
|
-
*/
|
|
27
|
-
dataSource.initTypeORM();
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
[`${dataSourceName}.*.metadata.objects.deleted`]: {
|
|
31
|
-
handler(ctx) {
|
|
32
|
-
if (this.timeoutId) {
|
|
33
|
-
clearTimeout(this.timeoutId);
|
|
34
|
-
}
|
|
35
|
-
this.timeoutId = setTimeout(function(){
|
|
36
|
-
try {
|
|
37
|
-
const datasource = getDataSource(dataSourceName);
|
|
38
|
-
if (datasource) {
|
|
39
|
-
datasource.flushCacheObjects();
|
|
40
|
-
}
|
|
41
|
-
} catch (error) {
|
|
42
|
-
console.error(error)
|
|
43
|
-
}
|
|
44
|
-
}, 1000 * 0.1);
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
}
|
|
48
|
-
})
|
|
49
|
-
if (!broker.started) { //如果broker未启动则手动启动service
|
|
50
|
-
await broker._restartService(service)
|
|
51
|
-
}
|
|
52
|
-
await broker.waitForServices(service.name, null, 10);
|
|
53
|
-
LocalDataSourceServices[serviceName] = true;
|
|
54
|
-
return service
|
|
55
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: sunhaolin@hotoa.com
|
|
3
|
-
* @Date: 2022-06-16 14:37:39
|
|
4
|
-
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
-
* @LastEditTime: 2022-06-16 16:28:20
|
|
6
|
-
* @Description: 获取对象主键字段类型,用于生成对象的graphql schema,如 id: ID!
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { SteedosObjectTypeConfig, getDataSource, SteedosDatabaseDriverType } from "../../..";
|
|
10
|
-
import _ = require("lodash");
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* 根据对象所属数据源的类型,生成grapqhl shcmea的主键字段定义
|
|
14
|
-
* @param objectConfig 对象配置
|
|
15
|
-
*/
|
|
16
|
-
export function getPrimaryFieldType(objectConfig: SteedosObjectTypeConfig) {
|
|
17
|
-
let idType = '';
|
|
18
|
-
let fields = objectConfig.fields;
|
|
19
|
-
const datasource = getDataSource(objectConfig.datasource);
|
|
20
|
-
if (datasource.driver === SteedosDatabaseDriverType.MeteorMongo || datasource.driver === SteedosDatabaseDriverType.Mongo) {
|
|
21
|
-
if (!_.has(fields, "_id")) {
|
|
22
|
-
idType = '_id: String'
|
|
23
|
-
}
|
|
24
|
-
} else {
|
|
25
|
-
// 设置非默认数据源的主键字段,如mysql
|
|
26
|
-
for (let fieldName in fields) {
|
|
27
|
-
let field = fields[fieldName];
|
|
28
|
-
if (field.primary) {
|
|
29
|
-
let fieldType = ''
|
|
30
|
-
switch (field.type) {
|
|
31
|
-
case 'text' || 'textarea':
|
|
32
|
-
fieldType = 'String';
|
|
33
|
-
break;
|
|
34
|
-
case 'number':
|
|
35
|
-
fieldType = 'Float';
|
|
36
|
-
break;
|
|
37
|
-
default:
|
|
38
|
-
fieldType = 'JSON'
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
idType = `_id: ${fieldType}`;
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return idType;
|
|
48
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: sunhaolin@hotoa.com
|
|
3
|
-
* @Date: 2022-06-15 15:50:29
|
|
4
|
-
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
-
* @LastEditTime: 2022-06-17 15:19:47
|
|
6
|
-
* @Description: 根据query的请求体解析出查询的字段
|
|
7
|
-
*/
|
|
8
|
-
import { GraphQLResolveInfo } from 'graphql';
|
|
9
|
-
import {
|
|
10
|
-
parseResolveInfo,
|
|
11
|
-
simplifyParsedResolveInfoFragmentWithType,
|
|
12
|
-
ResolveTree,
|
|
13
|
-
} from 'graphql-parse-resolve-info';
|
|
14
|
-
|
|
15
|
-
import _ = require('lodash');
|
|
16
|
-
|
|
17
|
-
export function getQueryFields(resolveInfo: GraphQLResolveInfo) {
|
|
18
|
-
const fieldsName = []
|
|
19
|
-
const parsedResolveInfoFragment: ResolveTree = <ResolveTree>parseResolveInfo(resolveInfo);
|
|
20
|
-
const simplifiedFragment = simplifyParsedResolveInfoFragmentWithType(
|
|
21
|
-
parsedResolveInfoFragment,
|
|
22
|
-
resolveInfo.returnType
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
const fields = simplifiedFragment.fields;
|
|
26
|
-
if (!_.isEmpty(fields)) {
|
|
27
|
-
for (const key in fields) {
|
|
28
|
-
if (Object.prototype.hasOwnProperty.call(fields, key)) {
|
|
29
|
-
fieldsName.push(fields[key].name)
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return fieldsName;
|
|
35
|
-
|
|
36
|
-
}
|