@ldsg/tables 0.3.23 → 0.3.25
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/resource.d.ts +1 -1
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +4 -3
- package/dist/utils/handle-table-info-list/index.d.ts +14 -0
- package/dist/utils/handle-table-info-list/index.d.ts.map +1 -0
- package/dist/utils/handle-table-info-list/index.js +26 -0
- package/dist/utils/handle-table-info-list/utils/get-object-type-composer.d.ts +18 -0
- package/dist/utils/handle-table-info-list/utils/get-object-type-composer.d.ts.map +1 -0
- package/dist/utils/handle-table-info-list/utils/get-object-type-composer.js +47 -0
- package/dist/utils/handle-table-info-list/utils/index.d.ts +2 -0
- package/dist/utils/handle-table-info-list/utils/index.d.ts.map +1 -0
- package/dist/utils/handle-table-info-list/utils/index.js +17 -0
- package/package.json +11 -11
package/dist/resource.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { PlatformsParams } from '@ldsg/field-type';
|
|
|
2
2
|
import { ModifyGraphQLSchema } from '@ldsg/graphql';
|
|
3
3
|
import { Resource } from '@ldsg/resource';
|
|
4
4
|
import { TableInfo, TablesSpecificResourceSettings } from './types';
|
|
5
|
-
import { MongooseModels } from './utils';
|
|
5
|
+
import { MongooseModels } from './utils/handle-table-info-list';
|
|
6
6
|
interface GetTableInfoListRes {
|
|
7
7
|
/**
|
|
8
8
|
* Table Info List
|
package/dist/resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAgB,SAAS,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAgB,SAAS,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAElF,OAAO,EAAE,cAAc,EAAuB,MAAM,gCAAgC,CAAC;AAErF,UAAU,mBAAmB;IAC3B;;OAEG;IACH,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED,KAAK,gBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,mBAAmB,CAAC;AAE1E,qBAAa,cAAe,SAAQ,QAAQ,CAAC,8BAA8B,CAAC;IAC1E,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,gBAAgB,EAAE,gBAAgB,CAoBhC;IAEF,mBAAmB,EAAE,mBAAmB,CAgBtC;CACH"}
|
package/dist/resource.js
CHANGED
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.TablesResource = void 0;
|
|
7
7
|
const resource_1 = require("@ldsg/resource");
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const
|
|
9
|
+
const add_query_fields_1 = require("./utils/add-query-fields");
|
|
10
|
+
const handle_table_info_list_1 = require("./utils/handle-table-info-list");
|
|
10
11
|
class TablesResource extends resource_1.Resource {
|
|
11
12
|
constructor() {
|
|
12
13
|
super(...arguments);
|
|
@@ -28,12 +29,12 @@ class TablesResource extends resource_1.Resource {
|
|
|
28
29
|
this.modifyGraphQLSchema = (params) => {
|
|
29
30
|
const { schemaComposer } = params;
|
|
30
31
|
const { tableInfoList } = this.getTableInfoList();
|
|
31
|
-
const { mongooseModels } = (0,
|
|
32
|
+
const { mongooseModels } = (0, handle_table_info_list_1.handleTableInfoList)({
|
|
32
33
|
tableInfoList,
|
|
33
34
|
schemaComposer
|
|
34
35
|
});
|
|
35
36
|
this.mongooseModels = mongooseModels;
|
|
36
|
-
(0,
|
|
37
|
+
(0, add_query_fields_1.addQueryFields)({
|
|
37
38
|
tableInfoList,
|
|
38
39
|
schemaComposer
|
|
39
40
|
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SchemaComposerParams } from '@ldsg/graphql';
|
|
2
|
+
import mongoose from 'mongoose';
|
|
3
|
+
import { TableInfo } from '../../types';
|
|
4
|
+
interface HandleTableInfoListParams extends SchemaComposerParams {
|
|
5
|
+
tableInfoList: TableInfo[];
|
|
6
|
+
}
|
|
7
|
+
export type MongooseModels = Record<string, mongoose.Model<any>>;
|
|
8
|
+
interface HandleTableInfoListRes {
|
|
9
|
+
mongooseModels: MongooseModels;
|
|
10
|
+
}
|
|
11
|
+
type HandleTableInfoList = (params: HandleTableInfoListParams) => HandleTableInfoListRes;
|
|
12
|
+
export declare const handleTableInfoList: HandleTableInfoList;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/handle-table-info-list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,UAAU,yBAA0B,SAAQ,oBAAoB;IAC9D,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjE,UAAU,sBAAsB;IAC9B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,KAAK,mBAAmB,GAAG,CAAC,MAAM,EAAE,yBAAyB,KAAK,sBAAsB,CAAC;AAEzF,eAAO,MAAM,mBAAmB,EAAE,mBAsBjC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.handleTableInfoList = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
const handleTableInfoList = (params) => {
|
|
10
|
+
const { schemaComposer, tableInfoList } = params;
|
|
11
|
+
const mongooseModels = {};
|
|
12
|
+
lodash_1.default.each(tableInfoList, (tableInfo) => {
|
|
13
|
+
const { name: tableName, objectInfo } = tableInfo;
|
|
14
|
+
const { modelName, mongooseModel } = (0, utils_1.getObjectTC)({
|
|
15
|
+
tableName,
|
|
16
|
+
objectInfo,
|
|
17
|
+
schemaComposer
|
|
18
|
+
});
|
|
19
|
+
mongooseModels[modelName] = mongooseModel;
|
|
20
|
+
});
|
|
21
|
+
const res = {
|
|
22
|
+
mongooseModels
|
|
23
|
+
};
|
|
24
|
+
return res;
|
|
25
|
+
};
|
|
26
|
+
exports.handleTableInfoList = handleTableInfoList;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ObjectInfo } from '@ldsg/object';
|
|
2
|
+
import { SchemaComposer } from 'graphql-compose';
|
|
3
|
+
import { ObjectTypeComposerWithMongooseResolvers } from 'graphql-compose-mongoose';
|
|
4
|
+
import mongoose from 'mongoose';
|
|
5
|
+
interface GetObjectTCParams {
|
|
6
|
+
tableName: string;
|
|
7
|
+
objectInfo: ObjectInfo;
|
|
8
|
+
schemaComposer: SchemaComposer;
|
|
9
|
+
}
|
|
10
|
+
interface GetObjectTCRes {
|
|
11
|
+
modelName: string;
|
|
12
|
+
mongooseModel: mongoose.Model<any>;
|
|
13
|
+
objectTypeComposer: ObjectTypeComposerWithMongooseResolvers<mongoose.Document<any, any, any>, any>;
|
|
14
|
+
}
|
|
15
|
+
type GetObjectTC = (params: GetObjectTCParams) => GetObjectTCRes;
|
|
16
|
+
export declare const getObjectTC: GetObjectTC;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=get-object-type-composer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-object-type-composer.d.ts","sourceRoot":"","sources":["../../../../src/utils/handle-table-info-list/utils/get-object-type-composer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAmB,uCAAuC,EAAE,MAAM,0BAA0B,CAAC;AAEpG,OAAO,QAA8B,MAAM,UAAU,CAAC;AAEtD,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,kBAAkB,EAAE,uCAAuC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;CACpG;AAED,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,iBAAiB,KAAK,cAAc,CAAC;AAEjE,eAAO,MAAM,WAAW,EAAE,WA0DzB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getObjectTC = void 0;
|
|
7
|
+
const graphql_compose_mongoose_1 = require("graphql-compose-mongoose");
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
const mongoose_1 = __importDefault(require("mongoose"));
|
|
10
|
+
const getObjectTC = (params) => {
|
|
11
|
+
const { tableName, objectInfo, schemaComposer } = params;
|
|
12
|
+
const { fieldInfoList } = objectInfo;
|
|
13
|
+
const mongooseSchemaDefinition = {};
|
|
14
|
+
lodash_1.default.each(fieldInfoList, (fieldInfo) => {
|
|
15
|
+
const { name, typeInfo: { platformToTypeMap } } = fieldInfo;
|
|
16
|
+
const { COMMON, MONGOOSE } = platformToTypeMap;
|
|
17
|
+
const type = MONGOOSE !== null && MONGOOSE !== void 0 ? MONGOOSE : COMMON;
|
|
18
|
+
const fieldName = lodash_1.default.camelCase(name);
|
|
19
|
+
mongooseSchemaDefinition[fieldName] = type;
|
|
20
|
+
});
|
|
21
|
+
const collectionName = lodash_1.default.snakeCase(tableName);
|
|
22
|
+
const mongooseSchema = new mongoose_1.default.Schema(mongooseSchemaDefinition, {
|
|
23
|
+
collection: collectionName
|
|
24
|
+
});
|
|
25
|
+
const modelName = tableName;
|
|
26
|
+
const mongooseModel = mongoose_1.default.models[modelName]
|
|
27
|
+
? mongoose_1.default.model(modelName)
|
|
28
|
+
: mongoose_1.default.model(modelName, mongooseSchema);
|
|
29
|
+
const customizationOptions = {
|
|
30
|
+
schemaComposer: schemaComposer,
|
|
31
|
+
schema: mongooseSchema
|
|
32
|
+
};
|
|
33
|
+
const objectTypeComposer = (0, graphql_compose_mongoose_1.composeMongoose)(mongooseModel, customizationOptions);
|
|
34
|
+
const mongooseResolverKeys = Object.keys(objectTypeComposer.mongooseResolvers);
|
|
35
|
+
mongooseResolverKeys.forEach((key) => {
|
|
36
|
+
const mongooseResolver = objectTypeComposer.mongooseResolvers[key];
|
|
37
|
+
objectTypeComposer.addResolver(mongooseResolver());
|
|
38
|
+
});
|
|
39
|
+
schemaComposer.addSchemaMustHaveType(objectTypeComposer);
|
|
40
|
+
const res = {
|
|
41
|
+
modelName,
|
|
42
|
+
mongooseModel,
|
|
43
|
+
objectTypeComposer
|
|
44
|
+
};
|
|
45
|
+
return res;
|
|
46
|
+
};
|
|
47
|
+
exports.getObjectTC = getObjectTC;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/handle-table-info-list/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./get-object-type-composer"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ldsg/tables",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.25",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"graphql-compose-mongoose": "^10.0.0",
|
|
15
15
|
"lodash": "^4.17.21",
|
|
16
16
|
"mongoose": "^8.14.3",
|
|
17
|
-
"@ldsg/
|
|
18
|
-
"@ldsg/
|
|
19
|
-
"@ldsg/resource
|
|
20
|
-
"@ldsg/
|
|
17
|
+
"@ldsg/handler": "0.3.25",
|
|
18
|
+
"@ldsg/resource-definition": "0.3.25",
|
|
19
|
+
"@ldsg/resource": "0.3.25",
|
|
20
|
+
"@ldsg/field-type": "0.3.25"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/jest": "^29.5.2",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"ts-jest": "^29.1.5",
|
|
31
31
|
"ts-node": "^10.9.2",
|
|
32
32
|
"typescript": "^5.8.3",
|
|
33
|
-
"@ldsg/application": "0.3.
|
|
34
|
-
"@ldsg/graphql": "0.3.
|
|
35
|
-
"@ldsg/object": "0.3.
|
|
36
|
-
"@ldsg/object-field": "0.3.
|
|
37
|
-
"@ldsg/types": "0.3.
|
|
38
|
-
"@ldsg/workflow": "0.3.
|
|
33
|
+
"@ldsg/application": "0.3.25",
|
|
34
|
+
"@ldsg/graphql": "0.3.25",
|
|
35
|
+
"@ldsg/object": "0.3.25",
|
|
36
|
+
"@ldsg/object-field": "0.3.25",
|
|
37
|
+
"@ldsg/types": "0.3.25",
|
|
38
|
+
"@ldsg/workflow": "0.3.25"
|
|
39
39
|
},
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|