@goatlab/fluent 0.6.4 → 0.6.7
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/TypeOrmConnector/TypeOrmConnector.d.ts +2 -2
- package/dist/TypeOrmConnector/TypeOrmConnector.js +7 -5
- package/dist/index.d.ts +2 -1
- package/package.json +2 -2
- package/dist/BaseConnector.d.ts +0 -79
- package/dist/BaseConnector.js +0 -361
- package/dist/Fluent.d.ts +0 -26
- package/dist/Fluent.js +0 -52
- package/dist/TypeOrmConnector/TypeOrmMongoConnector._bypass.js +0 -52
- package/dist/TypeOrmConnector/TypeOrmMysqlConnector._bypass.js +0 -55
- package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.d.ts +0 -1
- package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +0 -114
- package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +0 -16
- package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +0 -57
- package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +0 -11
- package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +0 -1
- package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +0 -45
- 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/basic/goat.entity.d.ts +0 -10
- package/dist/TypeOrmConnector/test/basic/goat.entity.js +0 -42
- package/dist/TypeOrmConnector/test/basic/goat.repository.js +0 -11
- package/dist/TypeOrmConnector/test/flock.d.ts +0 -4
- package/dist/TypeOrmConnector/test/flock.js +0 -25
- 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/car/car.entity.d.ts +0 -7
- package/dist/TypeOrmConnector/test/relations/car/car.entity.js +0 -32
- package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +0 -13
- package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -1
- package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +0 -93
- 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.entity.d.ts +0 -6
- package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +0 -29
- package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +0 -14
- 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/roles/roles_user.entity.d.ts +0 -5
- package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +0 -23
- package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -11
- 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/TypeOrmConnector/test/relations/user/user.entity.d.ts +0 -14
- package/dist/TypeOrmConnector/test/relations/user/user.entity.js +0 -56
- package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +0 -16
- package/dist/core/Loopback/build-schema.d.ts +0 -31
- package/dist/core/Loopback/build-schema.js +0 -335
- package/dist/core/Loopback/common-types.d.ts +0 -36
- package/dist/core/Loopback/common-types.js +0 -13
- package/dist/core/Loopback/json-to-schema.d.ts +0 -6
- package/dist/core/Loopback/json-to-schema.js +0 -96
- package/dist/core/Loopback/metadata.d.ts +0 -9
- package/dist/core/Loopback/metadata.js +0 -28
- package/dist/core/Loopback/model.d.ts +0 -87
- package/dist/core/Loopback/model.js +0 -244
- package/dist/core/Loopback/query.d.ts +0 -97
- package/dist/core/Loopback/query.js +0 -290
- package/dist/core/Loopback/relation.types.d.ts +0 -45
- package/dist/core/Loopback/relation.types.js +0 -13
- package/dist/core/Loopback/type-resolver.d.ts +0 -7
- package/dist/core/Loopback/type-resolver.js +0 -34
- package/dist/core/Loopback/type.d.ts +0 -9
- package/dist/core/Loopback/type.js +0 -2
- package/dist/core/Nestjs/applyDecorators.d.ts +0 -1
- package/dist/core/Nestjs/applyDecorators.js +0 -17
- package/dist/core/Nestjs/types/common.d.ts +0 -16
- package/dist/core/Nestjs/types/common.js +0 -35
- package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -1
- package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js +0 -7
- package/dist/core/Nestjs/types/decorators/api-property.decorator.d.ts +0 -27
- package/dist/core/Nestjs/types/decorators/api-property.decorator.js +0 -65
- package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +0 -5
- package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -131
- package/dist/core/Nestjs/types/decorators/args-type.decorator.d.ts +0 -1
- package/dist/core/Nestjs/types/decorators/args-type.decorator.js +0 -19
- package/dist/core/Nestjs/types/decorators/create-property.decorator.d.ts +0 -2
- package/dist/core/Nestjs/types/decorators/create-property.decorator.js +0 -50
- package/dist/core/Nestjs/types/decorators/directive.decorator.d.ts +0 -1
- package/dist/core/Nestjs/types/decorators/directive.decorator.js +0 -36
- package/dist/core/Nestjs/types/decorators/extensions.decorator.d.ts +0 -1
- package/dist/core/Nestjs/types/decorators/extensions.decorator.js +0 -25
- package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +0 -15
- package/dist/core/Nestjs/types/decorators/field.decorator.js +0 -56
- package/dist/core/Nestjs/types/decorators/input-type.decorator.d.ts +0 -7
- package/dist/core/Nestjs/types/decorators/input-type.decorator.js +0 -23
- package/dist/core/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -9
- package/dist/core/Nestjs/types/decorators/interface-type.decorator.js +0 -27
- package/dist/core/Nestjs/types/decorators/partial-type.helper.d.ts +0 -3
- package/dist/core/Nestjs/types/decorators/partial-type.helper.js +0 -42
- package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -3
- package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -9
- package/dist/core/Nestjs/types/errors/directive-parsing.error.d.ts +0 -3
- package/dist/core/Nestjs/types/errors/directive-parsing.error.js +0 -9
- package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -3
- package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js +0 -9
- package/dist/core/Nestjs/types/errors/undefined-type.error.d.ts +0 -3
- package/dist/core/Nestjs/types/errors/undefined-type.error.js +0 -10
- package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -3
- package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -10
- package/dist/core/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -5
- package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -5
- package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/complexity.interface.d.ts +0 -11
- package/dist/core/Nestjs/types/interfaces/complexity.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -15
- package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -235
- package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -2
- package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -5
- package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -9
- package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js +0 -2
- package/dist/core/Nestjs/types/interfaces/type-options.interface.d.ts +0 -5
- package/dist/core/Nestjs/types/interfaces/type-options.interface.js +0 -2
- package/dist/core/Nestjs/types/lazy-metadata.storage.d.ts +0 -15
- package/dist/core/Nestjs/types/lazy-metadata.storage.js +0 -67
- package/dist/core/Nestjs/types/metadata/class.metadata.d.ts +0 -11
- package/dist/core/Nestjs/types/metadata/class.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/directive.metadata.d.ts +0 -8
- package/dist/core/Nestjs/types/metadata/directive.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/enum.metadata.d.ts +0 -11
- package/dist/core/Nestjs/types/metadata/enum.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/extensions.metadata.d.ts +0 -8
- package/dist/core/Nestjs/types/metadata/extensions.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/index.d.ts +0 -8
- package/dist/core/Nestjs/types/metadata/index.js +0 -11
- package/dist/core/Nestjs/types/metadata/interface.metadata.d.ts +0 -6
- package/dist/core/Nestjs/types/metadata/interface.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/object-type.metadata.d.ts +0 -4
- package/dist/core/Nestjs/types/metadata/object-type.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/param.metadata.d.ts +0 -18
- package/dist/core/Nestjs/types/metadata/param.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/property.metadata.d.ts +0 -20
- package/dist/core/Nestjs/types/metadata/property.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/resolver.metadata.d.ts +0 -34
- package/dist/core/Nestjs/types/metadata/resolver.metadata.js +0 -2
- package/dist/core/Nestjs/types/metadata/union.metadata.d.ts +0 -9
- package/dist/core/Nestjs/types/metadata/union.metadata.js +0 -2
- package/dist/core/Nestjs/types/object-type.decorator.d.ts +0 -8
- package/dist/core/Nestjs/types/object-type.decorator.js +0 -25
- package/dist/core/Nestjs/types/omit-type.d.ts +0 -2
- package/dist/core/Nestjs/types/omit-type.js +0 -30
- package/dist/core/Nestjs/types/reflection.utils.d.ts +0 -15
- package/dist/core/Nestjs/types/reflection.utils.js +0 -58
- package/dist/core/Nestjs/types/set-metadata.decorator.d.ts +0 -4
- package/dist/core/Nestjs/types/set-metadata.decorator.js +0 -16
- package/dist/core/Nestjs/types/type-metadata.storage.d.ts +0 -69
- package/dist/core/Nestjs/types/type-metadata.storage.js +0 -342
- package/dist/core/Nestjs/types/utils/enum.utils.d.ts +0 -3
- package/dist/core/Nestjs/types/utils/enum.utils.js +0 -29
- package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +0 -13
- package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -72
- package/dist/core/Nestjs/types/utils/mapped-types.utils.d.ts +0 -2
- package/dist/core/Nestjs/types/utils/mapped-types.utils.js +0 -38
- package/dist/core/Nestjs/types/utils/model-properties-accessor.d.ts +0 -6
- package/dist/core/Nestjs/types/utils/model-properties-accessor.js +0 -36
- package/dist/core/Nestjs/types/utils/type-helpers.utils.d.ts +0 -2
- package/dist/core/Nestjs/types/utils/type-helpers.utils.js +0 -16
- package/dist/core/database/createConnection.d.ts +0 -30
- package/dist/core/database/createConnection.js +0 -43
- package/dist/core/database/decorators.d.ts +0 -43
- package/dist/core/database/decorators.js +0 -98
- 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
- package/dist/core/types.d.ts +0 -23
- package/dist/core/types.js +0 -29
- package/dist/generatorDatasource.d.ts +0 -2
- package/dist/generatorDatasource.js +0 -12
- package/dist/index.js +0 -31
- package/dist/loadRelations.js +0 -92
- package/dist/outputKeys.d.ts +0 -2
- package/dist/outputKeys.js +0 -17
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/types.d.ts +0 -85
- package/dist/types.js +0 -2
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelPropertiesAccessor = void 0;
|
|
4
|
-
const common_1 = require("../common");
|
|
5
|
-
require("reflect-metadata");
|
|
6
|
-
const api_property_decorator_1 = require("../decorators/api-property.decorator");
|
|
7
|
-
const type_metadata_storage_1 = require("../type-metadata.storage");
|
|
8
|
-
class ModelPropertiesAccessor {
|
|
9
|
-
getModelProperties(prototype) {
|
|
10
|
-
const properties = Reflect.getMetadata(api_property_decorator_1.DECORATORS.API_MODEL_PROPERTIES_ARRAY, prototype) ||
|
|
11
|
-
[];
|
|
12
|
-
return properties
|
|
13
|
-
.filter(common_1.isString)
|
|
14
|
-
.filter((key) => key.charAt(0) === ':' && !(0, common_1.isFunction)(prototype[key]))
|
|
15
|
-
.map((key) => key.slice(1));
|
|
16
|
-
}
|
|
17
|
-
applyMetadataFactory(prototype) {
|
|
18
|
-
const classPrototype = prototype;
|
|
19
|
-
do {
|
|
20
|
-
if (!prototype.constructor) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
if (!prototype.constructor[type_metadata_storage_1.METADATA_FACTORY_NAME]) {
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
const metadata = prototype.constructor[type_metadata_storage_1.METADATA_FACTORY_NAME]();
|
|
27
|
-
const properties = Object.keys(metadata);
|
|
28
|
-
properties.forEach(key => {
|
|
29
|
-
(0, api_property_decorator_1.createApiPropertyDecorator)(metadata[key], false)(classPrototype, key);
|
|
30
|
-
});
|
|
31
|
-
} while ((prototype = Reflect.getPrototypeOf(prototype)) &&
|
|
32
|
-
prototype !== Object.prototype &&
|
|
33
|
-
prototype);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.ModelPropertiesAccessor = ModelPropertiesAccessor;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyFieldDecorators = void 0;
|
|
4
|
-
const directive_decorator_1 = require("../decorators/directive.decorator");
|
|
5
|
-
const extensions_decorator_1 = require("../decorators/extensions.decorator");
|
|
6
|
-
function applyFieldDecorators(targetClass, item) {
|
|
7
|
-
if (item.extensions) {
|
|
8
|
-
(0, extensions_decorator_1.Extensions)(item.extensions)(targetClass.prototype, item.name);
|
|
9
|
-
}
|
|
10
|
-
if (item.directives?.length) {
|
|
11
|
-
item.directives.map(directive => {
|
|
12
|
-
(0, directive_decorator_1.Directive)(directive.sdl)(targetClass.prototype, item.name);
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.applyFieldDecorators = applyFieldDecorators;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { DataSource } from 'typeorm';
|
|
2
|
-
interface ConnectionOptions {
|
|
3
|
-
type: 'mongodb' | 'firebase' | 'sqlite' | 'mysql';
|
|
4
|
-
username?: string;
|
|
5
|
-
password?: string;
|
|
6
|
-
host?: string;
|
|
7
|
-
port?: number;
|
|
8
|
-
connectionName: string;
|
|
9
|
-
databaseName?: string;
|
|
10
|
-
entitiesPath?: string[] | any[];
|
|
11
|
-
synchronize?: boolean;
|
|
12
|
-
logging?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface FluentConnectionFactory {
|
|
15
|
-
type: 'mongodb' | 'firebase' | 'sqlite' | 'mysql';
|
|
16
|
-
connection?: DataSource;
|
|
17
|
-
}
|
|
18
|
-
export declare const createConnection: ({ type, username, password, host, port, databaseName, entitiesPath, connectionName, synchronize, logging }: ConnectionOptions) => {
|
|
19
|
-
provide: string;
|
|
20
|
-
useFactory: () => Promise<{
|
|
21
|
-
type: "firebase";
|
|
22
|
-
}>;
|
|
23
|
-
} | {
|
|
24
|
-
provide: string;
|
|
25
|
-
useFactory: () => Promise<{
|
|
26
|
-
type: "mysql" | "sqlite" | "mongodb";
|
|
27
|
-
connection: DataSource;
|
|
28
|
-
}>;
|
|
29
|
-
};
|
|
30
|
-
export {};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createConnection = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
|
-
const createConnection = ({ type, username, password, host, port, databaseName, entitiesPath, connectionName, synchronize, logging }) => {
|
|
6
|
-
if (type === 'firebase') {
|
|
7
|
-
return {
|
|
8
|
-
provide: connectionName,
|
|
9
|
-
useFactory: async () => ({ type })
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
provide: connectionName,
|
|
14
|
-
useFactory: async () => {
|
|
15
|
-
const dataSource = new typeorm_1.DataSource({
|
|
16
|
-
name: connectionName,
|
|
17
|
-
type,
|
|
18
|
-
username,
|
|
19
|
-
password,
|
|
20
|
-
host,
|
|
21
|
-
port,
|
|
22
|
-
database: databaseName,
|
|
23
|
-
useNewUrlParser: type === 'mongodb' ? true : undefined,
|
|
24
|
-
useUnifiedTopology: type === 'mongodb' ? true : undefined,
|
|
25
|
-
entities: [...entitiesPath],
|
|
26
|
-
synchronize,
|
|
27
|
-
logging
|
|
28
|
-
});
|
|
29
|
-
if (dataSource.isInitialized) {
|
|
30
|
-
return {
|
|
31
|
-
type,
|
|
32
|
-
connection: dataSource
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
const connection = await dataSource.initialize();
|
|
36
|
-
return {
|
|
37
|
-
type,
|
|
38
|
-
connection
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
exports.createConnection = createConnection;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Primitives } from '../../types';
|
|
2
|
-
interface PropertyInterface {
|
|
3
|
-
required?: boolean;
|
|
4
|
-
unique?: boolean;
|
|
5
|
-
hidden?: boolean;
|
|
6
|
-
}
|
|
7
|
-
interface EnumProperty {
|
|
8
|
-
enum: any[];
|
|
9
|
-
default?: Primitives;
|
|
10
|
-
}
|
|
11
|
-
export declare type ObjectTypeI<T> = new () => T;
|
|
12
|
-
interface ManyToManyInterface<T> {
|
|
13
|
-
entity: (type?: any) => ObjectTypeI<T>;
|
|
14
|
-
joinTableName: string;
|
|
15
|
-
foreignKey: string;
|
|
16
|
-
inverseForeignKey: string;
|
|
17
|
-
}
|
|
18
|
-
interface BelongsToInterface<T> {
|
|
19
|
-
entity: (type?: any) => ObjectTypeI<T>;
|
|
20
|
-
inverse: string | ((object: T) => any);
|
|
21
|
-
pivotColumnName: string;
|
|
22
|
-
}
|
|
23
|
-
interface hasManyInterface<T> {
|
|
24
|
-
entity: (type?: any) => ObjectTypeI<T>;
|
|
25
|
-
inverse: string | ((object: T) => any);
|
|
26
|
-
}
|
|
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
|
-
}>;
|
|
43
|
-
export {};
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Decorators = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
|
-
const fireorm_1 = require("fireorm");
|
|
6
|
-
const graphql_1 = require("graphql");
|
|
7
|
-
const types_1 = require("../types");
|
|
8
|
-
const applyDecorators_1 = require("../Nestjs/applyDecorators");
|
|
9
|
-
const field_decorator_1 = require("../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) => {
|
|
19
|
-
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) => {
|
|
23
|
-
if (params && params.hidden) {
|
|
24
|
-
return (0, applyDecorators_1.applyDecorators)((0, types_1.HideField)(), (0, typeorm_1.Column)({
|
|
25
|
-
select: false,
|
|
26
|
-
nullable: !params.required
|
|
27
|
-
}), (0, types_1.ApiProperty)({
|
|
28
|
-
nullable: !params.required,
|
|
29
|
-
required: !!params.required
|
|
30
|
-
}), (0, types_1.ApiHideProperty)());
|
|
31
|
-
}
|
|
32
|
-
return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.Column)({
|
|
33
|
-
nullable: !params.required
|
|
34
|
-
}), (0, types_1.ApiProperty)({
|
|
35
|
-
nullable: !params.required,
|
|
36
|
-
required: !!params.required
|
|
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 }) {
|
|
70
|
-
return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ManyToMany)(entity), (0, typeorm_1.JoinTable)({
|
|
71
|
-
name: joinTableName,
|
|
72
|
-
joinColumns: [{ name: foreignKey }],
|
|
73
|
-
inverseJoinColumns: [{ name: inverseForeignKey }]
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
function belongsTo({ entity, inverse, pivotColumnName }) {
|
|
77
|
-
return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.ManyToOne)(entity, inverse), (0, typeorm_1.JoinColumn)({ name: pivotColumnName }));
|
|
78
|
-
}
|
|
79
|
-
function hasMany({ entity, inverse }) {
|
|
80
|
-
return (0, applyDecorators_1.applyDecorators)((0, typeorm_1.OneToMany)(entity, inverse));
|
|
81
|
-
}
|
|
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
|
-
})();
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Access = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const types_1 = require("../types");
|
|
6
|
-
let Access = class Access {
|
|
7
|
-
};
|
|
8
|
-
tslib_1.__decorate([
|
|
9
|
-
(0, types_1.Column)({ nullable: true }),
|
|
10
|
-
(0, types_1.ApiProperty)(),
|
|
11
|
-
tslib_1.__metadata("design:type", String)
|
|
12
|
-
], Access.prototype, "type", void 0);
|
|
13
|
-
tslib_1.__decorate([
|
|
14
|
-
(0, types_1.Column)({ nullable: true, type: 'simple-array' }),
|
|
15
|
-
(0, types_1.ApiProperty)(),
|
|
16
|
-
tslib_1.__metadata("design:type", Array)
|
|
17
|
-
], Access.prototype, "roles", void 0);
|
|
18
|
-
Access = tslib_1.__decorate([
|
|
19
|
-
(0, types_1.ObjectType)()
|
|
20
|
-
], Access);
|
|
21
|
-
exports.Access = Access;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare class IPaginationMeta {
|
|
2
|
-
itemCount: number;
|
|
3
|
-
totalItems: number;
|
|
4
|
-
itemsPerPage: number;
|
|
5
|
-
totalPages: number;
|
|
6
|
-
currentPage: number;
|
|
7
|
-
}
|
|
8
|
-
export declare class IPaginationLinks {
|
|
9
|
-
first?: string;
|
|
10
|
-
previous?: string;
|
|
11
|
-
next?: string;
|
|
12
|
-
last?: string;
|
|
13
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IPaginationLinks = exports.IPaginationMeta = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const types_1 = require("../types");
|
|
6
|
-
let IPaginationMeta = class IPaginationMeta {
|
|
7
|
-
};
|
|
8
|
-
tslib_1.__decorate([
|
|
9
|
-
(0, types_1.Column)('number'),
|
|
10
|
-
(0, types_1.ApiProperty)(),
|
|
11
|
-
tslib_1.__metadata("design:type", Number)
|
|
12
|
-
], IPaginationMeta.prototype, "itemCount", void 0);
|
|
13
|
-
tslib_1.__decorate([
|
|
14
|
-
(0, types_1.Column)('number'),
|
|
15
|
-
(0, types_1.ApiProperty)(),
|
|
16
|
-
tslib_1.__metadata("design:type", Number)
|
|
17
|
-
], IPaginationMeta.prototype, "totalItems", void 0);
|
|
18
|
-
tslib_1.__decorate([
|
|
19
|
-
(0, types_1.Column)('number'),
|
|
20
|
-
(0, types_1.ApiProperty)(),
|
|
21
|
-
tslib_1.__metadata("design:type", Number)
|
|
22
|
-
], IPaginationMeta.prototype, "itemsPerPage", void 0);
|
|
23
|
-
tslib_1.__decorate([
|
|
24
|
-
(0, types_1.Column)('number'),
|
|
25
|
-
(0, types_1.ApiProperty)(),
|
|
26
|
-
tslib_1.__metadata("design:type", Number)
|
|
27
|
-
], IPaginationMeta.prototype, "totalPages", void 0);
|
|
28
|
-
tslib_1.__decorate([
|
|
29
|
-
(0, types_1.Column)('number'),
|
|
30
|
-
(0, types_1.ApiProperty)(),
|
|
31
|
-
tslib_1.__metadata("design:type", Number)
|
|
32
|
-
], IPaginationMeta.prototype, "currentPage", void 0);
|
|
33
|
-
IPaginationMeta = tslib_1.__decorate([
|
|
34
|
-
(0, types_1.InputType)()
|
|
35
|
-
], IPaginationMeta);
|
|
36
|
-
exports.IPaginationMeta = IPaginationMeta;
|
|
37
|
-
let IPaginationLinks = class IPaginationLinks {
|
|
38
|
-
};
|
|
39
|
-
tslib_1.__decorate([
|
|
40
|
-
(0, types_1.Column)('text'),
|
|
41
|
-
(0, types_1.ApiProperty)(),
|
|
42
|
-
tslib_1.__metadata("design:type", String)
|
|
43
|
-
], IPaginationLinks.prototype, "first", void 0);
|
|
44
|
-
tslib_1.__decorate([
|
|
45
|
-
(0, types_1.Column)('text'),
|
|
46
|
-
(0, types_1.ApiProperty)(),
|
|
47
|
-
tslib_1.__metadata("design:type", String)
|
|
48
|
-
], IPaginationLinks.prototype, "previous", void 0);
|
|
49
|
-
tslib_1.__decorate([
|
|
50
|
-
(0, types_1.Column)('text'),
|
|
51
|
-
(0, types_1.ApiProperty)(),
|
|
52
|
-
tslib_1.__metadata("design:type", String)
|
|
53
|
-
], IPaginationLinks.prototype, "next", void 0);
|
|
54
|
-
tslib_1.__decorate([
|
|
55
|
-
(0, types_1.Column)('text'),
|
|
56
|
-
(0, types_1.ApiProperty)(),
|
|
57
|
-
tslib_1.__metadata("design:type", String)
|
|
58
|
-
], IPaginationLinks.prototype, "last", void 0);
|
|
59
|
-
IPaginationLinks = tslib_1.__decorate([
|
|
60
|
-
(0, types_1.InputType)()
|
|
61
|
-
], IPaginationLinks);
|
|
62
|
-
exports.IPaginationLinks = IPaginationLinks;
|
package/dist/core/types.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Column as TypeORMColumn } from 'typeorm';
|
|
2
|
-
import { SchemaObject as LBSchemaObject } from 'openapi3-ts';
|
|
3
|
-
import { InputType as NestInputType } from './Nestjs/types/decorators/input-type.decorator';
|
|
4
|
-
import { PartialType as NestjsPartialType } from './Nestjs/types/decorators/partial-type.helper';
|
|
5
|
-
import { ObjectType as NestObjectType } from './Nestjs/types/object-type.decorator';
|
|
6
|
-
import { ApiProperty as NEstJSApiProperty } from './Nestjs/types/decorators/api-property.decorator';
|
|
7
|
-
import { OmitType as NEstJSOmitType } from './Nestjs/types/omit-type';
|
|
8
|
-
import { ApiHideProperty as NEstApiHideProperty } from './Nestjs/types/decorators/api-hide-property.decorator';
|
|
9
|
-
import { SchemaRef } from './Loopback/json-to-schema';
|
|
10
|
-
import { JsonSchemaOptions } from './Loopback/build-schema';
|
|
11
|
-
export declare function LBgetModelSchemaRef<T extends object>(modelCtor: Function & {
|
|
12
|
-
prototype: T;
|
|
13
|
-
}, options?: JsonSchemaOptions<T>): SchemaRef;
|
|
14
|
-
export declare const ApiProperty: typeof NEstJSApiProperty;
|
|
15
|
-
export declare const ApiHideProperty: typeof NEstApiHideProperty;
|
|
16
|
-
export declare const OmitType: typeof NEstJSOmitType;
|
|
17
|
-
export declare const InputType: typeof NestInputType;
|
|
18
|
-
export declare const PartialType: typeof NestjsPartialType;
|
|
19
|
-
export declare const Column: typeof TypeORMColumn;
|
|
20
|
-
export declare const getModelSchemaRef: typeof LBgetModelSchemaRef;
|
|
21
|
-
export declare const ObjectType: typeof NestObjectType;
|
|
22
|
-
export declare type SchemaObject = LBSchemaObject;
|
|
23
|
-
export declare function HideField(): PropertyDecorator;
|
package/dist/core/types.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HideField = exports.ObjectType = exports.getModelSchemaRef = exports.Column = exports.PartialType = exports.InputType = exports.OmitType = exports.ApiHideProperty = exports.ApiProperty = exports.LBgetModelSchemaRef = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
|
-
const input_type_decorator_1 = require("./Nestjs/types/decorators/input-type.decorator");
|
|
6
|
-
const partial_type_helper_1 = require("./Nestjs/types/decorators/partial-type.helper");
|
|
7
|
-
const object_type_decorator_1 = require("./Nestjs/types/object-type.decorator");
|
|
8
|
-
const api_property_decorator_1 = require("./Nestjs/types/decorators/api-property.decorator");
|
|
9
|
-
const omit_type_1 = require("./Nestjs/types/omit-type");
|
|
10
|
-
const api_hide_property_decorator_1 = require("./Nestjs/types/decorators/api-hide-property.decorator");
|
|
11
|
-
const json_to_schema_1 = require("./Loopback/json-to-schema");
|
|
12
|
-
const build_schema_1 = require("./Loopback/build-schema");
|
|
13
|
-
function LBgetModelSchemaRef(modelCtor, options) {
|
|
14
|
-
const jsonSchema = (0, build_schema_1.getJsonSchemaRef)(modelCtor, options);
|
|
15
|
-
return (0, json_to_schema_1.jsonToSchemaObject)(jsonSchema);
|
|
16
|
-
}
|
|
17
|
-
exports.LBgetModelSchemaRef = LBgetModelSchemaRef;
|
|
18
|
-
exports.ApiProperty = api_property_decorator_1.ApiProperty;
|
|
19
|
-
exports.ApiHideProperty = api_hide_property_decorator_1.ApiHideProperty;
|
|
20
|
-
exports.OmitType = omit_type_1.OmitType;
|
|
21
|
-
exports.InputType = input_type_decorator_1.InputType;
|
|
22
|
-
exports.PartialType = partial_type_helper_1.PartialType;
|
|
23
|
-
exports.Column = typeorm_1.Column;
|
|
24
|
-
exports.getModelSchemaRef = LBgetModelSchemaRef;
|
|
25
|
-
exports.ObjectType = object_type_decorator_1.ObjectType;
|
|
26
|
-
function HideField() {
|
|
27
|
-
return (target, propertyKey) => { };
|
|
28
|
-
}
|
|
29
|
-
exports.HideField = HideField;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.modelGeneratorDataSource = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
|
-
exports.modelGeneratorDataSource = new typeorm_1.DataSource({
|
|
6
|
-
name: '_goat_model_generator',
|
|
7
|
-
type: 'sqlite',
|
|
8
|
-
database: ':memory:',
|
|
9
|
-
logging: false,
|
|
10
|
-
synchronize: true,
|
|
11
|
-
dropSchema: true
|
|
12
|
-
});
|
package/dist/index.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadRelations = exports.TypeOrmConnector = exports.HideField = exports.ObjectType = exports.getModelSchemaRef = exports.Column = exports.PartialType = exports.InputType = exports.OmitType = exports.ApiHideProperty = exports.ApiProperty = exports.modelGeneratorDataSource = exports.getOutputKeys = exports.Fluent = exports.Decorators = exports.createConnection = exports.Collection = exports.BaseConnector = void 0;
|
|
4
|
-
const BaseConnector_1 = require("./BaseConnector");
|
|
5
|
-
Object.defineProperty(exports, "BaseConnector", { enumerable: true, get: function () { return BaseConnector_1.BaseConnector; } });
|
|
6
|
-
const js_utils_1 = require("@goatlab/js-utils");
|
|
7
|
-
Object.defineProperty(exports, "Collection", { enumerable: true, get: function () { return js_utils_1.Collection; } });
|
|
8
|
-
const Fluent_1 = require("./Fluent");
|
|
9
|
-
Object.defineProperty(exports, "Fluent", { enumerable: true, get: function () { return Fluent_1.Fluent; } });
|
|
10
|
-
const generatorDatasource_1 = require("./generatorDatasource");
|
|
11
|
-
Object.defineProperty(exports, "modelGeneratorDataSource", { enumerable: true, get: function () { return generatorDatasource_1.modelGeneratorDataSource; } });
|
|
12
|
-
const outputKeys_1 = require("./outputKeys");
|
|
13
|
-
Object.defineProperty(exports, "getOutputKeys", { enumerable: true, get: function () { return outputKeys_1.getOutputKeys; } });
|
|
14
|
-
const decorators_1 = require("./core/database/decorators");
|
|
15
|
-
Object.defineProperty(exports, "Decorators", { enumerable: true, get: function () { return decorators_1.Decorators; } });
|
|
16
|
-
const types_1 = require("./core/types");
|
|
17
|
-
Object.defineProperty(exports, "ApiProperty", { enumerable: true, get: function () { return types_1.ApiProperty; } });
|
|
18
|
-
Object.defineProperty(exports, "ApiHideProperty", { enumerable: true, get: function () { return types_1.ApiHideProperty; } });
|
|
19
|
-
Object.defineProperty(exports, "OmitType", { enumerable: true, get: function () { return types_1.OmitType; } });
|
|
20
|
-
Object.defineProperty(exports, "InputType", { enumerable: true, get: function () { return types_1.InputType; } });
|
|
21
|
-
Object.defineProperty(exports, "PartialType", { enumerable: true, get: function () { return types_1.PartialType; } });
|
|
22
|
-
Object.defineProperty(exports, "Column", { enumerable: true, get: function () { return types_1.Column; } });
|
|
23
|
-
Object.defineProperty(exports, "getModelSchemaRef", { enumerable: true, get: function () { return types_1.getModelSchemaRef; } });
|
|
24
|
-
Object.defineProperty(exports, "ObjectType", { enumerable: true, get: function () { return types_1.ObjectType; } });
|
|
25
|
-
Object.defineProperty(exports, "HideField", { enumerable: true, get: function () { return types_1.HideField; } });
|
|
26
|
-
const createConnection_1 = require("./core/database/createConnection");
|
|
27
|
-
Object.defineProperty(exports, "createConnection", { enumerable: true, get: function () { return createConnection_1.createConnection; } });
|
|
28
|
-
const TypeOrmConnector_1 = require("./TypeOrmConnector/TypeOrmConnector");
|
|
29
|
-
Object.defineProperty(exports, "TypeOrmConnector", { enumerable: true, get: function () { return TypeOrmConnector_1.TypeOrmConnector; } });
|
|
30
|
-
const loadRelations_1 = require("./loadRelations");
|
|
31
|
-
Object.defineProperty(exports, "loadRelations", { enumerable: true, get: function () { return loadRelations_1.loadRelations; } });
|
package/dist/loadRelations.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadRelations = void 0;
|
|
4
|
-
const js_utils_1 = require("@goatlab/js-utils");
|
|
5
|
-
const TypeOrmConnector_1 = require("./TypeOrmConnector/TypeOrmConnector");
|
|
6
|
-
const loadRelations = async ({ data, relations, modelRelations, connectionName, provider, self }) => {
|
|
7
|
-
if (!relations) {
|
|
8
|
-
return data;
|
|
9
|
-
}
|
|
10
|
-
const chunkSize = provider === 'typeorm' ? 100 : 10;
|
|
11
|
-
for (const relation of Object.keys(relations)) {
|
|
12
|
-
if (modelRelations[relation]) {
|
|
13
|
-
const relationModel = modelRelations[relation];
|
|
14
|
-
let firebaseConnector;
|
|
15
|
-
if (provider === 'firebase') {
|
|
16
|
-
firebaseConnector = require('../FirebaseConnector').FirebaseConnector;
|
|
17
|
-
}
|
|
18
|
-
const Model = typeof self[relation] === 'function'
|
|
19
|
-
? self[relation]()
|
|
20
|
-
: provider === 'typeorm'
|
|
21
|
-
? new TypeOrmConnector_1.TypeOrmConnector(relationModel.targetClass, undefined, connectionName || 'LOCAL_DB')
|
|
22
|
-
: new firebaseConnector(relationModel.targetClass);
|
|
23
|
-
if (relationModel.isOneToMany) {
|
|
24
|
-
const ids = js_utils_1.Arrays.deDuplicate(data.map(d => Model.isMongoDB ? js_utils_1.Ids.objectID(d.id) : d.id));
|
|
25
|
-
const chunks = js_utils_1.Arrays.chunk(ids, chunkSize);
|
|
26
|
-
const promises = [];
|
|
27
|
-
for (const relatedIds of chunks) {
|
|
28
|
-
const results = await Model.andWhere(Model._keys[relationModel.inverseSidePropertyPath], 'in', relatedIds).get();
|
|
29
|
-
promises.push(results);
|
|
30
|
-
}
|
|
31
|
-
const relatedResults = js_utils_1.Arrays.collapse(await Promise.all(promises));
|
|
32
|
-
const grouped = js_utils_1.Arrays.groupBy(relatedResults, r => r[relationModel.inverseSidePropertyPath]);
|
|
33
|
-
data.forEach(d => {
|
|
34
|
-
if (grouped[d.id]) {
|
|
35
|
-
d[relationModel.propertyPath] = grouped[d.id];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
else if (relationModel.isManyToOne) {
|
|
40
|
-
const ids = js_utils_1.Arrays.deDuplicate(data.map(d => d[relationModel.joinColumns[0].propertyPath]));
|
|
41
|
-
const chunks = js_utils_1.Arrays.chunk(ids, chunkSize);
|
|
42
|
-
const promises = [];
|
|
43
|
-
for (const relatedIds of chunks) {
|
|
44
|
-
const results = await Model.andWhere(Model._keys.id, 'in', relatedIds).get();
|
|
45
|
-
promises.push(results);
|
|
46
|
-
}
|
|
47
|
-
const relatedResults = js_utils_1.Arrays.collapse(promises);
|
|
48
|
-
const grouped = js_utils_1.Arrays.groupBy(relatedResults, r => r.id);
|
|
49
|
-
data.forEach(d => {
|
|
50
|
-
if (grouped[d[relationModel.joinColumns[0].propertyPath]]) {
|
|
51
|
-
d[relationModel.propertyPath] =
|
|
52
|
-
grouped[d[relationModel.joinColumns[0].propertyPath]][0];
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
else if (relationModel.isManyToMany) {
|
|
57
|
-
const ids = js_utils_1.Arrays.deDuplicate(data.map(d => Model.isMongoDB ? js_utils_1.Ids.objectID(d.id) : d.id));
|
|
58
|
-
const chunks = js_utils_1.Arrays.chunk(ids, chunkSize);
|
|
59
|
-
if (relationModel.joinColumns.length === 0) {
|
|
60
|
-
return data;
|
|
61
|
-
}
|
|
62
|
-
const pivotRepository = self[relationModel.propertyPath]().relationQuery.pivot;
|
|
63
|
-
const promises = [];
|
|
64
|
-
for (const pivotIds of chunks) {
|
|
65
|
-
const results = await pivotRepository
|
|
66
|
-
.where(relationModel.joinColumns[0].propertyName, 'in', pivotIds)
|
|
67
|
-
.get();
|
|
68
|
-
promises.push(results);
|
|
69
|
-
}
|
|
70
|
-
const pivotResults = js_utils_1.Arrays.collapse(await Promise.all(promises));
|
|
71
|
-
const uniquePivotIds = pivotResults.map(p => p[relationModel.inverseJoinColumns[0].propertyName]);
|
|
72
|
-
const relationChunks = js_utils_1.Arrays.chunk(uniquePivotIds, chunkSize);
|
|
73
|
-
const relationPromises = [];
|
|
74
|
-
for (const relatedIds of relationChunks) {
|
|
75
|
-
const results = await Model.andWhere(Model._keys.id, 'in', relatedIds).get();
|
|
76
|
-
relationPromises.push(results);
|
|
77
|
-
}
|
|
78
|
-
const relatedResults = js_utils_1.Arrays.collapse(await Promise.all(relationPromises));
|
|
79
|
-
const groupedPivot = js_utils_1.Arrays.groupBy(pivotResults, r => r[relationModel.joinColumns[0].propertyName]);
|
|
80
|
-
const groupedRelated = js_utils_1.Arrays.groupBy(relatedResults, r => r.id);
|
|
81
|
-
data.forEach(d => {
|
|
82
|
-
groupedPivot[d.id]?.forEach(gp => {
|
|
83
|
-
d[relationModel.propertyPath] =
|
|
84
|
-
groupedRelated[gp[relationModel.inverseJoinColumns[0].propertyName]];
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return data;
|
|
91
|
-
};
|
|
92
|
-
exports.loadRelations = loadRelations;
|
package/dist/outputKeys.d.ts
DELETED
package/dist/outputKeys.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOutputKeys = void 0;
|
|
4
|
-
const js_utils_1 = require("@goatlab/js-utils");
|
|
5
|
-
const getOutputKeys = (repository) => {
|
|
6
|
-
const excludedCols = [];
|
|
7
|
-
repository.metadata.columns.forEach(c => {
|
|
8
|
-
if (!c.isSelect) {
|
|
9
|
-
excludedCols.push(c.propertyName);
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
const keys = repository.metadata.propertiesMap;
|
|
13
|
-
const flatKeys = js_utils_1.Objects.flatten(keys, true);
|
|
14
|
-
const outputKeys = Object.keys(flatKeys).filter(e => !excludedCols.includes(e));
|
|
15
|
-
return outputKeys;
|
|
16
|
-
};
|
|
17
|
-
exports.getOutputKeys = getOutputKeys;
|