@goatlab/fluent 0.6.23 → 0.7.0

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.
Files changed (125) hide show
  1. package/dist/BaseConnector.d.ts +49 -82
  2. package/dist/BaseConnector.js +219 -319
  3. package/dist/Fluent.d.ts +2 -21
  4. package/dist/Fluent.js +0 -33
  5. package/dist/FluentEntity.d.ts +7 -0
  6. package/dist/FluentEntity.js +28 -0
  7. package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +34 -27
  8. package/dist/TypeOrmConnector/TypeOrmConnector.js +599 -343
  9. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +182 -48
  10. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +103 -3
  11. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +30 -13
  12. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.d.ts +5 -0
  13. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.js +17 -0
  14. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.d.ts +5 -0
  15. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.js +17 -0
  16. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.d.ts +3 -3
  17. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +8 -3
  18. package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +1 -1
  19. package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +42 -16
  20. package/dist/TypeOrmConnector/test/basic/goat.entity.d.ts +43 -0
  21. package/dist/TypeOrmConnector/test/basic/goat.entity.js +19 -8
  22. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.d.ts +5 -0
  23. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.js +16 -0
  24. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.d.ts +5 -0
  25. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.js +16 -0
  26. package/dist/TypeOrmConnector/test/basic/goat.repository.d.ts +3 -4
  27. package/dist/TypeOrmConnector/test/basic/goat.repository.js +7 -3
  28. package/dist/TypeOrmConnector/test/dbEntities.d.ts +6 -6
  29. package/dist/TypeOrmConnector/test/docker/docker.d.ts +35 -0
  30. package/dist/TypeOrmConnector/test/docker/docker.js +149 -0
  31. package/dist/TypeOrmConnector/test/docker/mysql.d.ts +17 -0
  32. package/dist/TypeOrmConnector/test/docker/mysql.js +132 -0
  33. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.d.ts +8 -0
  34. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.js +23 -0
  35. package/dist/TypeOrmConnector/test/mongo/mongo.memory.d.ts +4 -0
  36. package/dist/TypeOrmConnector/test/mongo/mongo.memory.js +43 -0
  37. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.d.ts +2 -0
  38. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.js +12 -0
  39. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.d.ts +8 -0
  40. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.js +23 -0
  41. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.d.ts +6 -0
  42. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.js +17 -0
  43. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.d.ts +10 -0
  44. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.js +31 -0
  45. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +6 -0
  46. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.js +17 -0
  47. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.d.ts +2 -0
  48. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.js +16 -0
  49. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.d.ts +8 -0
  50. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.js +23 -0
  51. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.d.ts +6 -0
  52. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.js +17 -0
  53. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.d.ts +10 -0
  54. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.js +32 -0
  55. package/dist/TypeOrmConnector/test/relations/car/car.entity.d.ts +1 -0
  56. package/dist/TypeOrmConnector/test/relations/car/car.entity.js +13 -5
  57. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.d.ts +3 -3
  58. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +11 -4
  59. package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +38 -0
  60. package/dist/TypeOrmConnector/test/relations/car/car.schema.js +14 -0
  61. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +85 -32
  62. package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +35 -0
  63. package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +16 -0
  64. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +4 -4
  65. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.d.ts +3 -3
  66. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +12 -4
  67. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.d.ts +2 -2
  68. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +4 -4
  69. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.d.ts +15 -0
  70. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.js +9 -0
  71. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +3 -3
  72. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +8 -3
  73. package/dist/TypeOrmConnector/test/relations/user/user.entity.js +10 -10
  74. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.d.ts +3 -3
  75. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +17 -5
  76. package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +150 -0
  77. package/dist/TypeOrmConnector/test/relations/user/user.schema.js +18 -0
  78. package/dist/TypeOrmConnector/test/{memoryDataSource.d.ts → sqlite/memoryDataSource.d.ts} +0 -0
  79. package/dist/TypeOrmConnector/test/{memoryDataSource.js → sqlite/memoryDataSource.js} +1 -1
  80. package/dist/core/Loopback/build-schema.js +1 -3
  81. package/dist/core/Loopback/json-to-schema.js +6 -6
  82. package/dist/core/Loopback/mapValues.d.ts +2 -0
  83. package/dist/core/Loopback/mapValues.js +835 -0
  84. package/dist/core/Loopback/query.js +6 -4
  85. package/dist/core/Loopback/type-resolver.d.ts +1 -1
  86. package/dist/core/Nestjs/applyDecorators.d.ts +1 -1
  87. package/dist/core/Nestjs/types/common.js +3 -1
  88. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +1 -1
  89. package/dist/core/Nestjs/types/decorators/create-property.decorator.js +9 -4
  90. package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +1 -1
  91. package/dist/core/Nestjs/types/decorators/field.decorator.js +6 -6
  92. package/dist/core/Nestjs/types/lazy-metadata.storage.js +3 -3
  93. package/dist/core/Nestjs/types/omit-type.js +6 -2
  94. package/dist/core/Nestjs/types/reflection.utils.d.ts +1 -1
  95. package/dist/core/Nestjs/types/reflection.utils.js +9 -2
  96. package/dist/core/Nestjs/types/type-metadata.storage.js +4 -4
  97. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +1 -11
  98. package/dist/core/Nestjs/types/utils/mapped-types.utils.js +2 -2
  99. package/dist/decorators.d.ts +25 -21
  100. package/dist/decorators.js +76 -70
  101. package/dist/index.d.ts +6 -7
  102. package/dist/index.js +5 -7
  103. package/dist/loadRelations.js +108 -68
  104. package/dist/tsconfig.tsbuildinfo +1 -1
  105. package/dist/types.d.ts +104 -60
  106. package/dist/types.js +20 -0
  107. package/package.json +11 -101
  108. package/dist/TypeOrmConnector/TypeOrmMongoConnector._bypass.d.ts +0 -1
  109. package/dist/TypeOrmConnector/TypeOrmMongoConnector._bypass.js +0 -52
  110. package/dist/TypeOrmConnector/TypeOrmMysqlConnector._bypass.d.ts +0 -1
  111. package/dist/TypeOrmConnector/TypeOrmMysqlConnector._bypass.js +0 -55
  112. package/dist/TypeOrmConnector/test/basic/goat.dto.d.ts +0 -8
  113. package/dist/TypeOrmConnector/test/basic/goat.dto.js +0 -18
  114. package/dist/TypeOrmConnector/test/relations/car/car.dto.d.ts +0 -5
  115. package/dist/TypeOrmConnector/test/relations/car/car.dto.js +0 -12
  116. package/dist/TypeOrmConnector/test/relations/roles/role.dto.d.ts +0 -5
  117. package/dist/TypeOrmConnector/test/relations/roles/role.dto.js +0 -12
  118. package/dist/TypeOrmConnector/test/relations/roles/roles_user.dto.d.ts +0 -5
  119. package/dist/TypeOrmConnector/test/relations/roles/roles_user.dto.js +0 -12
  120. package/dist/TypeOrmConnector/test/relations/user/user.dto.d.ts +0 -5
  121. package/dist/TypeOrmConnector/test/relations/user/user.dto.js +0 -12
  122. package/dist/core/dtos/access.dto.d.ts +0 -4
  123. package/dist/core/dtos/access.dto.js +0 -21
  124. package/dist/core/dtos/pagination.dto.d.ts +0 -13
  125. package/dist/core/dtos/pagination.dto.js +0 -62
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.filterTemplate = exports.FilterBuilder = exports.WhereBuilder = exports.isFilter = void 0;
4
- const tslib_1 = require("tslib");
5
- const assert_1 = tslib_1.__importDefault(require("assert"));
6
4
  const nonWhereFields = ['fields', 'order', 'limit', 'skip', 'offset', 'include'];
