@loopback/sequelize 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/.sandbox/40627f10KYa/application.js +15 -0
  2. package/dist/.sandbox/40627f10KYa/controllers/book-category.controller.js +40 -0
  3. package/dist/.sandbox/40627f10KYa/controllers/book.controller.js +209 -0
  4. package/dist/.sandbox/40627f10KYa/controllers/category.controller.js +197 -0
  5. package/dist/.sandbox/40627f10KYa/controllers/developer.controller.js +176 -0
  6. package/dist/.sandbox/40627f10KYa/controllers/doctor-patient.controller.js +111 -0
  7. package/dist/.sandbox/40627f10KYa/controllers/doctor.controller.js +176 -0
  8. package/dist/.sandbox/40627f10KYa/controllers/index.js +23 -0
  9. package/dist/.sandbox/40627f10KYa/controllers/patient.controller.js +164 -0
  10. package/dist/.sandbox/40627f10KYa/controllers/product.controller.js +176 -0
  11. package/dist/.sandbox/40627f10KYa/controllers/programming-languange.controller.js +203 -0
  12. package/dist/.sandbox/40627f10KYa/controllers/task.controller.js +209 -0
  13. package/dist/.sandbox/40627f10KYa/controllers/test.controller.base.js +27 -0
  14. package/dist/.sandbox/40627f10KYa/controllers/todo-list-todo.controller.js +112 -0
  15. package/dist/.sandbox/40627f10KYa/controllers/todo-list.controller.js +176 -0
  16. package/dist/.sandbox/40627f10KYa/controllers/todo-todo-list.controller.js +40 -0
  17. package/dist/.sandbox/40627f10KYa/controllers/todo.controller.js +176 -0
  18. package/dist/.sandbox/40627f10KYa/controllers/transaction.controller.js +156 -0
  19. package/dist/.sandbox/40627f10KYa/controllers/user-todo-list.controller.js +112 -0
  20. package/dist/.sandbox/40627f10KYa/controllers/user.controller.js +209 -0
  21. package/dist/.sandbox/40627f10KYa/datasources/config.js +65 -0
  22. package/dist/.sandbox/40627f10KYa/datasources/primary.datasource.js +27 -0
  23. package/dist/.sandbox/40627f10KYa/datasources/secondary.datasource.js +27 -0
  24. package/dist/.sandbox/40627f10KYa/models/appointment.model.js +36 -0
  25. package/dist/.sandbox/40627f10KYa/models/book.model.js +47 -0
  26. package/dist/.sandbox/40627f10KYa/models/category.model.js +31 -0
  27. package/dist/.sandbox/40627f10KYa/models/developer.model.js +46 -0
  28. package/dist/.sandbox/40627f10KYa/models/doctor.model.js +43 -0
  29. package/dist/.sandbox/40627f10KYa/models/index.js +17 -0
  30. package/dist/.sandbox/40627f10KYa/models/patient.model.js +31 -0
  31. package/dist/.sandbox/40627f10KYa/models/product.model.js +40 -0
  32. package/dist/.sandbox/40627f10KYa/models/programming-language.model.js +38 -0
  33. package/dist/.sandbox/40627f10KYa/models/task.model.js +73 -0
  34. package/dist/.sandbox/40627f10KYa/models/todo-list.model.js +44 -0
  35. package/dist/.sandbox/40627f10KYa/models/todo.model.js +43 -0
  36. package/dist/.sandbox/40627f10KYa/models/user.model.js +90 -0
  37. package/dist/.sandbox/40627f10KYa/repositories/appointment.repository.js +19 -0
  38. package/dist/.sandbox/40627f10KYa/repositories/book.repository.js +24 -0
  39. package/dist/.sandbox/40627f10KYa/repositories/category.repository.js +19 -0
  40. package/dist/.sandbox/40627f10KYa/repositories/developer.repository.js +24 -0
  41. package/dist/.sandbox/40627f10KYa/repositories/doctor.repository.js +26 -0
  42. package/dist/.sandbox/40627f10KYa/repositories/index.js +17 -0
  43. package/dist/.sandbox/40627f10KYa/repositories/patient.repository.js +19 -0
  44. package/dist/.sandbox/40627f10KYa/repositories/product.repository.js +19 -0
  45. package/dist/.sandbox/40627f10KYa/repositories/programming-language.repository.js +19 -0
  46. package/dist/.sandbox/40627f10KYa/repositories/task.repository.js +25 -0
  47. package/dist/.sandbox/40627f10KYa/repositories/todo-list.repository.js +24 -0
  48. package/dist/.sandbox/40627f10KYa/repositories/todo.repository.js +24 -0
  49. package/dist/.sandbox/40627f10KYa/repositories/user.repository.js +24 -0
  50. package/dist/sequelize/sequelize.repository.base.d.ts +11 -0
  51. package/dist/sequelize/sequelize.repository.base.js +30 -3
  52. package/dist/sequelize/sequelize.repository.base.js.map +1 -1
  53. package/package.json +10 -10
  54. package/src/sequelize/sequelize.repository.base.ts +34 -3
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Task = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const repository_1 = require("@loopback/repository");
6
+ let Task = exports.Task = class Task extends repository_1.Entity {
7
+ constructor(data) {
8
+ super(data);
9
+ }
10
+ };
11
+ tslib_1.__decorate([
12
+ (0, repository_1.property)({
13
+ type: 'number',
14
+ id: true,
15
+ generated: true,
16
+ }),
17
+ tslib_1.__metadata("design:type", Number)
18
+ ], Task.prototype, "id", void 0);
19
+ tslib_1.__decorate([
20
+ (0, repository_1.property)({
21
+ type: 'string',
22
+ required: true,
23
+ }),
24
+ tslib_1.__metadata("design:type", String)
25
+ ], Task.prototype, "title", void 0);
26
+ tslib_1.__decorate([
27
+ (0, repository_1.property)({
28
+ type: 'string',
29
+ defaultFn: 'uuid',
30
+ }),
31
+ tslib_1.__metadata("design:type", String)
32
+ ], Task.prototype, "uuidv1", void 0);
33
+ tslib_1.__decorate([
34
+ (0, repository_1.property)({
35
+ type: 'string',
36
+ defaultFn: 'uuidv4',
37
+ }),
38
+ tslib_1.__metadata("design:type", String)
39
+ ], Task.prototype, "uuidv4", void 0);
40
+ tslib_1.__decorate([
41
+ (0, repository_1.property)({
42
+ type: 'string',
43
+ defaultFn: 'shortid',
44
+ }),
45
+ tslib_1.__metadata("design:type", String)
46
+ ], Task.prototype, "shortId", void 0);
47
+ tslib_1.__decorate([
48
+ (0, repository_1.property)({
49
+ type: 'string',
50
+ defaultFn: 'nanoid',
51
+ }),
52
+ tslib_1.__metadata("design:type", String)
53
+ ], Task.prototype, "nanoId", void 0);
54
+ tslib_1.__decorate([
55
+ (0, repository_1.property)({
56
+ type: 'number',
57
+ defaultFn: 'customAlias',
58
+ }),
59
+ tslib_1.__metadata("design:type", Number)
60
+ ], Task.prototype, "customAlias", void 0);
61
+ tslib_1.__decorate([
62
+ (0, repository_1.property)({
63
+ type: Date,
64
+ defaultFn: 'now',
65
+ }),
66
+ tslib_1.__metadata("design:type", Date)
67
+ ], Task.prototype, "createdAt", void 0);
68
+ exports.Task = Task = tslib_1.__decorate([
69
+ (0, repository_1.model)(),
70
+ tslib_1.__metadata("design:paramtypes", [Object])
71
+ ], Task);
72
+ //# sourceMappingURL=task.model.js.map
73
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/models/task.model.js.map
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TodoList = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const repository_1 = require("@loopback/repository");
6
+ const todo_model_1 = require("./todo.model");
7
+ let TodoList = exports.TodoList = class TodoList extends repository_1.Entity {
8
+ constructor(data) {
9
+ super(data);
10
+ }
11
+ };
12
+ tslib_1.__decorate([
13
+ (0, repository_1.property)({
14
+ type: 'number',
15
+ id: true,
16
+ generated: true,
17
+ }),
18
+ tslib_1.__metadata("design:type", Number)
19
+ ], TodoList.prototype, "id", void 0);
20
+ tslib_1.__decorate([
21
+ (0, repository_1.property)({
22
+ type: 'string',
23
+ required: true,
24
+ }),
25
+ tslib_1.__metadata("design:type", String)
26
+ ], TodoList.prototype, "title", void 0);
27
+ tslib_1.__decorate([
28
+ (0, repository_1.hasMany)(() => todo_model_1.Todo, {
29
+ keyTo: 'todoListId',
30
+ }),
31
+ tslib_1.__metadata("design:type", Array)
32
+ ], TodoList.prototype, "todos", void 0);
33
+ tslib_1.__decorate([
34
+ (0, repository_1.property)({
35
+ type: 'number',
36
+ }),
37
+ tslib_1.__metadata("design:type", Number)
38
+ ], TodoList.prototype, "user", void 0);
39
+ exports.TodoList = TodoList = tslib_1.__decorate([
40
+ (0, repository_1.model)(),
41
+ tslib_1.__metadata("design:paramtypes", [Object])
42
+ ], TodoList);
43
+ //# sourceMappingURL=todo-list.model.js.map
44
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/models/todo-list.model.js.map
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Todo = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const repository_1 = require("@loopback/repository");
6
+ const todo_list_model_1 = require("./todo-list.model");
7
+ let Todo = exports.Todo = class Todo extends repository_1.Entity {
8
+ constructor(data) {
9
+ super(data);
10
+ }
11
+ };
12
+ tslib_1.__decorate([
13
+ (0, repository_1.property)({
14
+ type: 'number',
15
+ id: true,
16
+ generated: true,
17
+ }),
18
+ tslib_1.__metadata("design:type", Number)
19
+ ], Todo.prototype, "id", void 0);
20
+ tslib_1.__decorate([
21
+ (0, repository_1.property)({
22
+ type: 'string',
23
+ required: true,
24
+ }),
25
+ tslib_1.__metadata("design:type", String)
26
+ ], Todo.prototype, "title", void 0);
27
+ tslib_1.__decorate([
28
+ (0, repository_1.property)({
29
+ name: 'is_complete',
30
+ type: 'boolean',
31
+ }),
32
+ tslib_1.__metadata("design:type", Boolean)
33
+ ], Todo.prototype, "isComplete", void 0);
34
+ tslib_1.__decorate([
35
+ (0, repository_1.belongsTo)(() => todo_list_model_1.TodoList, { name: 'todoList' }, { name: 'todo_list_id' }),
36
+ tslib_1.__metadata("design:type", Number)
37
+ ], Todo.prototype, "todoListId", void 0);
38
+ exports.Todo = Todo = tslib_1.__decorate([
39
+ (0, repository_1.model)(),
40
+ tslib_1.__metadata("design:paramtypes", [Object])
41
+ ], Todo);
42
+ //# sourceMappingURL=todo.model.js.map
43
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/models/todo.model.js.map
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.User = exports.Address = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const repository_1 = require("@loopback/repository");
6
+ const todo_list_model_1 = require("./todo-list.model");
7
+ let Address = exports.Address = class Address extends repository_1.Entity {
8
+ };
9
+ tslib_1.__decorate([
10
+ (0, repository_1.property)({
11
+ type: 'string',
12
+ }),
13
+ tslib_1.__metadata("design:type", String)
14
+ ], Address.prototype, "city", void 0);
15
+ tslib_1.__decorate([
16
+ (0, repository_1.property)({
17
+ type: 'number',
18
+ }),
19
+ tslib_1.__metadata("design:type", Number)
20
+ ], Address.prototype, "zipCode", void 0);
21
+ exports.Address = Address = tslib_1.__decorate([
22
+ (0, repository_1.model)()
23
+ ], Address);
24
+ let User = exports.User = class User extends repository_1.Entity {
25
+ constructor(data) {
26
+ super(data);
27
+ }
28
+ };
29
+ tslib_1.__decorate([
30
+ (0, repository_1.property)({
31
+ type: 'number',
32
+ id: true,
33
+ generated: true,
34
+ }),
35
+ tslib_1.__metadata("design:type", Number)
36
+ ], User.prototype, "id", void 0);
37
+ tslib_1.__decorate([
38
+ (0, repository_1.property)({
39
+ type: 'string',
40
+ required: true,
41
+ }),
42
+ tslib_1.__metadata("design:type", String)
43
+ ], User.prototype, "name", void 0);
44
+ tslib_1.__decorate([
45
+ (0, repository_1.property)({
46
+ type: 'string',
47
+ required: true,
48
+ }),
49
+ tslib_1.__metadata("design:type", String)
50
+ ], User.prototype, "email", void 0);
51
+ tslib_1.__decorate([
52
+ (0, repository_1.property)({
53
+ type: 'boolean',
54
+ default: false,
55
+ name: 'is_active',
56
+ }),
57
+ tslib_1.__metadata("design:type", Boolean)
58
+ ], User.prototype, "active", void 0);
59
+ tslib_1.__decorate([
60
+ (0, repository_1.property)({
61
+ type: 'object',
62
+ postgresql: {
63
+ dataType: 'json',
64
+ },
65
+ }),
66
+ tslib_1.__metadata("design:type", Address)
67
+ ], User.prototype, "address", void 0);
68
+ tslib_1.__decorate([
69
+ (0, repository_1.property)({
70
+ type: 'string',
71
+ hidden: true,
72
+ }),
73
+ tslib_1.__metadata("design:type", String)
74
+ ], User.prototype, "password", void 0);
75
+ tslib_1.__decorate([
76
+ (0, repository_1.property)({
77
+ type: 'date',
78
+ }),
79
+ tslib_1.__metadata("design:type", Date)
80
+ ], User.prototype, "dob", void 0);
81
+ tslib_1.__decorate([
82
+ (0, repository_1.hasOne)(() => todo_list_model_1.TodoList, { keyTo: 'user' }),
83
+ tslib_1.__metadata("design:type", todo_list_model_1.TodoList)
84
+ ], User.prototype, "todoList", void 0);
85
+ exports.User = User = tslib_1.__decorate([
86
+ (0, repository_1.model)(),
87
+ tslib_1.__metadata("design:paramtypes", [Object])
88
+ ], User);
89
+ //# sourceMappingURL=user.model.js.map
90
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/models/user.model.js.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppointmentRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const sequelize_1 = require("../../../sequelize");
7
+ const primary_datasource_1 = require("../datasources/primary.datasource");
8
+ const index_1 = require("../models/index");
9
+ let AppointmentRepository = exports.AppointmentRepository = class AppointmentRepository extends sequelize_1.SequelizeCrudRepository {
10
+ constructor(dataSource) {
11
+ super(index_1.Appointment, dataSource);
12
+ }
13
+ };
14
+ exports.AppointmentRepository = AppointmentRepository = tslib_1.__decorate([
15
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
16
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
17
+ ], AppointmentRepository);
18
+ //# sourceMappingURL=appointment.repository.js.map
19
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/appointment.repository.js.map
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BookRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const repository_1 = require("@loopback/repository");
7
+ const sequelize_1 = require("../../../sequelize");
8
+ const primary_datasource_1 = require("../datasources/primary.datasource");
9
+ const index_1 = require("../models/index");
10
+ let BookRepository = exports.BookRepository = class BookRepository extends sequelize_1.SequelizeCrudRepository {
11
+ constructor(dataSource, categoryRepositoryGetter) {
12
+ super(index_1.Book, dataSource);
13
+ this.categoryRepositoryGetter = categoryRepositoryGetter;
14
+ this.category = this.createBelongsToAccessorFor('category', categoryRepositoryGetter);
15
+ this.registerInclusionResolver('category', this.category.inclusionResolver);
16
+ }
17
+ };
18
+ exports.BookRepository = BookRepository = tslib_1.__decorate([
19
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
20
+ tslib_1.__param(1, repository_1.repository.getter('CategoryRepository')),
21
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
22
+ ], BookRepository);
23
+ //# sourceMappingURL=book.repository.js.map
24
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/book.repository.js.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CategoryRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const sequelize_1 = require("../../../sequelize");
7
+ const primary_datasource_1 = require("../datasources/primary.datasource");
8
+ const index_1 = require("../models/index");
9
+ let CategoryRepository = exports.CategoryRepository = class CategoryRepository extends sequelize_1.SequelizeCrudRepository {
10
+ constructor(dataSource) {
11
+ super(index_1.Category, dataSource);
12
+ }
13
+ };
14
+ exports.CategoryRepository = CategoryRepository = tslib_1.__decorate([
15
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
16
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
17
+ ], CategoryRepository);
18
+ //# sourceMappingURL=category.repository.js.map
19
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/category.repository.js.map
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeveloperRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const repository_1 = require("@loopback/repository");
7
+ const sequelize_1 = require("../../../sequelize");
8
+ const primary_datasource_1 = require("../datasources/primary.datasource");
9
+ const index_1 = require("../models/index");
10
+ let DeveloperRepository = exports.DeveloperRepository = class DeveloperRepository extends sequelize_1.SequelizeCrudRepository {
11
+ constructor(dataSource, programmingLanguageRepositoryGetter) {
12
+ super(index_1.Developer, dataSource);
13
+ this.programmingLanguageRepositoryGetter = programmingLanguageRepositoryGetter;
14
+ this.programmingLanguages = this.createReferencesManyAccessorFor('programmingLanguages', programmingLanguageRepositoryGetter);
15
+ this.registerInclusionResolver('programmingLanguages', this.programmingLanguages.inclusionResolver);
16
+ }
17
+ };
18
+ exports.DeveloperRepository = DeveloperRepository = tslib_1.__decorate([
19
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
20
+ tslib_1.__param(1, repository_1.repository.getter('ProgrammingLanguageRepository')),
21
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
22
+ ], DeveloperRepository);
23
+ //# sourceMappingURL=developer.repository.js.map
24
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/developer.repository.js.map
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DoctorRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const repository_1 = require("@loopback/repository");
7
+ const sequelize_1 = require("../../../sequelize");
8
+ const primary_datasource_1 = require("../datasources/primary.datasource");
9
+ const index_1 = require("../models/index");
10
+ let DoctorRepository = exports.DoctorRepository = class DoctorRepository extends sequelize_1.SequelizeCrudRepository {
11
+ constructor(dataSource, appointmentRepositoryGetter, patientRepositoryGetter) {
12
+ super(index_1.Doctor, dataSource);
13
+ this.appointmentRepositoryGetter = appointmentRepositoryGetter;
14
+ this.patientRepositoryGetter = patientRepositoryGetter;
15
+ this.patients = this.createHasManyThroughRepositoryFactoryFor('patients', patientRepositoryGetter, appointmentRepositoryGetter);
16
+ this.registerInclusionResolver('patients', this.patients.inclusionResolver);
17
+ }
18
+ };
19
+ exports.DoctorRepository = DoctorRepository = tslib_1.__decorate([
20
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
21
+ tslib_1.__param(1, repository_1.repository.getter('AppointmentRepository')),
22
+ tslib_1.__param(2, repository_1.repository.getter('PatientRepository')),
23
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function, Function])
24
+ ], DoctorRepository);
25
+ //# sourceMappingURL=doctor.repository.js.map
26
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/doctor.repository.js.map
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./appointment.repository"), exports);
5
+ tslib_1.__exportStar(require("./book.repository"), exports);
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("./task.repository"), exports);
13
+ tslib_1.__exportStar(require("./todo-list.repository"), exports);
14
+ tslib_1.__exportStar(require("./todo.repository"), exports);
15
+ tslib_1.__exportStar(require("./user.repository"), exports);
16
+ //# sourceMappingURL=index.js.map
17
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/index.js.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PatientRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const sequelize_1 = require("../../../sequelize");
7
+ const primary_datasource_1 = require("../datasources/primary.datasource");
8
+ const index_1 = require("../models/index");
9
+ let PatientRepository = exports.PatientRepository = class PatientRepository extends sequelize_1.SequelizeCrudRepository {
10
+ constructor(dataSource) {
11
+ super(index_1.Patient, dataSource);
12
+ }
13
+ };
14
+ exports.PatientRepository = PatientRepository = tslib_1.__decorate([
15
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
16
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
17
+ ], PatientRepository);
18
+ //# sourceMappingURL=patient.repository.js.map
19
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/patient.repository.js.map
@@ -0,0 +1,19 @@
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 = exports.ProductRepository = class ProductRepository extends sequelize_1.SequelizeCrudRepository {
10
+ constructor(dataSource) {
11
+ super(models_1.Product, dataSource);
12
+ }
13
+ };
14
+ exports.ProductRepository = 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
+ //# sourceMappingURL=product.repository.js.map
19
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/product.repository.js.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProgrammingLanguageRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const sequelize_1 = require("../../../sequelize");
7
+ const primary_datasource_1 = require("../datasources/primary.datasource");
8
+ const index_1 = require("../models/index");
9
+ let ProgrammingLanguageRepository = exports.ProgrammingLanguageRepository = class ProgrammingLanguageRepository extends sequelize_1.SequelizeCrudRepository {
10
+ constructor(dataSource) {
11
+ super(index_1.ProgrammingLanguage, dataSource);
12
+ }
13
+ };
14
+ exports.ProgrammingLanguageRepository = ProgrammingLanguageRepository = tslib_1.__decorate([
15
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
16
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
17
+ ], ProgrammingLanguageRepository);
18
+ //# sourceMappingURL=programming-language.repository.js.map
19
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/programming-language.repository.js.map
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const sequelize_1 = require("../../../sequelize");
7
+ const primary_datasource_1 = require("../datasources/primary.datasource");
8
+ const index_1 = require("../models/index");
9
+ let TaskRepository = exports.TaskRepository = class TaskRepository extends sequelize_1.SequelizeCrudRepository {
10
+ constructor(dataSource) {
11
+ super(index_1.Task, dataSource);
12
+ }
13
+ getDefaultFnRegistry() {
14
+ return {
15
+ ...super.getDefaultFnRegistry(),
16
+ customAlias: () => Math.random(),
17
+ };
18
+ }
19
+ };
20
+ exports.TaskRepository = TaskRepository = tslib_1.__decorate([
21
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
22
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource])
23
+ ], TaskRepository);
24
+ //# sourceMappingURL=task.repository.js.map
25
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/task.repository.js.map
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TodoListRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const repository_1 = require("@loopback/repository");
7
+ const sequelize_1 = require("../../../sequelize");
8
+ const primary_datasource_1 = require("../datasources/primary.datasource");
9
+ const index_1 = require("../models/index");
10
+ let TodoListRepository = exports.TodoListRepository = class TodoListRepository extends sequelize_1.SequelizeCrudRepository {
11
+ constructor(dataSource, todoRepositoryGetter) {
12
+ super(index_1.TodoList, dataSource);
13
+ this.todoRepositoryGetter = todoRepositoryGetter;
14
+ this.todos = this.createHasManyRepositoryFactoryFor('todos', todoRepositoryGetter);
15
+ this.registerInclusionResolver('todos', this.todos.inclusionResolver);
16
+ }
17
+ };
18
+ exports.TodoListRepository = TodoListRepository = tslib_1.__decorate([
19
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
20
+ tslib_1.__param(1, repository_1.repository.getter('TodoRepository')),
21
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
22
+ ], TodoListRepository);
23
+ //# sourceMappingURL=todo-list.repository.js.map
24
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/todo-list.repository.js.map
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TodoRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const repository_1 = require("@loopback/repository");
7
+ const sequelize_1 = require("../../../sequelize");
8
+ const primary_datasource_1 = require("../datasources/primary.datasource");
9
+ const index_1 = require("../models/index");
10
+ let TodoRepository = exports.TodoRepository = class TodoRepository extends sequelize_1.SequelizeCrudRepository {
11
+ constructor(dataSource, todoListRepositoryGetter) {
12
+ super(index_1.Todo, dataSource);
13
+ this.todoListRepositoryGetter = todoListRepositoryGetter;
14
+ this.todoList = this.createBelongsToAccessorFor('todoList', todoListRepositoryGetter);
15
+ this.registerInclusionResolver('todoList', this.todoList.inclusionResolver);
16
+ }
17
+ };
18
+ exports.TodoRepository = TodoRepository = tslib_1.__decorate([
19
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
20
+ tslib_1.__param(1, repository_1.repository.getter('TodoListRepository')),
21
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
22
+ ], TodoRepository);
23
+ //# sourceMappingURL=todo.repository.js.map
24
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/todo.repository.js.map
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@loopback/core");
6
+ const repository_1 = require("@loopback/repository");
7
+ const sequelize_1 = require("../../../sequelize");
8
+ const primary_datasource_1 = require("../datasources/primary.datasource");
9
+ const index_1 = require("../models/index");
10
+ let UserRepository = exports.UserRepository = class UserRepository extends sequelize_1.SequelizeCrudRepository {
11
+ constructor(dataSource, todoListRepositoryGetter) {
12
+ super(index_1.User, dataSource);
13
+ this.todoListRepositoryGetter = todoListRepositoryGetter;
14
+ this.todoList = this.createHasOneRepositoryFactoryFor('todoList', todoListRepositoryGetter);
15
+ this.registerInclusionResolver('todoList', this.todoList.inclusionResolver);
16
+ }
17
+ };
18
+ exports.UserRepository = UserRepository = tslib_1.__decorate([
19
+ tslib_1.__param(0, (0, core_1.inject)('datasources.primary')),
20
+ tslib_1.__param(1, repository_1.repository.getter('TodoListRepository')),
21
+ tslib_1.__metadata("design:paramtypes", [primary_datasource_1.PrimaryDataSource, Function])
22
+ ], UserRepository);
23
+ //# sourceMappingURL=user.repository.js.map
24
+ //# sourceMappingURL=/Users/dianalau/code/loopback/loopback-next/extensions/sequelize/dist/__tests__/fixtures/repositories/user.repository.js.map
@@ -34,6 +34,17 @@ export declare class SequelizeCrudRepository<T extends Entity, ID, Relations ext
34
34
  * This array of keys is used while building model definition for sequelize.
