@steedos/service-package-loader 2.5.8-beta.2 → 2.5.8-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/index.js CHANGED
@@ -4,6 +4,7 @@ const triggerLoader = require('./lib').triggerLoader;
4
4
  const processLoader = require('./lib').processLoader;
5
5
  const processTriggerLoader = require('./lib').processTriggerLoader;
6
6
  const triggerYmlLoader = require('./lib').triggerYmlLoader;
7
+ const importLoader = require('./lib').importLoader;
7
8
  const path = require('path');
8
9
  const _ = require('lodash');
9
10
  const fs = require("fs");
@@ -149,6 +150,7 @@ module.exports = {
149
150
  await triggerLoader.load(this.broker, packagePath, name);
150
151
  await processTriggerLoader.load(this.broker, packagePath, name);
151
152
  await triggerYmlLoader.load(this.broker, packagePath, name);
153
+ await importLoader.load(this.broker, packagePath, name);
152
154
  if(this.core){
153
155
  this.core.loadClientScripts();
154
156
  const routersInfo = await this.loadPackageRouters(packagePath, name);
@@ -0,0 +1,8 @@
1
+ export declare const METADATA_SYSTEM_PERMISSION: {
2
+ is_system: boolean;
3
+ record_permissions: {
4
+ allowEdit: boolean;
5
+ allowDelete: boolean;
6
+ allowRead: boolean;
7
+ };
8
+ };
package/lib/consts.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.METADATA_SYSTEM_PERMISSION = void 0;
4
+ exports.METADATA_SYSTEM_PERMISSION = {
5
+ is_system: true,
6
+ record_permissions: {
7
+ allowEdit: false,
8
+ allowDelete: false,
9
+ allowRead: true,
10
+ }
11
+ };
12
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AASa,QAAA,0BAA0B,GAAG;IACtC,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE;QAChB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,IAAI;KAClB;CACJ,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function load(broker: any, packagePath: string, packageServiceName: string): Promise<void>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.load = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const metadata_core_1 = require("@steedos/metadata-core");
6
+ const metadata_registrar_1 = require("@steedos/metadata-registrar");
7
+ const path = require("path");
8
+ const _ = require("lodash");
9
+ const consts_1 = require("../consts");
10
+ const loadImportFile = new metadata_core_1.LoadImportFile();
11
+ function load(broker, packagePath, packageServiceName) {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ let filePath = path.join(packagePath, "**");
14
+ const metadatasJSON = loadImportFile.load(filePath);
15
+ if (_.isEmpty(metadatasJSON)) {
16
+ return;
17
+ }
18
+ const data = [];
19
+ for (const apiName in metadatasJSON) {
20
+ const doc = metadatasJSON[apiName];
21
+ data.push(Object.assign(doc, consts_1.METADATA_SYSTEM_PERMISSION));
22
+ }
23
+ if (data.length > 0) {
24
+ yield metadata_registrar_1.registerImport.mregister(broker, packageServiceName, data);
25
+ }
26
+ });
27
+ }
28
+ exports.load = load;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/importLoader/index.ts"],"names":[],"mappings":";;;;AASA,0DAAuD;AACvD,oEAA4D;AAC5D,6BAA8B;AAC9B,4BAA6B;AAE7B,sCAAuD;AAEvD,MAAM,cAAc,GAAG,IAAI,8BAAc,EAAE,CAAC;AAE5C,SAAsB,IAAI,CAAC,MAAW,EAAE,WAAmB,EAAE,kBAA0B;;QACnF,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAC1B,OAAO;SACV;QAGD,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;YACjC,MAAM,GAAG,GAAW,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,mCAA0B,CAAC,CAAC,CAAC;SAC7D;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,MAAM,mCAAc,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAA;SACnE;IAEL,CAAC;CAAA;AAjBD,oBAiBC"}
@@ -0,0 +1,17 @@
1
+ declare type FieldMapping = {
2
+ header: string;
3
+ api_name?: string;
4
+ matched_by?: string;
5
+ save_key_while_fail?: boolean;
6
+ };
7
+ export declare type Import = {
8
+ name: string;
9
+ description?: string;
10
+ object_name: string;
11
+ encoding?: string;
12
+ value_separator?: string;
13
+ operation: 'insert' | 'update' | 'upsert';
14
+ field_mappings: [FieldMapping];
15
+ external_id_name?: string;
16
+ };
17
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/importLoader/types/import.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './import';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./import"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/importLoader/types/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB"}
package/lib/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * as triggerLoader from "./triggerLoader";
2
2
  export * as processLoader from "./processLoader";
3
3
  export * as processTriggerLoader from "./processTriggerLoader";
4
4
  export * as triggerYmlLoader from './loader/triggerYmlLoader';
5
+ export * as importLoader from './importLoader';
package/lib/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.triggerYmlLoader = exports.processTriggerLoader = exports.processLoader = exports.triggerLoader = void 0;
3
+ exports.importLoader = exports.triggerYmlLoader = exports.processTriggerLoader = exports.processLoader = exports.triggerLoader = void 0;
4
4
  exports.triggerLoader = require("./triggerLoader");
5
5
  exports.processLoader = require("./processLoader");
6
6
  exports.processTriggerLoader = require("./processTriggerLoader");
7
7
  exports.triggerYmlLoader = require("./loader/triggerYmlLoader");