7
5
  const filterFields = ['where', ...nonWhereFields];
8
6
  function isFilter(candidate) {
@@ -142,7 +140,9 @@ class FilterBuilder {
142
140
  this.filter = f ?? {};
143
141
  }
144
142
  limit(limit) {
145
- (0, assert_1.default)(limit >= 1, `Limit ${limit} must a positive number`);
143
+ if (!(limit >= 1)) {
144
+ throw new Error(`Limit ${limit} must a positive number`);
145
+ }
146
146
  this.filter.limit = limit;
147
147
  return this;
148
148
  }
@@ -175,7 +175,9 @@ class FilterBuilder {
175
175
  return this;
176
176
  }
177
177
  validateOrder(order) {
178
- (0, assert_1.default)(order.match(/^[^\s]+( (ASC|DESC))?$/), `Invalid order: ${order}`);
178
+ if (!(order.match(/^[^\s]+( (ASC|DESC))?$/))) {
179
+ throw new Error(`Invalid order: ${order}`);
180
+ }
179
181
  }
180
182
  order(...o) {
181
183
  if (!this.filter.order) {
@@ -1,7 +1,7 @@
1
1
  import { Class } from './common-types';
2
2
  export declare type TypeResolver<Type extends Object, StaticMembers = Function> = () => Class<Type> & StaticMembers;
3
3
  export declare function isTypeResolver<T extends object>(fn: any): fn is TypeResolver<T>;
4
- export declare function Null(): any;
4
+ export declare function Null(): null;
5
5
  export declare function isBuiltinType(fn: Function): boolean;
6
6
  export declare function resolveType<T extends Object>(fn: TypeResolver<T> | Class<T>): Class<T>;
7
7
  export declare function resolveType<T>(fn: T): T;
@@ -1 +1 @@
1
- export declare function applyDecorators(...decorators: Array<ClassDecorator | MethodDecorator | PropertyDecorator>): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
1
+ export declare function applyDecorators(...decorators: Array<ClassDecorator | MethodDecorator | PropertyDecorator>): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -12,7 +12,9 @@ var ClassType;
12
12
  })(ClassType = exports.ClassType || (exports.ClassType = {}));
13
13
  function flatten(arr) {
14
14
  const flat = [].concat(...arr);
15
- return flat.some(Array.isArray) ? flatten(flat) : flat;
15
+ return (flat.some(Array.isArray)
16
+ ? flatten(flat)
17
+ : flat);
16
18
  }
17
19
  exports.flatten = flatten;
18
20
  const isUndefined = (obj) => typeof obj === 'undefined';
@@ -1,5 +1,5 @@
1
1
  import { Type } from '../common';
2
2
  export declare function applyIsOptionalDecorator(targetClass: Function, propertyKey: string): void;
3
- export declare function inheritValidationMetadata(parentClass: Type<any>, targetClass: Function, isPropertyInherited?: (key: string) => boolean): string[];
3
+ export declare function inheritValidationMetadata(parentClass: Type<any>, targetClass: Function, isPropertyInherited?: (key: string) => boolean): string[] | undefined;
4
4
  export declare function inheritTransformationMetadata(parentClass: Type<any>, targetClass: Function, isPropertyInherited?: (key: string) => boolean): void;
5
5
  export declare function inheritPropertyInitializers(target: Record<string, any>, sourceClass: Type<any>, isPropertyInherited?: (key: string) => boolean): void;
@@ -1,9 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTypeIsArrayTuple = exports.createPropertyDecorator = void 0;
4
- const lodash_1 = require("lodash");
5
4
  const type_metadata_storage_1 = require("../type-metadata.storage");
6
5
  const api_property_decorator_1 = require("./api-property.decorator");
6
+ const isUndefined = val => typeof val === 'undefined';
7
+ const OmitBy = (obj, check) => {
8
+ obj = { ...obj };
9
+ Object.entries(obj).forEach(([key, value]) => check(value) && delete obj[key]);
10
+ return obj;
11
+ };
7
12
  function createPropertyDecorator(metakey, metadata, overrideExisting = true) {
8
13
  return (target, propertyKey) => {
9
14
  const properties = Reflect.getMetadata(api_property_decorator_1.DECORATORS.API_MODEL_PROPERTIES_ARRAY, target) || [];
@@ -13,7 +18,7 @@ function createPropertyDecorator(metakey, metadata, overrideExisting = true) {
13
18
  }
14
19
  const existingMetadata = Reflect.getMetadata(metakey, target, propertyKey);
15
20
  if (existingMetadata) {
16
- const newMetadata = (0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined));
21
+ const newMetadata = OmitBy(metadata, isUndefined);
17
22
  const metadataToSave = overrideExisting
18
23
  ? {
19
24
  ...existingMetadata,
@@ -30,7 +35,7 @@ function createPropertyDecorator(metakey, metadata, overrideExisting = true) {
30
35
  Reflect.getMetadata('design:type', target, propertyKey);
31
36
  Reflect.defineMetadata(metakey, {
32
37
  type,
33
- ...(0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined))
38
+ ...OmitBy(metadata, isUndefined)
34
39
  }, target, propertyKey);
35
40
  }
36
41
  };
@@ -43,7 +48,7 @@ function getTypeIsArrayTuple(input, isArrayFlag) {
43
48
  if (isArrayFlag) {
44
49
  return [input, isArrayFlag];
45
50
  }
46
- const isInputArray = (0, lodash_1.isArray)(input);
51
+ const isInputArray = Array.isArray(input);
47
52
  const type = isInputArray ? input[0] : input;
48
53
  return [type, isInputArray];
49
54
  }
@@ -12,4 +12,4 @@ export interface FieldOptions extends BaseTypeOptions {
12
12
  export declare function Field(): PropertyDecorator & MethodDecorator;
13
13
  export declare function Field(options: FieldOptions): PropertyDecorator & MethodDecorator;
14
14
  export declare function Field(returnTypeFunction?: ReturnTypeFunc, options?: FieldOptions): PropertyDecorator & MethodDecorator;
15
- export declare function addFieldMetadata(typeOrOptions: ReturnTypeFunc | FieldOptions, fieldOptions: FieldOptions, prototype: Object, propertyKey?: string, descriptor?: TypedPropertyDescriptor<any>, loadEagerly?: boolean): void;
15
+ export declare function addFieldMetadata(typeOrOptions?: ReturnTypeFunc | FieldOptions, fieldOptions?: FieldOptions | undefined, prototype?: Object, propertyKey?: string, descriptor?: TypedPropertyDescriptor<any>, loadEagerly?: boolean): void;
@@ -21,16 +21,16 @@ function addFieldMetadata(typeOrOptions, fieldOptions, prototype, propertyKey, d
21
21
  const { typeFn: getType, options: typeOptions } = (0, reflection_utils_1.reflectTypeFromMetadata)({
22
22
  metadataKey: isResolverMethod ? 'design:returntype' : 'design:type',
23
23
  prototype,
24
- propertyKey,
24
+ propertyKey: propertyKey || '',
25
25
  explicitTypeFn: typeFunc,
26
26
  typeOptions: options
27
27
  });
28
28
  type_metadata_storage_1.TypeMetadataStorage.addClassFieldMetadata({
29
- name: propertyKey,
29
+ name: propertyKey || '',
30
30
  schemaName: options.name || propertyKey,
31
31
  typeFn: getType,
32
32
  options: typeOptions,
33
- target: prototype.constructor,
33
+ target: prototype?.constructor,
34
34
  description: options.description,
35
35
  deprecationReason: options.deprecationReason,
36
36
  complexity: options.complexity,
@@ -39,9 +39,9 @@ function addFieldMetadata(typeOrOptions, fieldOptions, prototype, propertyKey, d
39
39
  if (isResolver) {
40
40
  type_metadata_storage_1.TypeMetadataStorage.addResolverPropertyMetadata({
41
41
  kind: 'internal',
42
- methodName: propertyKey,
42
+ methodName: propertyKey || '',
43
43
  schemaName: options.name || propertyKey,
44
- target: prototype.constructor,
44
+ target: prototype?.constructor,
45
45
  complexity: options.complexity
46
46
  });
47
47
  }
@@ -50,7 +50,7 @@ function addFieldMetadata(typeOrOptions, fieldOptions, prototype, propertyKey, d
50
50
  applyMetadataFn();
51
51
  }
52
52
  else {
53
- lazy_metadata_storage_1.LazyMetadataStorage.store(prototype.constructor, applyMetadataFn, { isField: true });
53
+ lazy_metadata_storage_1.LazyMetadataStorage.store(prototype?.constructor, applyMetadataFn, { isField: true });
54
54
  }
55
55
  }
56
56
  exports.addFieldMetadata = addFieldMetadata;
@@ -27,11 +27,11 @@ class LazyMetadataStorageHost {
27
27
  let loadersToExecute = (0, common_1.flatten)(types
28
28
  .map(target => this.lazyMetadataByTarget.get(target))
29
29
  .filter(metadata => metadata));
30
- loadersToExecute = loadersToExecute.concat(...(this.lazyMetadataByTarget.get(NO_TARGET_METADATA) || []));
30
+ loadersToExecute = loadersToExecute?.concat(...(this.lazyMetadataByTarget.get(NO_TARGET_METADATA) || []));
31
31
  if (!options.skipFieldLazyMetadata) {
32
- loadersToExecute = loadersToExecute.concat(...(this.lazyMetadataByTarget.get(FIELD_LAZY_METADATA) || []));
32
+ loadersToExecute = loadersToExecute?.concat(...(this.lazyMetadataByTarget.get(FIELD_LAZY_METADATA) || []));
33
33
  }
34
- loadersToExecute.forEach(func => func());
34
+ loadersToExecute?.forEach(func => func());
35
35
  }
36
36
  concatPrototypes(types) {
37
37
  const typesWithPrototypes = types
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OmitType = void 0;
4
- const lodash_1 = require("lodash");
5
4
  const api_property_decorator_1 = require("./decorators/api-property.decorator");
6
5
  const mapped_types_utils_1 = require("./utils/mapped-types.utils");
7
6
  const model_properties_accessor_1 = require("./utils/model-properties-accessor");
8
7
  const apply_is_optional_decorator_1 = require("./decorators/apply-is-optional.decorator");
8
+ const omit = (obj, props) => {
9
+ obj = { ...obj };
10
+ props.forEach(prop => delete obj[prop]);
11
+ return obj;
12
+ };
9
13
  const modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor();
10
14
  function OmitType(classRef, keys) {
11
15
  const fields = modelPropertiesAccessor
@@ -19,7 +23,7 @@ function OmitType(classRef, keys) {
19
23
  }
20
24
  (0, apply_is_optional_decorator_1.inheritValidationMetadata)(classRef, OmitTypeClass, isInheritedPredicate);
21
25
  (0, apply_is_optional_decorator_1.inheritTransformationMetadata)(classRef, OmitTypeClass, isInheritedPredicate);
22
- (0, mapped_types_utils_1.clonePluginMetadataFactory)(OmitTypeClass, classRef.prototype, (metadata) => (0, lodash_1.omit)(metadata, keys));
26
+ (0, mapped_types_utils_1.clonePluginMetadataFactory)(OmitTypeClass, classRef.prototype, (metadata) => omit(metadata, keys));
23
27
  fields.forEach(propertyKey => {
24
28
  const metadata = Reflect.getMetadata(api_property_decorator_1.DECORATORS.API_MODEL_PROPERTIES, classRef.prototype, propertyKey);
25
29
  const decoratorFactory = (0, api_property_decorator_1.ApiProperty)(metadata);
@@ -2,7 +2,7 @@ import { GqlTypeReference, ReturnTypeFunc } from './interfaces/return-type-func.
2
2
  import { TypeOptions } from './interfaces/type-options.interface';
3
3
  export interface ReflectTypeOptions {
4
4
  metadataKey: 'design:type' | 'design:returntype' | 'design:paramtypes';
5
- prototype: Object;
5
+ prototype?: Object;
6
6
  propertyKey: string;
7
7
  explicitTypeFn?: ReturnTypeFunc;
8
8
  typeOptions?: TypeOptions;
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reflectTypeFromMetadata = void 0;
4
- const lodash_1 = require("lodash");
5
4
  const undefined_type_error_1 = require("./errors/undefined-type.error");
5
+ const get = (obj, path, defaultValue = undefined) => {
6
+ const travel = regexp => String.prototype.split
7
+ .call(path, regexp)
8
+ .filter(Boolean)
9
+ .reduce((res, key) => (res !== null && res !== undefined ? res[key] : res), obj);
10
+ const result = travel(/[,[\]]+?/) || travel(/[,[\].]+?/);
11
+ return result === undefined || result === obj ? defaultValue : result;
12
+ };
6
13
  const NOT_ALLOWED_TYPES = [Promise, Array, Object, Function];
7
14
  function reflectTypeFromMetadata(reflectOptions) {
8
15
  const { metadataKey, prototype, propertyKey, explicitTypeFn, typeOptions = {}, index } = reflectOptions;
@@ -12,7 +19,7 @@ function reflectTypeFromMetadata(reflectOptions) {
12
19
  const isNotAllowed = implicitType && NOT_ALLOWED_TYPES.includes(implicitType);
13
20
  if ((!explicitTypeFn && (!implicitType || isNotAllowed)) ||
14
21
  (!implicitType && !explicitTypeFn)) {
15
- throw new undefined_type_error_1.UndefinedTypeError((0, lodash_1.get)(prototype, 'constructor.name'), propertyKey, index);
22
+ throw new undefined_type_error_1.UndefinedTypeError(get(prototype, 'constructor.name'), propertyKey, index);
16
23
  }
17
24
  if (explicitTypeFn) {
18
25
  return {
@@ -240,7 +240,7 @@ class TypeMetadataStorageHost {
240
240
  .reduce((curr, acc) => ({ ...curr, ...acc.value }), {});
241
241
  item.objectTypeFn =
242
242
  item.kind === 'external'
243
- ? this.resolvers.find(belongsToClass).typeFn
243
+ ? this.resolvers?.find(belongsToClass)?.typeFn
244
244
  : () => item.target;
245
245
  if (item.kind === 'external') {
246
246
  this.compileExternalFieldResolverMetadata(item);
@@ -250,13 +250,13 @@ class TypeMetadataStorageHost {
250
250
  compileExternalFieldResolverMetadata(item) {
251
251
  const objectTypeRef = this.resolvers
252
252
  .find(el => (0, common_1.isTargetEqual)(el, item))
253
- .typeFn();
253
+ ?.typeFn();
254
254
  const objectOrInterfaceTypeMetadata = this.objectTypes.find(objTypeDef => objTypeDef.target === objectTypeRef) ||
255
255
  this.interfaces.find(interfaceTypeDef => interfaceTypeDef.target === objectTypeRef);
256
256
  if (!objectOrInterfaceTypeMetadata) {
257
257
  throw new cannot_determine_host_type_error_1.CannotDetermineHostTypeError(item.schemaName, objectTypeRef?.name);
258
258
  }
259
- const objectOrInterfaceTypeField = objectOrInterfaceTypeMetadata.properties.find(fieldDef => fieldDef.name === item.methodName);
259
+ const objectOrInterfaceTypeField = objectOrInterfaceTypeMetadata.properties?.find(fieldDef => fieldDef.name === item.methodName);
260
260
  if (!objectOrInterfaceTypeField) {
261
261
  if (!item.typeFn || !item.typeOptions) {
262
262
  throw new undefined_type_error_1.UndefinedTypeError(item.target.name, item.methodName);
@@ -275,7 +275,7 @@ class TypeMetadataStorageHost {
275
275
  complexity: item.complexity
276
276
  };
277
277
  this.addClassFieldMetadata(fieldMetadata);
278
- objectOrInterfaceTypeMetadata.properties.push(fieldMetadata);
278
+ objectOrInterfaceTypeMetadata.properties?.push(fieldMetadata);
279
279
  }
280
280
  else {
281
281
  const isEmpty = (arr) => arr.length === 0;
@@ -1,13 +1,3 @@
1
1
  import 'reflect-metadata';
2
2
  import { Type } from '../common';
3
- import { ArgsType } from '../decorators/args-type.decorator';
4
- import { InputType } from '../decorators/input-type.decorator';
5
- import { InterfaceType } from '../decorators/interface-type.decorator';
6
- import { PropertyMetadata } from '../metadata';
7
- import { ObjectType } from '../object-type.decorator';
8
- export declare function getFieldsAndDecoratorForType<T>(objType: Type<T>): {
9
- fields: PropertyMetadata[];
10
- decoratorFactory: ClassDecorator;
11
- };
12
- declare type ClassDecorator = typeof ArgsType | typeof InterfaceType | typeof ObjectType | typeof InputType;
13
- export {};
3
+ export declare function getFieldsAndDecoratorForType<T>(objType: Type<T>): any;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.clonePluginMetadataFactory = void 0;
4
- const lodash_1 = require("lodash");
5
4
  const type_metadata_storage_1 = require("../type-metadata.storage");
6
- function clonePluginMetadataFactory(target, parent, transformFn = lodash_1.identity) {
5
+ const identity = a => a;
6
+ function clonePluginMetadataFactory(target, parent, transformFn = identity) {
7
7
  let targetMetadata = {};
8
8
  do {
9
9
  if (!parent.constructor) {
@@ -1,43 +1,47 @@
1
+ import { ColumnType } from 'typeorm';
1
2
  import { Primitives } from './types';
2
3
  interface PropertyInterface {
3
4
  required?: boolean;
4
5
  unique?: boolean;
5
6
  hidden?: boolean;
7
+ type?: ColumnType;
6
8
  }
7
9
  interface EnumProperty {
8
10
  enum: any[];
9
11
  default?: Primitives;
10
12
  }
11
- export declare type ObjectTypeI<T> = new () => T;
13
+ export declare type DbEntity<T> = new () => T;
12
14
  interface ManyToManyInterface<T> {
13
- entity: (type?: any) => ObjectTypeI<T>;
15
+ entity: (type?: any) => DbEntity<T>;
14
16
  joinTableName: string;
15
17
  foreignKey: string;
16
18
  inverseForeignKey: string;
17
19
  }
18
20
  interface BelongsToInterface<T> {
19
- entity: (type?: any) => ObjectTypeI<T>;
21
+ entity: (type?: any) => DbEntity<T>;
20
22
  inverse: string | ((object: T) => any);
21
- pivotColumnName: string;
23
+ pivotColumnName?: string;
22
24
  }
23
25
  interface hasManyInterface<T> {
24
- entity: (type?: any) => ObjectTypeI<T>;
26
+ entity: (type?: any) => DbEntity<T>;
25
27
  inverse: string | ((object: T) => any);
26
28
  }
27
- export declare const Decorators: Readonly<{
28
- id: (isMongo?: boolean) => PropertyDecorator;
29
- entity: (name: string) => ClassDecorator;
30
- property: (params?: PropertyInterface) => PropertyDecorator;
31
- embed: (e: any) => PropertyDecorator;
32
- embedArray: (e: any, params?: PropertyInterface) => PropertyDecorator;
33
- array: (e: any, params?: PropertyInterface) => PropertyDecorator;
34
- Enum: (e: EnumProperty, params?: PropertyInterface) => PropertyDecorator;
35
- created: (e?: any) => PropertyDecorator;
36
- updated: (e?: any) => PropertyDecorator;
37
- version: (e?: any) => PropertyDecorator;
38
- deleted: (e?: any) => PropertyDecorator;
39
- belongsToMany: <T>({ entity, joinTableName, foreignKey, inverseForeignKey }: ManyToManyInterface<T>) => PropertyDecorator;
40
- hasMany: <T_1>({ entity, inverse }: hasManyInterface<T_1>) => PropertyDecorator;
41
- belongsTo: <T_2>({ entity, inverse, pivotColumnName }: BelongsToInterface<T_2>) => PropertyDecorator;
42
- }>;
29
+ export declare class DecoratorsClass {
30
+ id(): PropertyDecorator;
31
+ mongoId(): PropertyDecorator;
32
+ entity(name: string): ClassDecorator;
33
+ property(params?: PropertyInterface): PropertyDecorator;
34
+ embed(e: any): PropertyDecorator;
35
+ embedArray(e: any, params?: PropertyInterface): PropertyDecorator;
36
+ stringArray(e: any, params?: PropertyInterface): PropertyDecorator;
37
+ Enum(e: EnumProperty, params?: PropertyInterface): PropertyDecorator;
38
+ created(e?: any): PropertyDecorator;
39
+ updated(e?: any): PropertyDecorator;
40
+ deleted(e?: any): PropertyDecorator;
41
+ version(e?: any): PropertyDecorator;
42
+ belongsToMany<T>({ entity, joinTableName, foreignKey, inverseForeignKey }: ManyToManyInterface<T>): PropertyDecorator;
43
+ belongsTo<T>({ entity, inverse, pivotColumnName }: BelongsToInterface<T>): PropertyDecorator;
44
+ hasMany<T>({ entity, inverse }: hasManyInterface<T>): PropertyDecorator;
45
+ }
46
+ export declare const f: DecoratorsClass;
43
47
  export {};
@@ -1,98 +1,104 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Decorators = void 0;
3
+ exports.f = exports.DecoratorsClass = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
- const fireorm_1 = require("fireorm");
6
5
  const graphql_1 = require("graphql");
7
6
  const types_1 = require("./core/types");
8
7
  const applyDecorators_1 = require("./core/Nestjs/applyDecorators");
9
8
  const field_decorator_1 = require("./core/Nestjs/types/decorators/field.decorator");
10
- exports.Decorators = (() => {
11
- const id = (isMongo) => {
12
- isMongo = false;
13
- if (process.env.MAIN_DATABASE_TYPE === 'mongodb' || isMongo) {
14
- return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ObjectIdColumn)(), (0, typeorm_1.PrimaryGeneratedColumn)('uuid'), (0, types_1.ApiProperty)(), (0, field_decorator_1.Field)(() => graphql_1.GraphQLID), (0, typeorm_1.Column)());
15
- }
16
- return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.PrimaryGeneratedColumn)('uuid'), (0, types_1.ApiProperty)(), (0, field_decorator_1.Field)(() => graphql_1.GraphQLID), (0, typeorm_1.Column)());
17
- };
18
- const entity = (name) => {
9
+ const js_utils_1 = require("@goatlab/js-utils");
10
+ class DecoratorsClass {
11
+ id() {
12
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ObjectIdColumn)({ type: 'uuid' }), (0, typeorm_1.PrimaryGeneratedColumn)('uuid'), (0, types_1.ApiProperty)(), (0, field_decorator_1.Field)(() => graphql_1.GraphQLID));
13
+ }
14
+ mongoId() {
15
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ObjectIdColumn)(), (0, types_1.ApiProperty)(), (0, field_decorator_1.Field)(() => graphql_1.GraphQLID));
16
+ }
17
+ entity(name) {
19
18
  const PascalCase = name;
20
- return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Entity)({ name: PascalCase }), (0, types_1.ObjectType)(), (0, fireorm_1.Collection)(PascalCase));
21
- };
22
- const property = (params) => {
19
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Entity)({ name: PascalCase }), (0, types_1.ObjectType)());
20
+ }
21
+ property(params) {
23
22
  if (params && params.hidden) {
24
23
  return (0, applyDecorators_1.applyDecorators)((0, types_1.HideField)(), (0, typeorm_1.Column)({
25
24
  select: false,
26
- nullable: !params.required
25
+ nullable: !params.required,
26
+ type: params.type
27
27
  }), (0, types_1.ApiProperty)({
28
28
  nullable: !params.required,
29
29
  required: !!params.required
30
30
  }), (0, types_1.ApiHideProperty)());
31
31
  }
32
32
  return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)({
33
- nullable: !params.required
33
+ nullable: !params?.required
34
34
  }), (0, types_1.ApiProperty)({
35
- nullable: !params.required,
36
- required: !!params.required
35
+ nullable: !params?.required,
36
+ required: !!params?.required
37
37
  }), (0, field_decorator_1.Field)());
38
- };
39
- const embed = (e) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)(type => e), (0, types_1.ApiProperty)({ type: e }));
40
- const embedArray = (e, params) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)(type => e), (0, types_1.ApiProperty)({
41
- isArray: true,
42
- type: e,
43
- nullable: !params.required,
44
- required: !!params.required
45
- }));
46
- const array = (e, params) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)({
47
- type: 'simple-array',
48
- nullable: !params?.required
49
- }), (0, types_1.ApiProperty)({
50
- type: [e],
51
- nullable: !params?.required,
52
- required: !!params?.required
53
- }));
54
- const Enum = (e, params) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)({
55
- type: 'enum',
56
- enum: e.enum,
57
- default: e.default,
58
- nullable: !params.required
59
- }), (0, types_1.ApiProperty)({
60
- enum: e.enum,
61
- default: e.default,
62
- nullable: !params.required,
63
- required: !!params.required
64
- }));
65
- const created = (e) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.CreateDateColumn)(), (0, types_1.ApiProperty)());
66
- const updated = (e) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.UpdateDateColumn)(), (0, types_1.ApiProperty)());
67
- const deleted = (e) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.DeleteDateColumn)(), (0, types_1.ApiProperty)());
68
- const version = (e) => (0, applyDecorators_1.applyDecorators)((0, typeorm_1.VersionColumn)(), (0, types_1.ApiProperty)());
69
- function belongsToMany({ entity, joinTableName, foreignKey, inverseForeignKey }) {
38
+ }
39
+ embed(e) {
40
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)(type => e), (0, types_1.ApiProperty)({ type: e }));
41
+ }
42
+ embedArray(e, params) {
43
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)(type => e), (0, types_1.ApiProperty)({
44
+ isArray: true,
45
+ type: e,
46
+ nullable: !params?.required,
47
+ required: !!params?.required
48
+ }));
49
+ }
50
+ stringArray(e, params) {
51
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)({
52
+ type: 'simple-array',
53
+ nullable: !params?.required
54
+ }), (0, types_1.ApiProperty)({
55
+ type: [e],
56
+ nullable: !params?.required,
57
+ required: !!params?.required
58
+ }));
59
+ }
60
+ Enum(e, params) {
61
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)({
62
+ type: 'enum',
63
+ enum: e.enum,
64
+ default: e.default,
65
+ nullable: !params?.required
66
+ }), (0, types_1.ApiProperty)({
67
+ enum: e.enum,
68
+ default: e.default,
69
+ nullable: !params?.required,
70
+ required: !!params?.required
71
+ }));
72
+ }
73
+ created(e) {
74
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.CreateDateColumn)(), (0, types_1.ApiProperty)());
75
+ }
76
+ updated(e) {
77
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.UpdateDateColumn)(), (0, types_1.ApiProperty)());
78
+ }
79
+ deleted(e) {
80
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.DeleteDateColumn)(), (0, types_1.ApiProperty)());
81
+ }
82
+ version(e) {
83
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.VersionColumn)(), (0, types_1.ApiProperty)());
84
+ }
85
+ belongsToMany({ entity, joinTableName, foreignKey, inverseForeignKey }) {
70
86
  return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ManyToMany)(entity), (0, typeorm_1.JoinTable)({
71
87
  name: joinTableName,
72
88
  joinColumns: [{ name: foreignKey }],
73
89
  inverseJoinColumns: [{ name: inverseForeignKey }]
74
90
  }));