35
35
  */
36
36
  readonly DB_SPECIFIC_SETTINGS_KEYS: readonly ["postgresql", "mysql", "sqlite3"];
37
+ /**
38
+ * Length of the `nanoid` generated for defaultFn's `shortid` and `nanoid` aliases.
39
+ */
40
+ NANO_ID_LENGTH: number;
41
+ /**
42
+ * The alias registry for `defaultFn` option used in model property definition.
43
+ *
44
+ * See: https://loopback.io/doc/en/lb4/Model.html#property-decorator
45
+ */
46
+ protected defaultFnRegistry: Record<string, unknown>;
47
+ protected getDefaultFnRegistry(): Record<string, unknown>;
37
48
  readonly inclusionResolvers: Map<string, InclusionResolver<T, Entity>>;
38
49
  /**
39
50
  * Sequelize Model Instance created from the model definition received from the `entityClass`
@@ -8,6 +8,7 @@ exports.SequelizeCrudRepository = void 0;
8
8
  const tslib_1 = require("tslib");
9
9
  const repository_1 = require("@loopback/repository");
10
10
  const debug_1 = tslib_1.__importDefault(require("debug"));
11
+ const nanoid_1 = require("nanoid");
11
12
  const sequelize_1 = require("sequelize");
12
13
  const operator_translation_1 = require("./operator-translation");
13
14
  const utils_1 = require("./utils");
@@ -44,11 +45,31 @@ class SequelizeCrudRepository {
44
45
  'mysql',
45
46
  'sqlite3',
46
47
  ];
48
+ /**
49
+ * Length of the `nanoid` generated for defaultFn's `shortid` and `nanoid` aliases.
50
+ */
51
+ this.NANO_ID_LENGTH = 9;
52
+ /**
53
+ * The alias registry for `defaultFn` option used in model property definition.
54
+ *
55
+ * See: https://loopback.io/doc/en/lb4/Model.html#property-decorator
56
+ */
57
+ this.defaultFnRegistry = {
58
+ guid: sequelize_1.DataTypes.UUIDV1,
59
+ uuid: sequelize_1.DataTypes.UUIDV1,
60
+ uuidv4: sequelize_1.DataTypes.UUIDV4,
61
+ now: sequelize_1.DataTypes.NOW,
62
+ shortid: () => (0, nanoid_1.nanoid)(this.NANO_ID_LENGTH),
63
+ nanoid: () => (0, nanoid_1.nanoid)(this.NANO_ID_LENGTH),
64
+ };
47
65
  this.inclusionResolvers = new Map();
