@ldsg/tables 0.3.24 → 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.
@@ -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
@@ -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;AAClF,OAAO,EAA6B,cAAc,EAAE,MAAM,SAAS,CAAC;AAEpE,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"}
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 utils_1 = require("./utils");
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, utils_1.addFields)({
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, utils_1.addQueryFields)({
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,2 @@
1
+ export * from './get-object-type-composer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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.24",
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/field-type": "0.3.24",
18
- "@ldsg/resource": "0.3.24",
19
- "@ldsg/resource-definition": "0.3.24",
20
- "@ldsg/handler": "0.3.24"
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.24",
34
- "@ldsg/graphql": "0.3.24",
35
- "@ldsg/object": "0.3.24",
36
- "@ldsg/object-field": "0.3.24",
37
- "@ldsg/types": "0.3.24",
38
- "@ldsg/workflow": "0.3.24"
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"