75
91
  }
76
- function belongsTo({ entity, inverse, pivotColumnName }) {
77
- return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ManyToOne)(entity, inverse), (0, typeorm_1.JoinColumn)({ name: pivotColumnName }));
92
+ belongsTo({ entity, inverse, pivotColumnName }) {
93
+ return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ManyToOne)(entity, inverse), (0, typeorm_1.JoinColumn)({
94
+ name: pivotColumnName,
95
+ referencedColumnName: 'id',
96
+ foreignKeyConstraintName: `${pivotColumnName}_id_${js_utils_1.Ids.nanoId()}`
97
+ }));
78
98
  }
79
- function hasMany({ entity, inverse }) {
99
+ hasMany({ entity, inverse }) {
80
100
  return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.OneToMany)(entity, inverse));
81
101
  }
82
- return Object.freeze({
83
- id,
84
- entity,
85
- property,
86
- embed,
87
- embedArray,
88
- array,
89
- Enum,
90
- created,
91
- updated,
92
- version,
93
- deleted,
94
- belongsToMany,
95
- hasMany,
96
- belongsTo
97
- });
98
- })();
102
+ }
103
+ exports.DecoratorsClass = DecoratorsClass;
104
+ exports.f = new DecoratorsClass();
package/dist/index.d.ts CHANGED
@@ -1,23 +1,22 @@
1
1
  import { ApiHideProperty, ApiProperty, Column, HideField, InputType, ObjectType, OmitType, PartialType, getModelSchemaRef } from './core/types';
