@orion-js/dogs 3.2.2 → 3.2.10
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/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/service/index.d.ts +9 -0
- package/lib/service/index.js +34 -0
- package/lib/service/index.test.d.ts +1 -0
- package/lib/service/index.test.js +37 -0
- package/package.json +5 -5
package/lib/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { ScheduleJobOptions } from './types/Events';
|
|
|
4
4
|
import { JobsHistoryRepo } from './repos/JobsHistoryRepo';
|
|
5
5
|
import { JobsRepo } from './repos/JobsRepo';
|
|
6
6
|
export * from './types';
|
|
7
|
+
export * from './service';
|
|
7
8
|
declare const jobsHistoryRepo: JobsHistoryRepo;
|
|
8
9
|
declare const jobsRepo: JobsRepo;
|
|
9
10
|
declare const startWorkers: (config: Partial<StartWorkersConfig>) => import("./types").WorkersInstance;
|
package/lib/index.js
CHANGED
|
@@ -19,6 +19,7 @@ const WorkerService_1 = require("./services/WorkerService");
|
|
|
19
19
|
const JobsHistoryRepo_1 = require("./repos/JobsHistoryRepo");
|
|
20
20
|
const JobsRepo_1 = require("./repos/JobsRepo");
|
|
21
21
|
__exportStar(require("./types"), exports);
|
|
22
|
+
__exportStar(require("./service"), exports);
|
|
22
23
|
const workerService = (0, services_1.getInstance)(WorkerService_1.WorkerService);
|
|
23
24
|
const eventsService = (0, services_1.getInstance)(EventsService_1.EventsService);
|
|
24
25
|
const jobsHistoryRepo = (0, services_1.getInstance)(JobsHistoryRepo_1.JobsHistoryRepo);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { JobDefinition } from '../types';
|
|
2
|
+
export declare function Jobs(): ClassDecorator;
|
|
3
|
+
export interface JobsPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {
|
|
4
|
+
value?: JobDefinition['resolve'];
|
|
5
|
+
}
|
|
6
|
+
export declare function Job(options: Omit<JobDefinition, 'resolve'>): (target: any, propertyKey: string, descriptor: JobsPropertyDescriptor) => void;
|
|
7
|
+
export declare function getServiceJobs(target: any): {
|
|
8
|
+
[key: string]: JobDefinition;
|
|
9
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getServiceJobs = exports.Job = exports.Jobs = void 0;
|
|
4
|
+
const services_1 = require("@orion-js/services");
|
|
5
|
+
const defineJob_1 = require("../defineJob");
|
|
6
|
+
function Jobs() {
|
|
7
|
+
return function (target) {
|
|
8
|
+
(0, services_1.Service)()(target);
|
|
9
|
+
target.prototype.service = target;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
exports.Jobs = Jobs;
|
|
13
|
+
function Job(options) {
|
|
14
|
+
return function (target, propertyKey, descriptor) {
|
|
15
|
+
if (!descriptor.value)
|
|
16
|
+
throw new Error(`You must pass resolver function to ${propertyKey}`);
|
|
17
|
+
target.echoes = target.echoes || {};
|
|
18
|
+
target.echoes[propertyKey] = (0, defineJob_1.defineJob)({
|
|
19
|
+
...options,
|
|
20
|
+
resolve: async (params, viewer) => {
|
|
21
|
+
const instance = (0, services_1.getInstance)(target.service);
|
|
22
|
+
return await instance[propertyKey](params, viewer);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.Job = Job;
|
|
28
|
+
function getServiceJobs(target) {
|
|
29
|
+
if (!target.prototype) {
|
|
30
|
+
throw new Error('You must pass a class to getServiceRoutes');
|
|
31
|
+
}
|
|
32
|
+
return target.prototype.echoes || {};
|
|
33
|
+
}
|
|
34
|
+
exports.getServiceJobs = getServiceJobs;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const _1 = require(".");
|
|
13
|
+
describe('Jobs (dogs) with service injections', () => {
|
|
14
|
+
it('Should define a jobs map using services', async () => {
|
|
15
|
+
let ExampleJobsService = class ExampleJobsService {
|
|
16
|
+
async job1() {
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, _1.Job)({ type: 'event' }),
|
|
22
|
+
__metadata("design:type", Function),
|
|
23
|
+
__metadata("design:paramtypes", []),
|
|
24
|
+
__metadata("design:returntype", Promise)
|
|
25
|
+
], ExampleJobsService.prototype, "job1", null);
|
|
26
|
+
ExampleJobsService = __decorate([
|
|
27
|
+
(0, _1.Jobs)()
|
|
28
|
+
], ExampleJobsService);
|
|
29
|
+
const jobs = (0, _1.getServiceJobs)(ExampleJobsService);
|
|
30
|
+
expect(jobs).toMatchObject({
|
|
31
|
+
job1: {
|
|
32
|
+
type: 'event',
|
|
33
|
+
resolve: expect.any(Function)
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orion-js/dogs",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.10",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"types": "lib/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@orion-js/helpers": "^3.2.0",
|
|
21
|
-
"@orion-js/mongodb": "^3.2.
|
|
22
|
-
"@orion-js/services": "^3.2.
|
|
23
|
-
"@orion-js/typed-model": "^3.2.
|
|
21
|
+
"@orion-js/mongodb": "^3.2.10",
|
|
22
|
+
"@orion-js/services": "^3.2.10",
|
|
23
|
+
"@orion-js/typed-model": "^3.2.10"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"@orion-js/logger": "3.1.0-alpha.12"
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"publishConfig": {
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "cae0afccac10f4b9bdbdeb1faaac3884eaef730c"
|
|
43
43
|
}
|