@goatlab/fluent 0.6.22 → 0.6.30
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/BaseConnector.d.ts +49 -82
- package/dist/BaseConnector.js +219 -319
- package/dist/Fluent.d.ts +2 -21
- package/dist/Fluent.js +0 -33
- package/dist/FluentEntity.d.ts +7 -0
- package/dist/FluentEntity.js +28 -0
- package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +34 -27
- package/dist/TypeOrmConnector/TypeOrmConnector.js +599 -343
- package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.d.ts +0 -0
- package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +182 -48
- package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +103 -3
- package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +30 -13
- package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.d.ts +5 -0
- package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.js +17 -0
- package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.d.ts +5 -0
- package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.js +17 -0
- package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.d.ts +3 -3
- package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +8 -3
- package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +1 -1
- package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +42 -16
- package/dist/TypeOrmConnector/test/basic/goat.entity.d.ts +43 -0
- package/dist/TypeOrmConnector/test/basic/goat.entity.js +19 -8
- package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.d.ts +5 -0
- package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.js +16 -0
- package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.d.ts +5 -0
- package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.js +16 -0
- package/dist/TypeOrmConnector/test/basic/goat.repository.d.ts +3 -4
- package/dist/TypeOrmConnector/test/basic/goat.repository.js +7 -3
- package/dist/TypeOrmConnector/test/dbEntities.d.ts +6 -6
- package/dist/TypeOrmConnector/test/dbEntities.js +0 -0
- package/dist/TypeOrmConnector/test/docker/docker.d.ts +35 -0
- package/dist/TypeOrmConnector/test/docker/docker.js +149 -0
- package/dist/TypeOrmConnector/test/docker/mysql.d.ts +17 -0
- package/dist/TypeOrmConnector/test/docker/mysql.js +132 -0
- package/dist/TypeOrmConnector/test/flock.d.ts +0 -0
- package/dist/TypeOrmConnector/test/flock.js +0 -0
- package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.d.ts +8 -0
- package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.js +23 -0
- package/dist/TypeOrmConnector/test/mongo/mongo.memory.d.ts +4 -0
- package/dist/TypeOrmConnector/test/mongo/mongo.memory.js +43 -0
- package/dist/TypeOrmConnector/test/mongo/mongoDatasource.d.ts +2 -0
- package/dist/TypeOrmConnector/test/mongo/mongoDatasource.js +12 -0
- package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.d.ts +8 -0
- package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.js +23 -0
- package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.d.ts +6 -0
- package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.js +17 -0
- package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.d.ts +10 -0
- package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.js +31 -0
- package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +6 -0
- package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.js +17 -0
- package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.d.ts +2 -0
- package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.js +16 -0
- package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.d.ts +8 -0
- package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.js +23 -0
- package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.d.ts +6 -0
- package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.js +17 -0
- package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.d.ts +10 -0
- package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.js +32 -0
- package/dist/TypeOrmConnector/test/relations/car/car.entity.d.ts +1 -0
- package/dist/TypeOrmConnector/test/relations/car/car.entity.js +13 -5
- package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.d.ts +3 -3
- package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +11 -4
- package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +38 -0
- package/dist/TypeOrmConnector/test/relations/car/car.schema.js +14 -0
- package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -0
- package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +85 -32
- package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +35 -0
- package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +16 -0
- package/dist/TypeOrmConnector/test/relations/roles/roles.entity.d.ts +0 -0
- package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +4 -4
- package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.d.ts +3 -3
- package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +12 -4
- package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.d.ts +2 -2
- package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +4 -4
- package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.d.ts +15 -0
- package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.js +9 -0
- package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +3 -3
- package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +8 -3
- package/dist/TypeOrmConnector/test/relations/user/user.entity.d.ts +0 -0
- package/dist/TypeOrmConnector/test/relations/user/user.entity.js +10 -10
- package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.d.ts +3 -3
- package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +17 -5
- package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +150 -0
- package/dist/TypeOrmConnector/test/relations/user/user.schema.js +18 -0
- package/dist/TypeOrmConnector/test/{memoryDataSource.d.ts → sqlite/memoryDataSource.d.ts} +0 -0
- package/dist/TypeOrmConnector/test/{memoryDataSource.js → sqlite/memoryDataSource.js} +1 -1
- package/dist/cache.d.ts +0 -0
- package/dist/cache.js +0 -0
- package/dist/core/Loopback/build-schema.d.ts +0 -0
- package/dist/core/Loopback/build-schema.js +1 -3
- package/dist/core/Loopback/common-types.d.ts +0 -0
- package/dist/core/Loopback/common-types.js +0 -0
- package/dist/core/Loopback/json-to-schema.d.ts +0 -0
- package/dist/core/Loopback/json-to-schema.js +6 -6
- package/dist/core/Loopback/mapValues.d.ts +2 -0
- package/dist/core/Loopback/mapValues.js +835 -0
- package/dist/core/Loopback/metadata.d.ts +0 -0
- package/dist/core/Loopback/metadata.js +0 -0
- package/dist/core/Loopback/model.d.ts +0 -0
- package/dist/core/Loopback/model.js +0 -0
- package/dist/core/Loopback/query.d.ts +0 -0
- package/dist/core/Loopback/query.js +6 -4
- package/dist/core/Loopback/relation.types.d.ts +0 -0
- package/dist/core/Loopback/relation.types.js +0 -0
- package/dist/core/Loopback/type-resolver.d.ts +1 -1
- package/dist/core/Loopback/type-resolver.js +0 -0
- package/dist/core/Loopback/type.d.ts +0 -0
- package/dist/core/Loopback/type.js +0 -0
- package/dist/core/Nestjs/applyDecorators.d.ts +1 -1
- package/dist/core/Nestjs/applyDecorators.js +0 -0
- package/dist/core/Nestjs/types/common.d.ts +0 -0
- package/dist/core/Nestjs/types/common.js +3 -1
- package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/api-property.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/api-property.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +1 -1
- package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/args-type.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/args-type.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/create-property.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/create-property.decorator.js +9 -4
- package/dist/core/Nestjs/types/decorators/directive.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/directive.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/extensions.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/extensions.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +1 -1
- package/dist/core/Nestjs/types/decorators/field.decorator.js +6 -6
- package/dist/core/Nestjs/types/decorators/input-type.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/input-type.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/interface-type.decorator.js +0 -0
- package/dist/core/Nestjs/types/decorators/partial-type.helper.d.ts +0 -0
- package/dist/core/Nestjs/types/decorators/partial-type.helper.js +0 -0
- package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -0
- package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -0
- package/dist/core/Nestjs/types/errors/directive-parsing.error.d.ts +0 -0
- package/dist/core/Nestjs/types/errors/directive-parsing.error.js +0 -0
- package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -0
- package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js +0 -0
- package/dist/core/Nestjs/types/errors/undefined-type.error.d.ts +0 -0
- package/dist/core/Nestjs/types/errors/undefined-type.error.js +0 -0
- package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -0
- package/dist/core/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/complexity.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/complexity.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js +0 -0
- package/dist/core/Nestjs/types/interfaces/type-options.interface.d.ts +0 -0
- package/dist/core/Nestjs/types/interfaces/type-options.interface.js +0 -0
- package/dist/core/Nestjs/types/lazy-metadata.storage.d.ts +0 -0
- package/dist/core/Nestjs/types/lazy-metadata.storage.js +3 -3
- package/dist/core/Nestjs/types/metadata/class.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/class.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/directive.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/directive.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/enum.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/enum.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/extensions.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/extensions.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/index.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/index.js +0 -0
- package/dist/core/Nestjs/types/metadata/interface.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/interface.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/object-type.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/object-type.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/param.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/param.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/property.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/property.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/resolver.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/resolver.metadata.js +0 -0
- package/dist/core/Nestjs/types/metadata/union.metadata.d.ts +0 -0
- package/dist/core/Nestjs/types/metadata/union.metadata.js +0 -0
- package/dist/core/Nestjs/types/object-type.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/object-type.decorator.js +0 -0
- package/dist/core/Nestjs/types/omit-type.d.ts +0 -0
- package/dist/core/Nestjs/types/omit-type.js +6 -2
- package/dist/core/Nestjs/types/reflection.utils.d.ts +1 -1
- package/dist/core/Nestjs/types/reflection.utils.js +9 -2
- package/dist/core/Nestjs/types/set-metadata.decorator.d.ts +0 -0
- package/dist/core/Nestjs/types/set-metadata.decorator.js +0 -0
- package/dist/core/Nestjs/types/type-metadata.storage.d.ts +0 -0
- package/dist/core/Nestjs/types/type-metadata.storage.js +4 -4
- package/dist/core/Nestjs/types/utils/enum.utils.d.ts +0 -0
- package/dist/core/Nestjs/types/utils/enum.utils.js +0 -0
- package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +1 -11
- package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -0
- package/dist/core/Nestjs/types/utils/mapped-types.utils.d.ts +0 -0
- package/dist/core/Nestjs/types/utils/mapped-types.utils.js +2 -2
- package/dist/core/Nestjs/types/utils/model-properties-accessor.d.ts +0 -0
- package/dist/core/Nestjs/types/utils/model-properties-accessor.js +0 -0
- package/dist/core/Nestjs/types/utils/type-helpers.utils.d.ts +0 -0
- package/dist/core/Nestjs/types/utils/type-helpers.utils.js +0 -0
- package/dist/core/types.d.ts +0 -0
- package/dist/core/types.js +0 -0
- package/dist/decorators.d.ts +25 -21
- package/dist/decorators.js +76 -70
- package/dist/generatorDatasource.d.ts +0 -0
- package/dist/generatorDatasource.js +0 -0
- package/dist/index.d.ts +6 -7
- package/dist/index.js +5 -7
- package/dist/loadRelations.d.ts +0 -0
- package/dist/loadRelations.js +108 -68
- package/dist/outputKeys.d.ts +0 -0
- package/dist/outputKeys.js +0 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +104 -60
- package/dist/types.js +20 -0
- package/package.json +12 -101
- package/dist/TypeOrmConnector/TypeOrmMongoConnector._bypass.d.ts +0 -1
- package/dist/TypeOrmConnector/TypeOrmMongoConnector._bypass.js +0 -52
- package/dist/TypeOrmConnector/TypeOrmMysqlConnector._bypass.d.ts +0 -1
- package/dist/TypeOrmConnector/TypeOrmMysqlConnector._bypass.js +0 -55
- package/dist/TypeOrmConnector/test/basic/goat.dto.d.ts +0 -8
- package/dist/TypeOrmConnector/test/basic/goat.dto.js +0 -18
- package/dist/TypeOrmConnector/test/relations/car/car.dto.d.ts +0 -5
- package/dist/TypeOrmConnector/test/relations/car/car.dto.js +0 -12
- package/dist/TypeOrmConnector/test/relations/roles/role.dto.d.ts +0 -5
- package/dist/TypeOrmConnector/test/relations/roles/role.dto.js +0 -12
- package/dist/TypeOrmConnector/test/relations/roles/roles_user.dto.d.ts +0 -5
- package/dist/TypeOrmConnector/test/relations/roles/roles_user.dto.js +0 -12
- package/dist/TypeOrmConnector/test/relations/user/user.dto.d.ts +0 -5
- package/dist/TypeOrmConnector/test/relations/user/user.dto.js +0 -12
- package/dist/core/dtos/access.dto.d.ts +0 -4
- package/dist/core/dtos/access.dto.js +0 -21
- package/dist/core/dtos/pagination.dto.d.ts +0 -13
- package/dist/core/dtos/pagination.dto.js +0 -62
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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) {
|
|
File without changes
|
|
File without changes
|
|
@@ -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():
|
|
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;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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;
|
|
File without changes
|
|
File without changes
|
|
@@ -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)
|
|
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';
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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 = (
|
|
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
|
-
...(
|
|
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 =
|
|
51
|
+
const isInputArray = Array.isArray(input);
|
|
47
52
|
const type = isInputArray ? input[0] : input;
|
|
48
53
|
return [type, isInputArray];
|
|
49
54
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
53
|
+
lazy_metadata_storage_1.LazyMetadataStorage.store(prototype?.constructor, applyMetadataFn, { isField: true });
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
exports.addFieldMetadata = addFieldMetadata;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
30
|
+
loadersToExecute = loadersToExecute?.concat(...(this.lazyMetadataByTarget.get(NO_TARGET_METADATA) || []));
|
|
31
31
|
if (!options.skipFieldLazyMetadata) {
|
|
32
|
-
loadersToExecute = loadersToExecute
|
|
32
|
+
loadersToExecute = loadersToExecute?.concat(...(this.lazyMetadataByTarget.get(FIELD_LAZY_METADATA) || []));
|
|
33
33
|
}
|
|
34
|
-
loadersToExecute
|
|
34
|
+
loadersToExecute?.forEach(func => func());
|
|
35
35
|
}
|
|
36
36
|
concatPrototypes(types) {
|
|
37
37
|
const typesWithPrototypes = types
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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) =>
|
|
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
|
|
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(
|
|
22
|
+
throw new undefined_type_error_1.UndefinedTypeError(get(prototype, 'constructor.name'), propertyKey, index);
|
|
16
23
|
}
|
|
17
24
|
if (explicitTypeFn) {
|
|
18
25
|
return {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
|
278
|
+
objectOrInterfaceTypeMetadata.properties?.push(fieldMetadata);
|
|
279
279
|
}
|
|
280
280
|
else {
|
|
281
281
|
const isEmpty = (arr) => arr.length === 0;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,13 +1,3 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { Type } from '../common';
|
|
3
|
-
|
|
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;
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
-
|
|
5
|
+
const identity = a => a;
|
|
6
|
+
function clonePluginMetadataFactory(target, parent, transformFn = identity) {
|
|
7
7
|
let targetMetadata = {};
|
|
8
8
|
do {
|
|
9
9
|
if (!parent.constructor) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/core/types.d.ts
CHANGED
|
File without changes
|
package/dist/core/types.js
CHANGED
|
File without changes
|