2
- import type { BaseDataElement, DaoOutput, Deleted, Filter, LogicOperator, PaginatedData, Paginator, Paths, Primitives, PrimitivesArray, Sure, WhereClause } from './types';
3
- import { PaginationLinks, PaginationMeta } from './core/dtos/pagination.dto';
4
- import { Access } from './core/dtos/access.dto';
2
+ import type { AnyObject, Deleted, PaginatedData, Paginator, Primitives, PrimitivesArray, FluentQuery, QueryOutput, LoadedResult, FindByIdFilter, SingleQueryOutput } from './types';
3
+ import { LogicOperator } from './types';
5
4
  import { BaseConnector } from './BaseConnector';
6
5
  import { Collection } from '@goatlab/js-utils';
7
- import { Decorators } from './decorators';
6
+ import { f } from './decorators';
8
7
  import { Fluent } from './Fluent';
9
8
  import type { FluentConnectorInterface } from './BaseConnector';
10
9
  import type { SchemaObject } from './core/types';
11
- import { TypeOrmConnector } from './TypeOrmConnector/TypeOrmConnector';
10
+ import { getRelationsFromModelGenerator, TypeOrmConnector } from './TypeOrmConnector/TypeOrmConnector';
12
11
  import { getOutputKeys } from './outputKeys';