48
66
  if (this.dataSource.sequelize) {
49
67
  this.sequelizeModel = this.getSequelizeModel();
50
68
  }
51
69
  }
70
+ getDefaultFnRegistry() {
71
+ return this.defaultFnRegistry;
72
+ }
52
73
  async create(entity, options) {
53
74
  const data = await this.sequelizeModel.create(entity, options);
54
75
  return new this.entityClass(data.toJSON());
@@ -589,11 +610,17 @@ class SequelizeCrudRepository {
589
610
  if (dataType === sequelize_1.DataTypes.STRING && !isString) {
590
611
  throw Error(`Unhandled DataType "${definition[propName].type.toString()}" for column "${propName}" in sequelize extension`);
591
612
  }
613
+ let defaultValue = definition[propName].default;
614
+ const originalDefaultFn = definition[propName]['defaultFn'];
615
+ if (typeof originalDefaultFn === 'function') {
616
+ defaultValue = originalDefaultFn;
617
+ }
618
+ else if (originalDefaultFn in this.getDefaultFnRegistry()) {
619
+ defaultValue = this.getDefaultFnRegistry()[originalDefaultFn];
620
+ }
592
621
  const columnOptions = {
593
622
  type: dataType,
594
- ...('default' in definition[propName]
595
- ? { defaultValue: definition[propName].default }
596
- : {}),
623
+ defaultValue,
597
624
  };
598
625
  // Set column as `primaryKey` when id is set to true (which is loopback way to define primary key)
599
626
  if (definition[propName].id === true) {