@loopback/sequelize 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/index.js +2 -0
- package/dist/.sandbox/67481g1551m/controllers/product.controller.js +177 -0
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/test.controller.base.js +9 -7
- package/dist/.sandbox/67481g1551m/controllers/transaction.controller.js +157 -0
- package/dist/.sandbox/67481g1551m/datasources/config.js +43 -0
- package/dist/.sandbox/67481g1551m/datasources/primary.datasource.js +28 -0
- package/dist/.sandbox/67481g1551m/datasources/secondary.datasource.js +28 -0
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/index.js +8 -7
- package/dist/.sandbox/67481g1551m/models/product.model.js +41 -0
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/appointment.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/book.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/category.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/developer.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/doctor.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/index.js +8 -7
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/patient.repository.js +3 -3
- package/dist/.sandbox/67481g1551m/repositories/product.repository.js +20 -0
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/programming-language.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/todo-list.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/todo.repository.js +3 -3
- package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/user.repository.js +3 -7
- package/dist/sequelize/connector-mapping.d.ts +15 -1
- package/dist/sequelize/connector-mapping.js +38 -1
- package/dist/sequelize/connector-mapping.js.map +1 -1
- package/dist/sequelize/sequelize.datasource.base.d.ts +13 -2
- package/dist/sequelize/sequelize.datasource.base.js +79 -26
- package/dist/sequelize/sequelize.datasource.base.js.map +1 -1
- package/dist/sequelize/sequelize.repository.base.d.ts +4 -3
- package/dist/sequelize/sequelize.repository.base.js +12 -7
- package/dist/sequelize/sequelize.repository.base.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.js +6 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -13
- package/src/sequelize/connector-mapping.ts +53 -1
- package/src/sequelize/sequelize.datasource.base.ts +110 -25
- package/src/sequelize/sequelize.repository.base.ts +22 -8
- package/src/types.ts +5 -0
- package/dist/.sandbox/6646miobBk/datasources/db.datasource.js +0 -28
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/application.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/book-category.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/book.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/category.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/developer.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/doctor-patient.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/doctor.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/patient.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/programming-languange.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/todo-list-todo.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/todo-list.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/todo-todo-list.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/todo.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/user-todo-list.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/controllers/user.controller.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/appointment.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/book.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/category.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/developer.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/doctor.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/patient.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/programming-language.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/todo-list.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/todo.model.js +0 -0
- /package/dist/.sandbox/{6646miobBk → 67481g1551m}/models/user.model.js +0 -0
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const repository_1 = require("@loopback/repository");
|
|
7
7
|
const sequelize_1 = require("../../../sequelize");
|
|
8
|
-
const
|
|
8
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
9
9
|
const index_1 = require("../models/index");
|
|
10
10
|
let BookRepository = class BookRepository extends sequelize_1.SequelizeCrudRepository {
|
|
11
11
|
constructor(dataSource, categoryRepositoryGetter) {
|
|
@@ -16,9 +16,9 @@ let BookRepository = class BookRepository extends sequelize_1.SequelizeCrudRepos
|
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
BookRepository = tslib_1.__decorate([
|
|
19
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
19
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
20
20
|
tslib_1.__param(1, repository_1.repository.getter('CategoryRepository')),
|
|
21
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
21
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
|
|
22
22
|
], BookRepository);
|
|
23
23
|
exports.BookRepository = BookRepository;
|
|
24
24
|
//# sourceMappingURL=book.repository.js.map
|
|
@@ -4,7 +4,7 @@ exports.CategoryRepository = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const sequelize_1 = require("../../../sequelize");
|
|
7
|
-
const
|
|
7
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
8
8
|
const index_1 = require("../models/index");
|
|
9
9
|
let CategoryRepository = class CategoryRepository extends sequelize_1.SequelizeCrudRepository {
|
|
10
10
|
constructor(dataSource) {
|
|
@@ -12,8 +12,8 @@ let CategoryRepository = class CategoryRepository extends sequelize_1.SequelizeC
|
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
CategoryRepository = tslib_1.__decorate([
|
|
15
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
16
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
15
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
16
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
|
|
17
17
|
], CategoryRepository);
|
|
18
18
|
exports.CategoryRepository = CategoryRepository;
|
|
19
19
|
//# sourceMappingURL=category.repository.js.map
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const repository_1 = require("@loopback/repository");
|
|
7
7
|
const sequelize_1 = require("../../../sequelize");
|
|
8
|
-
const
|
|
8
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
9
9
|
const index_1 = require("../models/index");
|
|
10
10
|
let DeveloperRepository = class DeveloperRepository extends sequelize_1.SequelizeCrudRepository {
|
|
11
11
|
constructor(dataSource, programmingLanguageRepositoryGetter) {
|
|
@@ -16,9 +16,9 @@ let DeveloperRepository = class DeveloperRepository extends sequelize_1.Sequeliz
|
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
DeveloperRepository = tslib_1.__decorate([
|
|
19
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
19
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
20
20
|
tslib_1.__param(1, repository_1.repository.getter('ProgrammingLanguageRepository')),
|
|
21
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
21
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
|
|
22
22
|
], DeveloperRepository);
|
|
23
23
|
exports.DeveloperRepository = DeveloperRepository;
|
|
24
24
|
//# sourceMappingURL=developer.repository.js.map
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const repository_1 = require("@loopback/repository");
|
|
7
7
|
const sequelize_1 = require("../../../sequelize");
|
|
8
|
-
const
|
|
8
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
9
9
|
const index_1 = require("../models/index");
|
|
10
10
|
let DoctorRepository = class DoctorRepository extends sequelize_1.SequelizeCrudRepository {
|
|
11
11
|
constructor(dataSource, appointmentRepositoryGetter, patientRepositoryGetter) {
|
|
@@ -17,10 +17,10 @@ let DoctorRepository = class DoctorRepository extends sequelize_1.SequelizeCrudR
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
DoctorRepository = tslib_1.__decorate([
|
|
20
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
20
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
21
21
|
tslib_1.__param(1, repository_1.repository.getter('AppointmentRepository')),
|
|
22
22
|
tslib_1.__param(2, repository_1.repository.getter('PatientRepository')),
|
|
23
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
23
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function, Function])
|
|
24
24
|
], DoctorRepository);
|
|
25
25
|
exports.DoctorRepository = DoctorRepository;
|
|
26
26
|
//# sourceMappingURL=doctor.repository.js.map
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./todo.repository"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./todo-list.repository"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./user.repository"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./doctor.repository"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./patient.repository"), exports);
|
|
9
4
|
tslib_1.__exportStar(require("./appointment.repository"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./developer.repository"), exports);
|
|
11
|
-
tslib_1.__exportStar(require("./programming-language.repository"), exports);
|
|
12
5
|
tslib_1.__exportStar(require("./book.repository"), exports);
|
|
13
6
|
tslib_1.__exportStar(require("./category.repository"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./developer.repository"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./doctor.repository"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./patient.repository"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./product.repository"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./programming-language.repository"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./todo-list.repository"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./todo.repository"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./user.repository"), exports);
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
|
15
16
|
//# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/index.js.map
|
|
@@ -4,7 +4,7 @@ exports.PatientRepository = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const sequelize_1 = require("../../../sequelize");
|
|
7
|
-
const
|
|
7
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
8
8
|
const index_1 = require("../models/index");
|
|
9
9
|
let PatientRepository = class PatientRepository extends sequelize_1.SequelizeCrudRepository {
|
|
10
10
|
constructor(dataSource) {
|
|
@@ -12,8 +12,8 @@ let PatientRepository = class PatientRepository extends sequelize_1.SequelizeCru
|
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
PatientRepository = tslib_1.__decorate([
|
|
15
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
16
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
15
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
16
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
|
|
17
17
|
], PatientRepository);
|
|
18
18
|
exports.PatientRepository = PatientRepository;
|
|
19
19
|
//# sourceMappingURL=patient.repository.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProductRepository = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@loopback/core");
|
|
6
|
+
const sequelize_1 = require("../../../sequelize");
|
|
7
|
+
const secondary_datasource_1 = require("../datasources/secondary.datasource");
|
|
8
|
+
const models_1 = require("../models");
|
|
9
|
+
let ProductRepository = class ProductRepository extends sequelize_1.SequelizeCrudRepository {
|
|
10
|
+
constructor(dataSource) {
|
|
11
|
+
super(models_1.Product, dataSource);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
ProductRepository = tslib_1.__decorate([
|
|
15
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.secondary')),
|
|
16
|
+
tslib_1.__metadata("design:paramtypes", [secondary_datasource_1.SecondaryDataSource])
|
|
17
|
+
], ProductRepository);
|
|
18
|
+
exports.ProductRepository = ProductRepository;
|
|
19
|
+
//# sourceMappingURL=product.repository.js.map
|
|
20
|
+
//# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/product.repository.js.map
|
package/dist/.sandbox/{6646miobBk → 67481g1551m}/repositories/programming-language.repository.js
RENAMED
|
@@ -4,7 +4,7 @@ exports.ProgrammingLanguageRepository = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const sequelize_1 = require("../../../sequelize");
|
|
7
|
-
const
|
|
7
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
8
8
|
const index_1 = require("../models/index");
|
|
9
9
|
let ProgrammingLanguageRepository = class ProgrammingLanguageRepository extends sequelize_1.SequelizeCrudRepository {
|
|
10
10
|
constructor(dataSource) {
|
|
@@ -12,8 +12,8 @@ let ProgrammingLanguageRepository = class ProgrammingLanguageRepository extends
|
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
ProgrammingLanguageRepository = tslib_1.__decorate([
|
|
15
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
16
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
15
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
16
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
|
|
17
17
|
], ProgrammingLanguageRepository);
|
|
18
18
|
exports.ProgrammingLanguageRepository = ProgrammingLanguageRepository;
|
|
19
19
|
//# sourceMappingURL=programming-language.repository.js.map
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const repository_1 = require("@loopback/repository");
|
|
7
7
|
const sequelize_1 = require("../../../sequelize");
|
|
8
|
-
const
|
|
8
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
9
9
|
const index_1 = require("../models/index");
|
|
10
10
|
let TodoListRepository = class TodoListRepository extends sequelize_1.SequelizeCrudRepository {
|
|
11
11
|
constructor(dataSource, todoRepositoryGetter) {
|
|
@@ -16,9 +16,9 @@ let TodoListRepository = class TodoListRepository extends sequelize_1.SequelizeC
|
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
TodoListRepository = tslib_1.__decorate([
|
|
19
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
19
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
20
20
|
tslib_1.__param(1, repository_1.repository.getter('TodoRepository')),
|
|
21
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
21
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
|
|
22
22
|
], TodoListRepository);
|
|
23
23
|
exports.TodoListRepository = TodoListRepository;
|
|
24
24
|
//# sourceMappingURL=todo-list.repository.js.map
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const core_1 = require("@loopback/core");
|
|
6
6
|
const repository_1 = require("@loopback/repository");
|
|
7
7
|
const sequelize_1 = require("../../../sequelize");
|
|
8
|
-
const
|
|
8
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
9
9
|
const index_1 = require("../models/index");
|
|
10
10
|
let TodoRepository = class TodoRepository extends sequelize_1.SequelizeCrudRepository {
|
|
11
11
|
constructor(dataSource, todoListRepositoryGetter) {
|
|
@@ -16,9 +16,9 @@ let TodoRepository = class TodoRepository extends sequelize_1.SequelizeCrudRepos
|
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
TodoRepository = tslib_1.__decorate([
|
|
19
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
19
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
20
20
|
tslib_1.__param(1, repository_1.repository.getter('TodoListRepository')),
|
|
21
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
21
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
|
|
22
22
|
], TodoRepository);
|
|
23
23
|
exports.TodoRepository = TodoRepository;
|
|
24
24
|
//# sourceMappingURL=todo.repository.js.map
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright LoopBack contributors 2022. All Rights Reserved.
|
|
3
|
-
// Node module: @loopback/sequelize
|
|
4
|
-
// This file is licensed under the MIT License.
|
|
5
|
-
// License text available at https://opensource.org/licenses/MIT
|
|
6
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
3
|
exports.UserRepository = void 0;
|
|
8
4
|
const tslib_1 = require("tslib");
|
|
9
5
|
const core_1 = require("@loopback/core");
|
|
10
6
|
const repository_1 = require("@loopback/repository");
|
|
11
7
|
const sequelize_1 = require("../../../sequelize");
|
|
12
|
-
const
|
|
8
|
+
const primary_datasource_1 = require("../datasources/primary.datasource");
|
|
13
9
|
const index_1 = require("../models/index");
|
|
14
10
|
let UserRepository = class UserRepository extends sequelize_1.SequelizeCrudRepository {
|
|
15
11
|
constructor(dataSource, todoListRepositoryGetter) {
|
|
@@ -20,9 +16,9 @@ let UserRepository = class UserRepository extends sequelize_1.SequelizeCrudRepos
|
|
|
20
16
|
}
|
|
21
17
|
};
|
|
22
18
|
UserRepository = tslib_1.__decorate([
|
|
23
|
-
tslib_1.__param(0, (0, core_1.inject)('datasources.
|
|
19
|
+
tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
|
|
24
20
|
tslib_1.__param(1, repository_1.repository.getter('TodoListRepository')),
|
|
25
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
21
|
+
tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
|
|
26
22
|
], UserRepository);
|
|
27
23
|
exports.UserRepository = UserRepository;
|
|
28
24
|
//# sourceMappingURL=user.repository.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dialect as AllSequelizeDialects } from 'sequelize';
|
|
1
|
+
import { Dialect as AllSequelizeDialects, PoolOptions } from 'sequelize';
|
|
2
2
|
export type SupportedLoopbackConnectors = 'mysql' | 'postgresql' | 'oracle' | 'sqlite3' | 'db2';
|
|
3
3
|
/**
|
|
4
4
|
* @key Loopback connectors name supported by this extension
|
|
@@ -7,3 +7,17 @@ export type SupportedLoopbackConnectors = 'mysql' | 'postgresql' | 'oracle' | 's
|
|
|
7
7
|
export declare const SupportedConnectorMapping: {
|
|
8
8
|
[key in SupportedLoopbackConnectors]?: AllSequelizeDialects;
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Loopback uses different keys for pool options depending on the connector.
|
|
12
|
+
*/
|
|
13
|
+
export declare const poolConfigKeys: readonly ["connectionLimit", "acquireTimeout", "min", "max", "idleTimeoutMillis", "minConn", "maxConn", "timeout"];
|
|
14
|
+
export type LoopbackPoolConfigKey = (typeof poolConfigKeys)[number];
|
|
15
|
+
export type PoolingEnabledConnector = Exclude<SupportedLoopbackConnectors, 'db2' | 'sqlite3'>;
|
|
16
|
+
export declare const poolingEnabledConnectors: PoolingEnabledConnector[];
|
|
17
|
+
type IConnectionPoolOptions = {
|
|
18
|
+
[connectorName in PoolingEnabledConnector]?: {
|
|
19
|
+
[sequelizePoolOption in keyof PoolOptions]: LoopbackPoolConfigKey;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare const ConnectionPoolOptions: IConnectionPoolOptions;
|
|
23
|
+
export {};
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.SupportedConnectorMapping = void 0;
|
|
7
|
+
exports.ConnectionPoolOptions = exports.poolingEnabledConnectors = exports.poolConfigKeys = exports.SupportedConnectorMapping = void 0;
|
|
8
8
|
/**
|
|
9
9
|
* @key Loopback connectors name supported by this extension
|
|
10
10
|
* @value Equivalent Dialect in Sequelize
|
|
@@ -16,4 +16,41 @@ exports.SupportedConnectorMapping = {
|
|
|
16
16
|
sqlite3: 'sqlite',
|
|
17
17
|
db2: 'db2',
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Loopback uses different keys for pool options depending on the connector.
|
|
21
|
+
*/
|
|
22
|
+
exports.poolConfigKeys = [
|
|
23
|
+
// mysql
|
|
24
|
+
'connectionLimit',
|
|
25
|
+
'acquireTimeout',
|
|
26
|
+
// postgresql
|
|
27
|
+
'min',
|
|
28
|
+
'max',
|
|
29
|
+
'idleTimeoutMillis',
|
|
30
|
+
// oracle
|
|
31
|
+
'minConn',
|
|
32
|
+
'maxConn',
|
|
33
|
+
'timeout',
|
|
34
|
+
];
|
|
35
|
+
exports.poolingEnabledConnectors = [
|
|
36
|
+
'mysql',
|
|
37
|
+
'oracle',
|
|
38
|
+
'postgresql',
|
|
39
|
+
];
|
|
40
|
+
exports.ConnectionPoolOptions = {
|
|
41
|
+
mysql: {
|
|
42
|
+
max: 'connectionLimit',
|
|
43
|
+
acquire: 'acquireTimeout',
|
|
44
|
+
},
|
|
45
|
+
postgresql: {
|
|
46
|
+
min: 'min',
|
|
47
|
+
max: 'max',
|
|
48
|
+
idle: 'idleTimeoutMillis',
|
|
49
|
+
},
|
|
50
|
+
oracle: {
|
|
51
|
+
min: 'minConn',
|
|
52
|
+
max: 'maxConn',
|
|
53
|
+
idle: 'timeout',
|
|
54
|
+
},
|
|
55
|
+
};
|
|
19
56
|
//# sourceMappingURL=connector-mapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-mapping.js","sourceRoot":"","sources":["../../src/sequelize/connector-mapping.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,mCAAmC;AACnC,+CAA+C;AAC/C,gEAAgE;;;AAUhE;;;GAGG;AACU,QAAA,yBAAyB,GAElC;IACF,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,GAAG,EAAE,KAAK;CACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"connector-mapping.js","sourceRoot":"","sources":["../../src/sequelize/connector-mapping.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,mCAAmC;AACnC,+CAA+C;AAC/C,gEAAgE;;;AAUhE;;;GAGG;AACU,QAAA,yBAAyB,GAElC;IACF,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,GAAG,EAAE,KAAK;CACX,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,QAAQ;IACR,iBAAiB;IACjB,gBAAgB;IAChB,aAAa;IACb,KAAK;IACL,KAAK;IACL,mBAAmB;IACnB,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACD,CAAC;AAQE,QAAA,wBAAwB,GAA8B;IACjE,OAAO;IACP,QAAQ;IACR,YAAY;CACb,CAAC;AAQW,QAAA,qBAAqB,GAA2B;IAC3D,KAAK,EAAE;QACL,GAAG,EAAE,iBAAiB;QACtB,OAAO,EAAE,gBAAgB;KAC1B;IACD,UAAU,EAAE;QACV,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,mBAAmB;KAC1B;IACD,MAAM,EAAE;QACN,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;KAChB;CACF,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { LifeCycleObserver } from '@loopback/core';
|
|
2
2
|
import { AnyObject } from '@loopback/repository';
|
|
3
|
-
import { Options as SequelizeOptions,
|
|
3
|
+
import { PoolOptions, Sequelize, Options as SequelizeOptions, Transaction, TransactionOptions } from 'sequelize';
|
|
4
4
|
import { SupportedLoopbackConnectors } from './connector-mapping';
|
|
5
|
+
/**
|
|
6
|
+
* Sequelize DataSource Class
|
|
7
|
+
*/
|
|
5
8
|
export declare class SequelizeDataSource implements LifeCycleObserver {
|
|
6
9
|
config: SequelizeDataSourceConfig;
|
|
7
10
|
name: string;
|
|
@@ -11,9 +14,17 @@ export declare class SequelizeDataSource implements LifeCycleObserver {
|
|
|
11
14
|
sequelizeConfig: SequelizeDataSourceConfig;
|
|
12
15
|
init(): Promise<void>;
|
|
13
16
|
start(..._injectedArgs: unknown[]): Promise<void>;
|
|
14
|
-
stop(): void
|
|
17
|
+
stop(): Promise<void>;
|
|
15
18
|
automigrate(): void;
|
|
16
19
|
autoupdate(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Begin a new transaction.
|
|
22
|
+
*
|
|
23
|
+
* @param [options] Options {isolationLevel: '...'}
|
|
24
|
+
* @returns A promise which resolves to a Sequelize Transaction object
|
|
25
|
+
*/
|
|
26
|
+
beginTransaction(options?: TransactionOptions | TransactionOptions['isolationLevel']): Promise<Transaction>;
|
|
27
|
+
getPoolOptions(): PoolOptions | undefined;
|
|
17
28
|
}
|
|
18
29
|
export type SequelizeDataSourceConfig = SequelizeOptions & {
|
|
19
30
|
name?: string;
|
|
@@ -7,6 +7,9 @@ const sequelize_1 = require("sequelize");
|
|
|
7
7
|
const connector_mapping_1 = require("./connector-mapping");
|
|
8
8
|
const debug = (0, debug_1.default)('loopback:sequelize:datasource');
|
|
9
9
|
const queryLogging = (0, debug_1.default)('loopback:sequelize:queries');
|
|
10
|
+
/**
|
|
11
|
+
* Sequelize DataSource Class
|
|
12
|
+
*/
|
|
10
13
|
class SequelizeDataSource {
|
|
11
14
|
constructor(config) {
|
|
12
15
|
var _a;
|
|
@@ -18,42 +21,92 @@ class SequelizeDataSource {
|
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
23
|
async init() {
|
|
21
|
-
|
|
22
|
-
const connector =
|
|
23
|
-
const storage = this.config.file;
|
|
24
|
-
const schema = this.config.schema;
|
|
24
|
+
const { config } = this;
|
|
25
|
+
const { connector, file, schema, database, host, port, user, username, password, } = config;
|
|
25
26
|
this.sequelizeConfig = {
|
|
26
|
-
database
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
username: (_a = this.config.user) !== null && _a !== void 0 ? _a : this.config.username,
|
|
35
|
-
password: this.config.password,
|
|
27
|
+
database,
|
|
28
|
+
dialect: connector ? connector_mapping_1.SupportedConnectorMapping[connector] : undefined,
|
|
29
|
+
storage: file,
|
|
30
|
+
host,
|
|
31
|
+
port,
|
|
32
|
+
schema,
|
|
33
|
+
username: user !== null && user !== void 0 ? user : username,
|
|
34
|
+
password,
|
|
36
35
|
logging: queryLogging,
|
|
36
|
+
pool: this.getPoolOptions(),
|
|
37
37
|
};
|
|
38
38
|
this.sequelize = new sequelize_1.Sequelize(this.sequelizeConfig);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
debug('Connection has been established successfully.');
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
console.error('Unable to connect to the database:', error);
|
|
45
|
-
}
|
|
39
|
+
await this.sequelize.authenticate();
|
|
40
|
+
debug('Connection has been established successfully.');
|
|
46
41
|
}
|
|
47
42
|
async start(..._injectedArgs) { }
|
|
48
|
-
stop() {
|
|
49
|
-
var _a
|
|
50
|
-
|
|
43
|
+
async stop() {
|
|
44
|
+
var _a;
|
|
45
|
+
await ((_a = this.sequelize) === null || _a === void 0 ? void 0 : _a.close());
|
|
51
46
|
}
|
|
52
47
|
automigrate() {
|
|
53
|
-
throw new Error('Migrations are not supported
|
|
48
|
+
throw new Error('SequelizeDataSourceError: Migrations are not supported. Use `db-migrate` package instead.');
|
|
54
49
|
}
|
|
55
50
|
autoupdate() {
|
|
56
|
-
throw new Error('Migrations are not supported
|
|
51
|
+
throw new Error('SequelizeDataSourceError: Migrations are not supported. Use `db-migrate` package instead.');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Begin a new transaction.
|
|
55
|
+
*
|
|
56
|
+
* @param [options] Options {isolationLevel: '...'}
|
|
57
|
+
* @returns A promise which resolves to a Sequelize Transaction object
|
|
58
|
+
*/
|
|
59
|
+
async beginTransaction(options) {
|
|
60
|
+
var _a;
|
|
61
|
+
/**
|
|
62
|
+
* Default Isolation level for transactions is `READ_COMMITTED`, to be consistent with loopback default.
|
|
63
|
+
* See: https://loopback.io/doc/en/lb4/Using-database-transactions.html#isolation-levels
|
|
64
|
+
*/
|
|
65
|
+
const DEFAULT_ISOLATION_LEVEL = sequelize_1.Transaction.ISOLATION_LEVELS.READ_COMMITTED;
|
|
66
|
+
if (typeof options === 'string') {
|
|
67
|
+
// Received `isolationLevel` as the first argument
|
|
68
|
+
options = {
|
|
69
|
+
isolationLevel: options,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
else if (options === undefined) {
|
|
73
|
+
options = {
|
|
74
|
+
isolationLevel: DEFAULT_ISOLATION_LEVEL,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
options.isolationLevel =
|
|
79
|
+
(_a = options.isolationLevel) !== null && _a !== void 0 ? _a : DEFAULT_ISOLATION_LEVEL;
|
|
80
|
+
}
|
|
81
|
+
return this.sequelize.transaction(options);
|
|
82
|
+
}
|
|
83
|
+
getPoolOptions() {
|
|
84
|
+
const config = this.config;
|
|
85
|
+
const specifiedPoolOptions = Object.keys(config).some(key => connector_mapping_1.poolConfigKeys.includes(key));
|
|
86
|
+
const supportsPooling = config.connector &&
|
|
87
|
+
connector_mapping_1.poolingEnabledConnectors.includes(config.connector);
|
|
88
|
+
if (!(supportsPooling && specifiedPoolOptions)) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const optionMapping = connector_mapping_1.ConnectionPoolOptions[config.connector];
|
|
92
|
+
if (!optionMapping) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const { min, max, acquire, idle } = optionMapping;
|
|
96
|
+
const options = {};
|
|
97
|
+
if (max && config[max]) {
|
|
98
|
+
options.max = config[max];
|
|
99
|
+
}
|
|
100
|
+
if (min && config[min]) {
|
|
101
|
+
options.min = config[min];
|
|
102
|
+
}
|
|
103
|
+
if (acquire && config[acquire]) {
|
|
104
|
+
options.acquire = config[acquire];
|
|
105
|
+
}
|
|
106
|
+
if (idle && config[idle]) {
|
|
107
|
+
options.idle = config[idle];
|
|
108
|
+
}
|
|
109
|
+
return options;
|
|
57
110
|
}
|
|
58
111
|
}
|
|
59
112
|
exports.SequelizeDataSource = SequelizeDataSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize.datasource.base.js","sourceRoot":"","sources":["../../src/sequelize/sequelize.datasource.base.ts"],"names":[],"mappings":";;;;AAEA,0DAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"sequelize.datasource.base.js","sourceRoot":"","sources":["../../src/sequelize/sequelize.datasource.base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnyObject, BelongsToAccessor, Count, DataObject, Entity, EntityCrudRepository, Fields, Filter, FilterExcludingWhere, Getter, HasManyRepositoryFactory, HasManyThroughRepositoryFactory, HasOneRepositoryFactory, InclusionFilter, InclusionResolver, PositionalParameters, PropertyDefinition, ReferencesManyAccessor, Where } from '@loopback/repository';
|
|
2
|
-
import { Attributes, FindAttributeOptions, Includeable, Model, ModelAttributes, ModelStatic, Order, SyncOptions, WhereOptions } from 'sequelize';
|
|
2
|
+
import { Attributes, FindAttributeOptions, Includeable, Model, ModelAttributes, ModelStatic, Order, SyncOptions, Transaction, TransactionOptions, WhereOptions } from 'sequelize';
|
|
3
3
|
import { operatorTranslations } from './operator-translation';
|
|
4
4
|
import { SequelizeDataSource } from './sequelize.datasource.base';
|
|
5
5
|
import { SequelizeModel } from './sequelize.model';
|
|
@@ -22,14 +22,14 @@ export declare class SequelizeCrudRepository<T extends Entity, ID, Relations ext
|
|
|
22
22
|
/**
|
|
23
23
|
* Object keys used in models for set database specific settings.
|
|
24
24
|
* Example: In model property definition one can use postgresql dataType as float
|
|
25
|
-
* {
|
|
25
|
+
* `{
|
|
26
26
|
* type: 'number',
|
|
27
27
|
* postgresql: {
|
|
28
28
|
* dataType: 'float',
|
|
29
29
|
* precision: 20,
|
|
30
30
|
* scale: 4,
|
|
31
31
|
* },
|
|
32
|
-
* }
|
|
32
|
+
* }`
|
|
33
33
|
*
|
|
34
34
|
* This array of keys is used while building model definition for sequelize.
|
|
35
35
|
*/
|
|
@@ -228,4 +228,5 @@ export declare class SequelizeCrudRepository<T extends Entity, ID, Relations ext
|
|
|
228
228
|
* @param targetRepo - Target repository instance
|
|
229
229
|
*/
|
|
230
230
|
protected createReferencesManyAccessorFor<Target extends Entity, TargetId>(relationName: string, targetRepoGetter: Getter<EntityCrudRepository<Target, TargetId>>): ReferencesManyAccessor<Target, ID>;
|
|
231
|
+
beginTransaction(options?: TransactionOptions | TransactionOptions['isolationLevel']): Promise<Transaction>;
|
|
231
232
|
}
|
|
@@ -28,14 +28,14 @@ class SequelizeCrudRepository {
|
|
|
28
28
|
/**
|
|
29
29
|
* Object keys used in models for set database specific settings.
|
|
30
30
|
* Example: In model property definition one can use postgresql dataType as float
|
|
31
|
-
* {
|
|
31
|
+
* `{
|
|
32
32
|
* type: 'number',
|
|
33
33
|
* postgresql: {
|
|
34
34
|
* dataType: 'float',
|
|
35
35
|
* precision: 20,
|
|
36
36
|
* scale: 4,
|
|
37
37
|
* },
|
|
38
|
-
* }
|
|
38
|
+
* }`
|
|
39
39
|
*
|
|
40
40
|
* This array of keys is used while building model definition for sequelize.
|
|
41
41
|
*/
|
|
@@ -54,7 +54,6 @@ class SequelizeCrudRepository {
|
|
|
54
54
|
const data = await this.sequelizeModel
|
|
55
55
|
.create(entity, options)
|
|
56
56
|
.catch(error => {
|
|
57
|
-
console.error(error);
|
|
58
57
|
err = error;
|
|
59
58
|
});
|
|
60
59
|
if (!data) {
|
|
@@ -460,8 +459,11 @@ class SequelizeCrudRepository {
|
|
|
460
459
|
* @param options Sequelize Sync Options
|
|
461
460
|
*/
|
|
462
461
|
async syncSequelizeModel(options = {}) {
|
|
463
|
-
|
|
464
|
-
|
|
462
|
+
if (!this.dataSource.sequelize) {
|
|
463
|
+
throw new Error('Sequelize instance is not attached to the datasource yet.');
|
|
464
|
+
}
|
|
465
|
+
await this.dataSource.sequelize.authenticate();
|
|
466
|
+
await this.dataSource.sequelize.models[this.entityClass.modelName].sync(options);
|
|
465
467
|
}
|
|
466
468
|
/**
|
|
467
469
|
* Run CREATE TABLE query for the all sequelize models, Useful for quick testing
|
|
@@ -469,7 +471,7 @@ class SequelizeCrudRepository {
|
|
|
469
471
|
*/
|
|
470
472
|
async syncLoadedSequelizeModels(options = {}) {
|
|
471
473
|
var _a;
|
|
472
|
-
await ((_a = this.dataSource.sequelize) === null || _a === void 0 ? void 0 : _a.sync(options)
|
|
474
|
+
await ((_a = this.dataSource.sequelize) === null || _a === void 0 ? void 0 : _a.sync(options));
|
|
473
475
|
}
|
|
474
476
|
/**
|
|
475
477
|
* Get Sequelize Model Attributes
|
|
@@ -489,7 +491,7 @@ class SequelizeCrudRepository {
|
|
|
489
491
|
['String', 'string'].includes(definition[propName].type.toString());
|
|
490
492
|
if (definition[propName].type === Number ||
|
|
491
493
|
['Number', 'number'].includes(definition[propName].type.toString())) {
|
|
492
|
-
dataType = sequelize_1.DataTypes.
|
|
494
|
+
dataType = sequelize_1.DataTypes.INTEGER;
|
|
493
495
|
// handle float
|
|
494
496
|
for (const dbKey of this.DB_SPECIFIC_SETTINGS_KEYS) {
|
|
495
497
|
if (!(dbKey in definition[propName])) {
|
|
@@ -830,6 +832,9 @@ class SequelizeCrudRepository {
|
|
|
830
832
|
const meta = this.entityClass.definition.relations[relationName];
|
|
831
833
|
return (0, repository_1.createReferencesManyAccessor)(meta, targetRepoGetter, this);
|
|
832
834
|
}
|
|
835
|
+
async beginTransaction(options) {
|
|
836
|
+
return this.dataSource.beginTransaction(options);
|
|
837
|
+
}
|
|
833
838
|
}
|
|
834
839
|
exports.SequelizeCrudRepository = SequelizeCrudRepository;
|
|
835
840
|
//# sourceMappingURL=sequelize.repository.base.js.map
|