13
12
  import { loadRelations } from './loadRelations';
14
13
  import { modelGeneratorDataSource } from './generatorDatasource';
15
14
  import { Cache } from './cache';
16
15
  import { ValidationError } from 'class-validator';
17
16
  export { DataSource } from 'typeorm';
18
- export { Access, ApiHideProperty, ApiProperty, BaseConnector, Collection, Column, Decorators, Fluent, getModelSchemaRef, getOutputKeys, HideField, InputType, loadRelations, modelGeneratorDataSource, ObjectType, OmitType, PaginationLinks, PaginationMeta, PartialType, TypeOrmConnector, Cache };
17
+ export { ApiHideProperty, ApiProperty, BaseConnector, Collection, Column, f, Fluent, getModelSchemaRef, getOutputKeys, HideField, InputType, loadRelations, modelGeneratorDataSource, ObjectType, OmitType, PartialType, TypeOrmConnector, Cache, getRelationsFromModelGenerator, LogicOperator };
19
18
  interface ValidatedInput<T> {
20
19
  errors: ValidationError[] | null;
21
20
  result: Awaited<T>;
22
21
  }
23
- export type { BaseDataElement, DaoOutput, Deleted, Filter, FluentConnectorInterface, LogicOperator, PaginatedData, Paginator, Paths, Primitives, PrimitivesArray, Sure, WhereClause, SchemaObject, ValidatedInput };
22
+ export type { AnyObject, Deleted, FluentConnectorInterface, PaginatedData, Paginator, Primitives, PrimitivesArray, SchemaObject, ValidatedInput, FluentQuery, QueryOutput, LoadedResult, FindByIdFilter, SingleQueryOutput };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Cache = exports.TypeOrmConnector = exports.PartialType = exports.PaginationMeta = exports.PaginationLinks = exports.OmitType = exports.ObjectType = exports.modelGeneratorDataSource = exports.loadRelations = exports.InputType = exports.HideField = exports.getOutputKeys = exports.getModelSchemaRef = exports.Fluent = exports.Decorators = exports.Column = exports.Collection = exports.BaseConnector = exports.ApiProperty = exports.ApiHideProperty = exports.Access = exports.DataSource = void 0;
3
+ exports.LogicOperator = exports.getRelationsFromModelGenerator = exports.Cache = exports.TypeOrmConnector = exports.PartialType = exports.OmitType = exports.ObjectType = exports.modelGeneratorDataSource = exports.loadRelations = exports.InputType = exports.HideField = exports.getOutputKeys = exports.getModelSchemaRef = exports.Fluent = exports.f = exports.Column = exports.Collection = exports.BaseConnector = exports.ApiProperty = exports.ApiHideProperty = exports.DataSource = void 0;
4
4
  const types_1 = require("./core/types");
