@goatlab/fluent 0.7.6 → 0.7.9
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 → fluent/src/BaseConnector.d.ts} +8 -31
- package/dist/{BaseConnector.js → fluent/src/BaseConnector.js} +11 -104
- package/dist/{Fluent.d.ts → fluent/src/Fluent.d.ts} +0 -0
- package/dist/{Fluent.js → fluent/src/Fluent.js} +0 -0
- package/dist/fluent/src/FluentConnectorInterface.d.ts +17 -0
- package/dist/{core/Loopback/type.js → fluent/src/FluentConnectorInterface.js} +0 -0
- package/dist/{FluentEntity.d.ts → fluent/src/FluentEntity.d.ts} +0 -0
- package/dist/{FluentEntity.js → fluent/src/FluentEntity.js} +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/TypeOrmConnector.d.ts +8 -12
- package/dist/fluent/src/TypeOrmConnector/TypeOrmConnector.js +397 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.d.ts +7 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.js +148 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.d.ts +6 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.js +34 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.d.ts +4 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.js +12 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.d.ts +6 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.js +166 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.d.ts +8 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.js +200 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.d.ts +6 -0
- package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.js +207 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/advancedTestSuite.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/advancedTestSuite.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.entity.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.entity.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mongo.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mongo.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mysql.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mysql.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/basicTestSuite.d.ts +0 -0
- package/dist/fluent/src/TypeOrmConnector/test/basic/basicTestSuite.js +183 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.entity.d.ts +3 -3
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.entity.js +1 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mongo.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mongo.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mysql.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mysql.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/dbEntities.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/dbEntities.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/docker.d.ts +1 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/docker.js +3 -4
- package/dist/fluent/src/TypeOrmConnector/test/docker/mongo.d.ts +16 -0
- package/dist/fluent/src/TypeOrmConnector/test/docker/mongo.js +93 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/mysql.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/mysql.js +1 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/flock.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/flock.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/car.mongo.repository.d.ts +4 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/car.mongo.repository.js +6 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/mongoDatasource.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/mongoDatasource.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles.mongo.repository.d.ts +3 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles.mongo.repository.js +3 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles_user.mongo.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles_user.mongo.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/user.mongo.repository.d.ts +2 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/user.mongo.repository.js +2 -1
- package/dist/fluent/src/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +10 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/car.mysql.repository.js +10 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/mysqlDataSource.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/mysqlDataSource.js +1 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles.mysql.repository.d.ts +3 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles.mysql.repository.js +3 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles_user.mysql.repository.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles_user.mysql.repository.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/user.mysql.repository.d.ts +2 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/user.mysql.repository.js +2 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.entity.d.ts +0 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.entity.js +0 -8
- package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.output.schema.d.ts +511 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.output.schema.js +8 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.repositoryTypeOrm.d.ts +4 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.repositoryTypeOrm.js +6 -1
- package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.schema.d.ts +15 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.schema.js +9 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +1 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/relationsTestsSuite.js +549 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.output.schema.d.ts +152 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.output.schema.js +14 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.schema.d.ts +12 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.schema.js +8 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.entity.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.entity.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.repositoryTypeOrm.d.ts +3 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.repositoryTypeOrm.js +3 -1
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.entity.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.entity.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.schema.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.schema.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.entity.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.entity.js +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.repositoryTypeOrm.d.ts +2 -2
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.repositoryTypeOrm.js +2 -1
- package/dist/fluent/src/TypeOrmConnector/test/relations/user/user.schema.d.ts +546 -0
- package/dist/fluent/src/TypeOrmConnector/test/relations/user/user.schema.js +67 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/sqlite/memoryDataSource.d.ts +0 -0
- package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/sqlite/memoryDataSource.js +0 -0
- package/dist/fluent/src/TypeOrmConnector/util/clearEmpties.d.ts +1 -0
- package/dist/fluent/src/TypeOrmConnector/util/clearEmpties.js +25 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractConditions.d.ts +6 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractConditions.js +80 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractInclude.d.ts +2 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractInclude.js +25 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractMetadataFromKeys.d.ts +12 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractMetadataFromKeys.js +42 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractOrderBy.d.ts +4 -0
- package/dist/fluent/src/TypeOrmConnector/util/extractOrderBy.js +18 -0
- package/dist/fluent/src/TypeOrmConnector/util/getRelationsFromModelGenerator.d.ts +19 -0
- package/dist/fluent/src/TypeOrmConnector/util/getRelationsFromModelGenerator.js +26 -0
- package/dist/fluent/src/TypeOrmConnector/util/getSelectedKeysFromRawSql.d.ts +1 -0
- package/dist/fluent/src/TypeOrmConnector/util/getSelectedKeysFromRawSql.js +20 -0
- package/dist/fluent/src/TypeOrmConnector/util/isAnyObject.d.ts +1 -0
- package/dist/fluent/src/TypeOrmConnector/util/isAnyObject.js +7 -0
- package/dist/fluent/src/TypeOrmConnector/util/nestQueryResults.d.ts +2 -0
- package/dist/fluent/src/TypeOrmConnector/util/nestQueryResults.js +31 -0
- package/dist/{cache.d.ts → fluent/src/cache.d.ts} +0 -0
- package/dist/{cache.js → fluent/src/cache.js} +0 -0
- package/dist/{core → fluent/src/core}/Loopback/build-schema.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/build-schema.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/common-types.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/common-types.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/json-to-schema.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/json-to-schema.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/mapValues.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/mapValues.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/metadata.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/metadata.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/model.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/model.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/query.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/query.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/relation.types.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/relation.types.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/type-resolver.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Loopback/type-resolver.js +0 -0
- package/dist/{core → fluent/src/core}/Loopback/type.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/base-type-options.interface.js → fluent/src/core/Loopback/type.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/applyDecorators.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/applyDecorators.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/common.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/common.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-hide-property.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-property.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-property.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/args-type.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/args-type.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/create-property.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/create-property.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/directive.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/directive.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/extensions.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/extensions.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/field.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/field.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/input-type.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/input-type.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/interface-type.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/partial-type.helper.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/decorators/partial-type.helper.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/directive-parsing.error.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/directive-parsing.error.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/unable-to-find-fields.error.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/undefined-type.error.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/errors/undefined-type.error.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/class-decorator-factory.interface.js → fluent/src/core/Nestjs/types/interfaces/base-type-options.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/complexity.interface.js → fluent/src/core/Nestjs/types/interfaces/class-decorator-factory.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/complexity.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/field-middleware.interface.js → fluent/src/core/Nestjs/types/interfaces/complexity.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/open-api-spec.interface.js → fluent/src/core/Nestjs/types/interfaces/field-middleware.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/resolve-type-fn.interface.js → fluent/src/core/Nestjs/types/interfaces/open-api-spec.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/return-type-func.interface.js → fluent/src/core/Nestjs/types/interfaces/resolve-type-fn.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/schema-object-metadata.interface.js → fluent/src/core/Nestjs/types/interfaces/return-type-func.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/interfaces/type-options.interface.js → fluent/src/core/Nestjs/types/interfaces/schema-object-metadata.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/type-options.interface.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/class.metadata.js → fluent/src/core/Nestjs/types/interfaces/type-options.interface.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/lazy-metadata.storage.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/lazy-metadata.storage.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/class.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/directive.metadata.js → fluent/src/core/Nestjs/types/metadata/class.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/directive.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/enum.metadata.js → fluent/src/core/Nestjs/types/metadata/directive.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/enum.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/extensions.metadata.js → fluent/src/core/Nestjs/types/metadata/enum.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/extensions.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/interface.metadata.js → fluent/src/core/Nestjs/types/metadata/extensions.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/index.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/index.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/interface.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/object-type.metadata.js → fluent/src/core/Nestjs/types/metadata/interface.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/object-type.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/param.metadata.js → fluent/src/core/Nestjs/types/metadata/object-type.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/param.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/property.metadata.js → fluent/src/core/Nestjs/types/metadata/param.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/property.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/resolver.metadata.js → fluent/src/core/Nestjs/types/metadata/property.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/resolver.metadata.d.ts +0 -0
- package/dist/{core/Nestjs/types/metadata/union.metadata.js → fluent/src/core/Nestjs/types/metadata/resolver.metadata.js} +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/metadata/union.metadata.d.ts +0 -0
- package/dist/fluent/src/core/Nestjs/types/metadata/union.metadata.js +2 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/object-type.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/object-type.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/omit-type.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/omit-type.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/reflection.utils.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/reflection.utils.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/set-metadata.decorator.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/set-metadata.decorator.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/type-metadata.storage.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/type-metadata.storage.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/enum.utils.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/enum.utils.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/mapped-types.utils.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/mapped-types.utils.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/model-properties-accessor.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/model-properties-accessor.js +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/type-helpers.utils.d.ts +0 -0
- package/dist/{core → fluent/src/core}/Nestjs/types/utils/type-helpers.utils.js +0 -0
- package/dist/{core → fluent/src/core}/types.d.ts +0 -0
- package/dist/{core → fluent/src/core}/types.js +0 -0
- package/dist/{decorators.d.ts → fluent/src/decorators.d.ts} +0 -0
- package/dist/{decorators.js → fluent/src/decorators.js} +0 -0
- package/dist/{generatorDatasource.d.ts → fluent/src/generatorDatasource.d.ts} +0 -0
- package/dist/{generatorDatasource.js → fluent/src/generatorDatasource.js} +0 -0
- package/dist/{index.d.ts → fluent/src/index.d.ts} +5 -4
- package/dist/{index.js → fluent/src/index.js} +2 -1
- package/dist/{loadRelations.d.ts → fluent/src/loadRelations.d.ts} +0 -0
- package/dist/{loadRelations.js → fluent/src/loadRelations.js} +8 -10
- package/dist/{outputKeys.d.ts → fluent/src/outputKeys.d.ts} +0 -0
- package/dist/{outputKeys.js → fluent/src/outputKeys.js} +0 -0
- package/dist/{types.d.ts → fluent/src/types.d.ts} +37 -20
- package/dist/{types.js → fluent/src/types.js} +0 -0
- package/dist/fluent-firebase/src/test/firebase.d.ts +16 -0
- package/dist/fluent-firebase/src/test/firebase.js +93 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/CHANGELOG.md +0 -1072
- package/dist/TypeOrmConnector/TypeOrmConnector.js +0 -760
- package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +0 -19
- package/dist/TypeOrmConnector/test/mongo/mongo.memory.d.ts +0 -4
- package/dist/TypeOrmConnector/test/mongo/mongo.memory.js +0 -43
- package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +0 -6
- package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +0 -38
- package/dist/TypeOrmConnector/test/relations/car/car.schema.js +0 -14
- package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -1
- package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +0 -149
- package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +0 -35
- package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +0 -16
- package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +0 -150
- package/dist/TypeOrmConnector/test/relations/user/user.schema.js +0 -18
|
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
|
|
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,22 +1,23 @@
|
|
|
1
1
|
import { ApiHideProperty, ApiProperty, Column, HideField, InputType, ObjectType, OmitType, PartialType, getModelSchemaRef } from './core/types';
|
|
2
|
-
import type { AnyObject, Deleted, PaginatedData, Paginator, Primitives, PrimitivesArray, FluentQuery, QueryOutput, LoadedResult, FindByIdFilter
|
|
2
|
+
import type { AnyObject, Deleted, PaginatedData, Paginator, Primitives, PrimitivesArray, FluentQuery, QueryOutput, LoadedResult, FindByIdFilter } from './types';
|
|
3
3
|
import { LogicOperator } from './types';
|
|
4
4
|
import { BaseConnector } from './BaseConnector';
|
|
5
5
|
import { Collection } from '@goatlab/js-utils';
|
|
6
6
|
import { f } from './decorators';
|
|
7
7
|
import { Fluent } from './Fluent';
|
|
8
|
-
import type { FluentConnectorInterface } from './
|
|
8
|
+
import type { FluentConnectorInterface } from './FluentConnectorInterface';
|
|
9
9
|
import type { SchemaObject } from './core/types';
|
|
10
|
-
import {
|
|
10
|
+
import { TypeOrmConnector } from './TypeOrmConnector/TypeOrmConnector';
|
|
11
11
|
import { getOutputKeys } from './outputKeys';
|
|
12
12
|
import { loadRelations } from './loadRelations';
|
|
13
13
|
import { modelGeneratorDataSource } from './generatorDatasource';
|
|
14
14
|
import { Cache } from './cache';
|
|
15
15
|
import { ValidationError } from 'class-validator';
|
|
16
|
+
import { getRelationsFromModelGenerator } from './TypeOrmConnector/util/getRelationsFromModelGenerator';
|
|
16
17
|
export { DataSource } from 'typeorm';
|
|
17
18
|
export { ApiHideProperty, ApiProperty, BaseConnector, Collection, Column, f, Fluent, getModelSchemaRef, getOutputKeys, HideField, InputType, loadRelations, modelGeneratorDataSource, ObjectType, OmitType, PartialType, TypeOrmConnector, Cache, getRelationsFromModelGenerator, LogicOperator };
|
|
18
19
|
interface ValidatedInput<T> {
|
|
19
20
|
errors: ValidationError[] | null;
|
|
20
21
|
result: Awaited<T>;
|
|
21
22
|
}
|
|
22
|
-
export type { AnyObject, Deleted, FluentConnectorInterface, PaginatedData, Paginator, Primitives, PrimitivesArray, SchemaObject, ValidatedInput, FluentQuery, QueryOutput, LoadedResult, FindByIdFilter
|
|
23
|
+
export type { AnyObject, Deleted, FluentConnectorInterface, PaginatedData, Paginator, Primitives, PrimitivesArray, SchemaObject, ValidatedInput, FluentQuery, QueryOutput, LoadedResult, FindByIdFilter };
|
|
@@ -22,7 +22,6 @@ Object.defineProperty(exports, "f", { enumerable: true, get: function () { retur
|
|
|
22
22
|
const Fluent_1 = require("./Fluent");
|
|
23
23
|
Object.defineProperty(exports, "Fluent", { enumerable: true, get: function () { return Fluent_1.Fluent; } });
|
|
24
24
|
const TypeOrmConnector_1 = require("./TypeOrmConnector/TypeOrmConnector");
|
|
25
|
-
Object.defineProperty(exports, "getRelationsFromModelGenerator", { enumerable: true, get: function () { return TypeOrmConnector_1.getRelationsFromModelGenerator; } });
|
|
26
25
|
Object.defineProperty(exports, "TypeOrmConnector", { enumerable: true, get: function () { return TypeOrmConnector_1.TypeOrmConnector; } });
|
|
27
26
|
const outputKeys_1 = require("./outputKeys");
|
|
28
27
|
Object.defineProperty(exports, "getOutputKeys", { enumerable: true, get: function () { return outputKeys_1.getOutputKeys; } });
|
|
@@ -32,5 +31,7 @@ const generatorDatasource_1 = require("./generatorDatasource");
|
|
|
32
31
|
Object.defineProperty(exports, "modelGeneratorDataSource", { enumerable: true, get: function () { return generatorDatasource_1.modelGeneratorDataSource; } });
|
|
33
32
|
const cache_1 = require("./cache");
|
|
34
33
|
Object.defineProperty(exports, "Cache", { enumerable: true, get: function () { return cache_1.Cache; } });
|
|
34
|
+
const getRelationsFromModelGenerator_1 = require("./TypeOrmConnector/util/getRelationsFromModelGenerator");
|
|
35
|
+
Object.defineProperty(exports, "getRelationsFromModelGenerator", { enumerable: true, get: function () { return getRelationsFromModelGenerator_1.getRelationsFromModelGenerator; } });
|
|
35
36
|
var typeorm_1 = require("typeorm");
|
|
36
37
|
Object.defineProperty(exports, "DataSource", { enumerable: true, get: function () { return typeorm_1.DataSource; } });
|
|
File without changes
|
|
@@ -21,14 +21,13 @@ const loadRelations = async ({ data, relations, modelRelations, provider, self,
|
|
|
21
21
|
const chunks = js_utils_1.Arrays.chunk(Array.from(ids), chunkSize);
|
|
22
22
|
const promises = [];
|
|
23
23
|
for (const relatedIds of chunks) {
|
|
24
|
-
|
|
24
|
+
promises.push(Repository.findMany({
|
|
25
25
|
where: {
|
|
26
26
|
[relationModel.inverseSidePropertyPath]: {
|
|
27
27
|
in: relatedIds
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
});
|
|
31
|
-
promises.push(results);
|
|
30
|
+
}));
|
|
32
31
|
}
|
|
33
32
|
const relatedResults = js_utils_1.Arrays.collapse(await Promise.all(promises));
|
|
34
33
|
const grouped = js_utils_1.Arrays.groupBy(relatedResults, r => r[relationModel.inverseSidePropertyPath]);
|
|
@@ -45,14 +44,13 @@ const loadRelations = async ({ data, relations, modelRelations, provider, self,
|
|
|
45
44
|
const chunks = js_utils_1.Arrays.chunk(ids, chunkSize);
|
|
46
45
|
const promises = [];
|
|
47
46
|
for (const relatedIds of chunks) {
|
|
48
|
-
|
|
47
|
+
promises.push(Repository.findMany({
|
|
49
48
|
where: {
|
|
50
49
|
id: {
|
|
51
50
|
in: relatedIds
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
});
|
|
55
|
-
promises.push(results);
|
|
53
|
+
}));
|
|
56
54
|
}
|
|
57
55
|
const relatedResults = js_utils_1.Arrays.collapse(await Promise.all(promises));
|
|
58
56
|
const grouped = js_utils_1.Arrays.groupBy(relatedResults, r => r.id);
|
|
@@ -121,10 +119,10 @@ const loadRelations = async ({ data, relations, modelRelations, provider, self,
|
|
|
121
119
|
if (!d[calleeKey]) {
|
|
122
120
|
d[calleeKey] = [];
|
|
123
121
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
122
|
+
const mapped = groupedRelated[gp[relationModel.inverseJoinColumns[0].propertyName]];
|
|
123
|
+
if (mapped) {
|
|
124
|
+
d[calleeKey] = [...d[calleeKey], ...mapped];
|
|
125
|
+
}
|
|
128
126
|
});
|
|
129
127
|
});
|
|
130
128
|
return data;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import { ObjectID } from 'bson';
|
|
2
2
|
export interface AnyObject {
|
|
3
|
-
id?: string;
|
|
4
|
-
_id?: string;
|
|
5
3
|
[key: string]: any;
|
|
6
4
|
}
|
|
7
5
|
declare type Unpacked<T> = T extends (infer U)[] ? U : T;
|
|
6
|
+
export declare type ExpandRecursively<T> = T extends (...args: infer A) => infer R ? (...args: ExpandRecursively<A>) => ExpandRecursively<R> : T extends object ? T extends infer O ? O extends any[] ? {
|
|
7
|
+
[K in keyof Unpacked<O>]: ExpandRecursively<Unpacked<O>[K]>;
|
|
8
|
+
}[] : {
|
|
9
|
+
[K in keyof O]: ExpandRecursively<O[K]>;
|
|
10
|
+
} : never : T;
|
|
8
11
|
export declare type Concrete<Type> = {
|
|
9
12
|
[Property in keyof Type]-?: Type[Property];
|
|
10
13
|
};
|
|
14
|
+
export declare type Subset<T, U> = {
|
|
15
|
+
[key in keyof T]: key extends keyof U ? T[key] : never;
|
|
16
|
+
};
|
|
11
17
|
export declare type QueryFieldSelector<T> = Partial<{
|
|
12
|
-
[K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Unpacked<Partial<QueryFieldSelector<Concrete<T>[K]>>> :
|
|
18
|
+
[K in keyof Concrete<T>]: Concrete<T>[K] extends object ? true | Unpacked<Partial<QueryFieldSelector<Concrete<T>[K]>>> : true | undefined;
|
|
13
19
|
}>;
|
|
14
20
|
export declare type QueryOrderSelector<T> = Partial<{
|
|
15
21
|
[K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Partial<QueryOrderSelector<Concrete<T>[K]>> : 'asc' | 'desc' | undefined;
|
|
@@ -18,14 +24,16 @@ export declare type QueryOperations<T> = {
|
|
|
18
24
|
[key in LogicOperator]: key extends LogicOperator.in ? T[] : key extends LogicOperator.notIn ? T[] : T;
|
|
19
25
|
};
|
|
20
26
|
export declare type QueryWhereFitler<T> = Partial<{
|
|
21
|
-
[K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Partial<QueryWhereFitler<Concrete<T>[K]
|
|
27
|
+
[K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Unpacked<Partial<QueryWhereFitler<Concrete<T>[K]>>> : Unpacked<Partial<QueryOperations<Concrete<T>[K]>>> | T[K];
|
|
22
28
|
}>;
|
|
23
29
|
export declare type QueryInsert<T> = {
|
|
24
30
|
[K in keyof T]: T[K] extends object ? QueryInsert<T[K]> : T[K];
|
|
25
31
|
};
|
|
26
32
|
export declare type ModelRelation<T> = T;
|
|
27
33
|
export declare type QueryIncludeRelation<T> = {
|
|
28
|
-
[K in keyof Partial<T>]: FluentQuery<Unpacked<T[K]>>
|
|
34
|
+
[K in keyof Partial<T>]: (FluentQuery<Unpacked<T[K]>> & {
|
|
35
|
+
withPivot?: true;
|
|
36
|
+
}) | true;
|
|
29
37
|
};
|
|
30
38
|
export declare type FluentQuery<T> = {
|
|
31
39
|
select?: QueryFieldSelector<T>;
|
|
@@ -36,29 +44,38 @@ export declare type FluentQuery<T> = {
|
|
|
36
44
|
orderBy?: QueryOrderSelector<T>[];
|
|
37
45
|
limit?: number;
|
|
38
46
|
offset?: number;
|
|
47
|
+
take?: number;
|
|
39
48
|
include?: QueryIncludeRelation<T>;
|
|
40
49
|
paginated?: Paginator;
|
|
41
50
|
};
|
|
42
51
|
export declare type AddUndefinedIfNullable<T> = T extends null | undefined ? undefined : never;
|
|
43
|
-
export declare type
|
|
44
|
-
[P in keyof T['
|
|
45
|
-
|
|
46
|
-
}
|
|
52
|
+
export declare type GetSelectedFromInclude<T extends FluentQuery<Model>, Model> = {
|
|
53
|
+
[P in keyof T['include']]: T['include'][P] extends object ? NonNullable<Model[P]> extends any[] ? T['include'][P] extends {
|
|
54
|
+
withPivot: true;
|
|
55
|
+
} ? (QueryOutput<T['include'][P], Unpacked<NonNullable<Model[P]>>> & {
|
|
56
|
+
pivot: AnyObject;
|
|
57
|
+
})[] | AddUndefinedIfNullable<Model[P]> : (QueryOutput<T['include'][P], Unpacked<NonNullable<Model[P]>>> & {
|
|
58
|
+
pivot: AnyObject;
|
|
59
|
+
})[] | AddUndefinedIfNullable<Model[P]> : T['include'][P] extends {
|
|
60
|
+
withPivot: true;
|
|
61
|
+
} ? (QueryOutput<T['include'][P], Unpacked<NonNullable<Model[P]>>> & {
|
|
62
|
+
pivot: AnyObject;
|
|
63
|
+
}) | AddUndefinedIfNullable<Model[P]> : QueryOutput<T['include'][P], Unpacked<NonNullable<Model[P]>>> | AddUndefinedIfNullable<Model[P]> : Model[P];
|
|
47
64
|
};
|
|
48
|
-
export declare type
|
|
49
|
-
select: T['select']
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
export declare type
|
|
65
|
+
export declare type GetSelectedFromObject<T extends FluentQuery<Model>, Model> = {
|
|
66
|
+
[P in keyof T['select']]: T['select'][P] extends object ? NonNullable<Model[P]> extends any[] ? QueryOutput<{
|
|
67
|
+
select: T['select'][P];
|
|
68
|
+
}, Unpacked<NonNullable<Model[P]>>>[] | AddUndefinedIfNullable<Model[P]> : QueryOutput<{
|
|
69
|
+
select: T['select'][P];
|
|
70
|
+
}, Unpacked<NonNullable<Model[P]>>> | AddUndefinedIfNullable<Model[P]> : Model[P];
|
|
71
|
+
} & GetSelectedFromInclude<T, Model>;
|
|
72
|
+
export declare type QueryOutput<T extends FluentQuery<Model>, Model> = ExpandRecursively<T extends {
|
|
56
73
|
select: T['select'];
|
|
57
74
|
} ? T extends {
|
|
58
75
|
paginated: T['paginated'];
|
|
59
|
-
} ? PaginatedData<GetSelectedFromObject<T, Model
|
|
76
|
+
} ? PaginatedData<GetSelectedFromObject<T, Model>> : ExpandRecursively<GetSelectedFromObject<T, Model>> : T extends {
|
|
60
77
|
paginated: T['paginated'];
|
|
61
|
-
} ? PaginatedData<
|
|
78
|
+
} ? PaginatedData<Model> : Model & GetSelectedFromInclude<T, Model>>;
|
|
62
79
|
export interface PaginatedData<T> {
|
|
63
80
|
currentPage: number;
|
|
64
81
|
data: T[];
|
|
@@ -103,7 +120,7 @@ export declare enum LogicOperator {
|
|
|
103
120
|
notExists = "notExists"
|
|
104
121
|
}
|
|
105
122
|
export declare type FluentHasManyRelatedAttribute<T> = Partial<{
|
|
106
|
-
[K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Unpacked<Partial<FluentHasManyRelatedAttribute<Concrete<T>[K]>>> |
|
|
123
|
+
[K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Unpacked<Partial<FluentHasManyRelatedAttribute<Concrete<T>[K]>>> | true : true | undefined;
|
|
107
124
|
}>;
|
|
108
125
|
export declare type FluentHasManyParams<T extends FluentHasManyParams<T>> = {
|
|
109
126
|
repository: new () => InstanceType<T['repository']>;
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Options as WithContainerOptions } from '@goatlab/fluent/src/TypeOrmConnector/test/docker/docker';
|
|
2
|
+
export interface Options extends Omit<WithContainerOptions, 'internalPort' | 'enableDebugInstructions' | 'testConnection'> {
|
|
3
|
+
mongoUser: string;
|
|
4
|
+
mongoPassword: string;
|
|
5
|
+
mongoDb: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function waitForConnection(databaseURL: string, timeoutSeconds: number): Promise<void>;
|
|
8
|
+
export default function getDatabase(options?: Partial<Options>): Promise<{
|
|
9
|
+
proc: any;
|
|
10
|
+
databaseURL: string;
|
|
11
|
+
kill: () => Promise<void>;
|
|
12
|
+
user: string;
|
|
13
|
+
password: string;
|
|
14
|
+
port: number;
|
|
15
|
+
dbName: string;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitForConnection = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const docker_1 = tslib_1.__importDefault(require("@goatlab/fluent/src/TypeOrmConnector/test/docker/docker"));
|
|
6
|
+
const mongodb_1 = require("mongodb");
|
|
7
|
+
const DEFAULT_IMAGE = 'mongo:6.0.1';
|
|
8
|
+
const DEFAULT_CONTAINER_NAME = `fluent-${DEFAULT_IMAGE.replace(':', '-')}-test`;
|
|
9
|
+
const DEFAULT_CONNECT_TIMEOUT_SECONDS = 10;
|
|
10
|
+
const DEFAULT_MONGO_PORT = 27017;
|
|
11
|
+
const DEFAULT_MONGO_USER = 'test-user';
|
|
12
|
+
const DEFAULT_MONGO_PASSWORD = 'password';
|
|
13
|
+
const DEFAULT_MONGO_DB = 'test-db';
|
|
14
|
+
const DEFAULT_MONGO_DEBUG = false;
|
|
15
|
+
async function waitForConnection(databaseURL, timeoutSeconds) {
|
|
16
|
+
const start = Date.now();
|
|
17
|
+
const timeoutMilliseconds = timeoutSeconds * 1000;
|
|
18
|
+
let lastAttempt = false;
|
|
19
|
+
while (true) {
|
|
20
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
21
|
+
const conn = new mongodb_1.MongoClient(databaseURL);
|
|
22
|
+
try {
|
|
23
|
+
try {
|
|
24
|
+
await conn.connect();
|
|
25
|
+
const db = conn.db('anyDB');
|
|
26
|
+
const result = await db.command({
|
|
27
|
+
ping: 1
|
|
28
|
+
});
|
|
29
|
+
if (result.ok) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
if (lastAttempt) {
|
|
34
|
+
throw new Error('Got unexpected result: ' + JSON.stringify(result));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (ex) {
|
|
39
|
+
console.log(ex);
|
|
40
|
+
if (lastAttempt) {
|
|
41
|
+
throw ex;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
await conn.close();
|
|
47
|
+
}
|
|
48
|
+
if (Date.now() - timeoutMilliseconds > start) {
|
|
49
|
+
lastAttempt = true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.waitForConnection = waitForConnection;
|
|
54
|
+
async function getDatabase(options = {}) {
|
|
55
|
+
const { mongoUser, mongoPassword, mongoDb, environment, ...rawOptions } = {
|
|
56
|
+
debug: DEFAULT_MONGO_DEBUG,
|
|
57
|
+
image: DEFAULT_IMAGE,
|
|
58
|
+
containerName: DEFAULT_CONTAINER_NAME,
|
|
59
|
+
connectTimeoutSeconds: DEFAULT_CONNECT_TIMEOUT_SECONDS,
|
|
60
|
+
mongoUser: DEFAULT_MONGO_USER,
|
|
61
|
+
mongoPassword: DEFAULT_MONGO_PASSWORD,
|
|
62
|
+
mongoDb: DEFAULT_MONGO_DB,
|
|
63
|
+
defaultExternalPort: DEFAULT_MONGO_PORT,
|
|
64
|
+
...options
|
|
65
|
+
};
|
|
66
|
+
const { proc, externalPort, kill } = await (0, docker_1.default)({
|
|
67
|
+
...rawOptions,
|
|
68
|
+
internalPort: DEFAULT_MONGO_PORT,
|
|
69
|
+
environment: {
|
|
70
|
+
MONGO_HOST: '127.0.0.1',
|
|
71
|
+
...environment,
|
|
72
|
+
MONGO_INITDB_ROOT_USERNAME: mongoUser,
|
|
73
|
+
MONGO_INITDB_ROOT_PASSWORD: mongoPassword,
|
|
74
|
+
MONGO_DB_USER: mongoUser,
|
|
75
|
+
MONGO_DB_PASSWORD: mongoPassword,
|
|
76
|
+
MONGO_PASSWORD: mongoPassword,
|
|
77
|
+
MONGO_INITDB_DATABASE: mongoDb
|
|
78
|
+
},
|
|
79
|
+
enableDebugInstructions: `To view logs, run with MONGO_TEST_DEBUG=true environment variable.`
|
|
80
|
+
});
|
|
81
|
+
const databaseURL = `mongodb://${mongoUser}:${mongoPassword}@localhost:${externalPort}`;
|
|
82
|
+
await waitForConnection(databaseURL, rawOptions.connectTimeoutSeconds);
|
|
83
|
+
return {
|
|
84
|
+
proc,
|
|
85
|
+
databaseURL,
|
|
86
|
+
kill,
|
|
87
|
+
user: mongoUser,
|
|
88
|
+
password: mongoPassword,
|
|
89
|
+
port: externalPort,
|
|
90
|
+
dbName: mongoDb
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
exports.default = getDatabase;
|