8
+ exports.importLoader = require("./importLoader");
8
9
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAOA,mDAAgD;AAChD,mDAAgD;AAChD,iEAA8D;AAC9D,gEAA8D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAOA,mDAAgD;AAChD,mDAAgD;AAChD,iEAA8D;AAC9D,gEAA8D;AAC9D,iDAA8C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-package-loader",
3
- "version": "2.5.8-beta.2",
3
+ "version": "2.5.8-beta.4",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -10,9 +10,9 @@
10
10
  "author": "",
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
- "@steedos/metadata-core": "2.5.8-beta.2",
14
- "@steedos/metadata-registrar": "2.5.8-beta.2",
15
- "@steedos/router": "2.5.8-beta.2",
13
+ "@steedos/metadata-core": "2.5.8-beta.4",
14
+ "@steedos/metadata-registrar": "2.5.8-beta.4",
15
+ "@steedos/router": "2.5.8-beta.4",
16
16
  "clone": "^2.1.2",
17
17
  "moleculer": "^0.14.25",
18
18
  "underscore": "^1.12.0"
@@ -24,5 +24,5 @@
24
24
  "publishConfig": {
25
25
  "access": "public"
26
26
  },
27
- "gitHead": "d64d32507a636e9d0e403090c1b76934cca4ebb6"
27
+ "gitHead": "20c42d74f05012c94e87088ce1239bf03c260819"
28
28
  }
package/src/consts.ts ADDED
@@ -0,0 +1,17 @@
1
+ /*
2
+ * @Author: 孙浩林 sunhaolin@steedos.com
3
+ * @Date: 2023-07-10 13:54:16
4
+ * @LastEditors: 孙浩林 sunhaolin@steedos.com
5
+ * @LastEditTime: 2023-07-10 13:59:34
6
+ * @Description:
7
+ */
8
+
9
+ // 加载元数据文件时给的默认权限
10
+ export const METADATA_SYSTEM_PERMISSION = {
11
+ is_system: true,
12
+ record_permissions: {
13
+ allowEdit: false,
14
+ allowDelete: false,
15
+ allowRead: true,
16
+ }
17
+ }
@@ -0,0 +1,36 @@
1
+ /*
2
+ * @Author: 孙浩林 sunhaolin@steedos.com
3
+ * @Date: 2023-07-10 13:49:21
4
+ * @LastEditors: 孙浩林 sunhaolin@steedos.com
5
+ * @LastEditTime: 2023-07-10 14:05:05
6
+ * @FilePath: /project-template/Users/sunhaolin/Documents/GitHub/steedos-platform-2.3/services/service-package-loader/src/importLoader/index.ts
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ */
9
+
10
+ import { LoadImportFile } from '@steedos/metadata-core'
11
+ import { registerImport } from '@steedos/metadata-registrar'
12
+ import path = require('path');
13
+ import _ = require('lodash');
14
+ import { Import } from './types';
15
+ import { METADATA_SYSTEM_PERMISSION } from '../consts';
16
+
17
+ const loadImportFile = new LoadImportFile();
18
+
19
+ export async function load(broker: any, packagePath: string, packageServiceName: string) {
20
+ let filePath = path.join(packagePath, "**");
21
+ const metadatasJSON = loadImportFile.load(filePath);
22
+ if (_.isEmpty(metadatasJSON)) {
23
+ return;
24
+ }
25
+
26
+ // 注册到元数据中心
27
+ const data = [];
28
+ for (const apiName in metadatasJSON) {
29
+ const doc: Import = metadatasJSON[apiName];
30
+ data.push(Object.assign(doc, METADATA_SYSTEM_PERMISSION));
31
+ }
32
+ if (data.length > 0) {
33
+ await registerImport.mregister(broker, packageServiceName, data)
34
+ }
35
+
36
+ }
@@ -0,0 +1,26 @@
1
+ /*
2
+ * @Author: 孙浩林 sunhaolin@steedos.com
3
+ * @Date: 2023-07-10 13:50:03
4
+ * @LastEditors: 孙浩林 sunhaolin@steedos.com
5
+ * @LastEditTime: 2023-07-10 15:06:59
6
+ * @Description:
7
+ */
8
+
9
+ type FieldMapping = {
10
+ header: string, // 表头
11
+ api_name?: string, // 导入对象的字段
12
+ matched_by?: string, // 关联对象的key
13
+ save_key_while_fail?: boolean // 关联失败时保存key
14
+ }
15
+
16
+ export type Import = {
17
+ name: string, // API Name
18
+ description?: string, // 导入描述
19
+ object_name: string, // 导入对象
20
+ encoding?: string, // 字符代码 UTF8
21
+ value_separator?: string, // 值分隔符 ','
22
+ operation: 'insert' | 'update' | 'upsert', // 导入操作
23
+ field_mappings: [FieldMapping], // 映射关系
24
+ external_id_name?: string, // 表示数据唯一性字段(重复执行导入时根据此字段更新记录)
25
+ }
26
+
@@ -0,0 +1 @@
1
+ export * from './import';
package/src/index.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  /*
2
2
  * @Author: sunhaolin@hotoa.com
3
3
  * @Date: 2022-05-14 10:16:03
4
- * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2023-04-25 17:08:47
4
+ * @LastEditors: 孙浩林 sunhaolin@steedos.com
5
+ * @LastEditTime: 2023-07-10 14:02:11
6
6
  * @Description:
7
7
  */
8
8
  export * as triggerLoader from "./triggerLoader"
9
9
  export * as processLoader from "./processLoader"
10
10
  export * as processTriggerLoader from "./processTriggerLoader"
11
- export * as triggerYmlLoader from './loader/triggerYmlLoader';
11
+ export * as triggerYmlLoader from './loader/triggerYmlLoader';
12
+ export * as importLoader from './importLoader'