5
5
  Object.defineProperty(exports, "ApiHideProperty", { enumerable: true, get: function () { return types_1.ApiHideProperty; } });
6
6
  Object.defineProperty(exports, "ApiProperty", { enumerable: true, get: function () { return types_1.ApiProperty; } });
@@ -11,20 +11,18 @@ Object.defineProperty(exports, "ObjectType", { enumerable: true, get: function (
11
11
  Object.defineProperty(exports, "OmitType", { enumerable: true, get: function () { return types_1.OmitType; } });
12
12
  Object.defineProperty(exports, "PartialType", { enumerable: true, get: function () { return types_1.PartialType; } });
13
13
  Object.defineProperty(exports, "getModelSchemaRef", { enumerable: true, get: function () { return types_1.getModelSchemaRef; } });
14
- const pagination_dto_1 = require("./core/dtos/pagination.dto");
15
- Object.defineProperty(exports, "PaginationLinks", { enumerable: true, get: function () { return pagination_dto_1.PaginationLinks; } });
16
- Object.defineProperty(exports, "PaginationMeta", { enumerable: true, get: function () { return pagination_dto_1.PaginationMeta; } });
17
- const access_dto_1 = require("./core/dtos/access.dto");
18
- Object.defineProperty(exports, "Access", { enumerable: true, get: function () { return access_dto_1.Access; } });
14
+ const types_2 = require("./types");
15
+ Object.defineProperty(exports, "LogicOperator", { enumerable: true, get: function () { return types_2.LogicOperator; } });
19
16
  const BaseConnector_1 = require("./BaseConnector");
20
17
  Object.defineProperty(exports, "BaseConnector", { enumerable: true, get: function () { return BaseConnector_1.BaseConnector; } });
21
18
  const js_utils_1 = require("@goatlab/js-utils");
22
19
  Object.defineProperty(exports, "Collection", { enumerable: true, get: function () { return js_utils_1.Collection; } });
23
20
  const decorators_1 = require("./decorators");
24
- Object.defineProperty(exports, "Decorators", { enumerable: true, get: function () { return decorators_1.Decorators; } });
21
+ Object.defineProperty(exports, "f", { enumerable: true, get: function () { return decorators_1.f; } });
25
22
  const Fluent_1 = require("./Fluent");
26
23
  Object.defineProperty(exports, "Fluent", { enumerable: true, get: function () { return Fluent_1.Fluent; } });
27
24
  const TypeOrmConnector_1 = require("./TypeOrmConnector/TypeOrmConnector");
25
+ Object.defineProperty(exports, "getRelationsFromModelGenerator", { enumerable: true, get: function () { return TypeOrmConnector_1.getRelationsFromModelGenerator; } });
28
26
  Object.defineProperty(exports, "TypeOrmConnector", { enumerable: true, get: function () { return TypeOrmConnector_1.TypeOrmConnector; } });
29
27
  const outputKeys_1 = require("./outputKeys");
30
28
  Object.defineProperty(exports, "getOutputKeys", { enumerable: true, get: function () { return outputKeys_1.getOutputKeys; } });