@orion-js/dogs 3.2.14 → 3.2.20

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.
@@ -1,9 +1,10 @@
1
- import { JobDefinition } from '../types';
1
+ import { EventJobDefinition, JobDefinition, RecurrentJobDefinition } from '../types';
2
2
  export declare function Jobs(): ClassDecorator;
3
3
  export interface JobsPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {
4
4
  value?: JobDefinition['resolve'];
5
5
  }
6
- export declare function Job(options: Omit<JobDefinition, 'resolve'>): (target: any, propertyKey: string, descriptor: JobsPropertyDescriptor) => void;
6
+ export declare function RecurrentJob(options: Omit<RecurrentJobDefinition, 'resolve' | 'type'>): (target: any, propertyKey: string, descriptor: JobsPropertyDescriptor) => void;
7
+ export declare function EventJob(options?: Omit<EventJobDefinition, 'resolve' | 'type'>): (target: any, propertyKey: string, descriptor: JobsPropertyDescriptor) => void;
7
8
  export declare function getServiceJobs(target: any): {
8
9
  [key: string]: JobDefinition;
9
10
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getServiceJobs = exports.Job = exports.Jobs = void 0;
3
+ exports.getServiceJobs = exports.EventJob = exports.RecurrentJob = exports.Jobs = void 0;
4
4
  const services_1 = require("@orion-js/services");
5
5
  const defineJob_1 = require("../defineJob");
6
6
  function Jobs() {
@@ -10,13 +10,14 @@ function Jobs() {
10
10
  };
11
11
  }
12
12
  exports.Jobs = Jobs;
13
- function Job(options) {
13
+ function RecurrentJob(options) {
14
14
  return function (target, propertyKey, descriptor) {
15
15
  if (!descriptor.value)
16
16
  throw new Error(`You must pass resolver function to ${propertyKey}`);
17
17
  target.echoes = target.echoes || {};
18
18
  target.echoes[propertyKey] = (0, defineJob_1.defineJob)({
19
19
  ...options,
20
+ type: 'recurrent',
20
21
  resolve: async (params, viewer) => {
21
22
  const instance = (0, services_1.getInstance)(target.service);
22
23
  return await instance[propertyKey](params, viewer);
@@ -24,7 +25,23 @@ function Job(options) {
24
25
  });
25
26
  };
26
27
  }
27
- exports.Job = Job;
28
+ exports.RecurrentJob = RecurrentJob;
29
+ function EventJob(options = {}) {
30
+ return function (target, propertyKey, descriptor) {
31
+ if (!descriptor.value)
32
+ throw new Error(`You must pass resolver function to ${propertyKey}`);
33
+ target.echoes = target.echoes || {};
34
+ target.echoes[propertyKey] = (0, defineJob_1.defineJob)({
35
+ ...options,
36
+ type: 'event',
37
+ resolve: async (params, viewer) => {
38
+ const instance = (0, services_1.getInstance)(target.service);
39
+ return await instance[propertyKey](params, viewer);
40
+ }
41
+ });
42
+ };
43
+ }
44
+ exports.EventJob = EventJob;
28
45
  function getServiceJobs(target) {
29
46
  if (!target.prototype) {
30
47
  throw new Error('You must pass a class to getServiceRoutes');
@@ -16,13 +16,22 @@ describe('Jobs (dogs) with service injections', () => {
16
16
  async job1() {
17
17
  return {};
18
18
  }
19
+ async job2() {
20
+ return {};
21
+ }
19
22
  };
20
23
  __decorate([
21
- (0, _1.Job)({ type: 'event' }),
24
+ (0, _1.EventJob)(),
22
25
  __metadata("design:type", Function),
23
26
  __metadata("design:paramtypes", []),
24
27
  __metadata("design:returntype", Promise)
25
28
  ], ExampleJobsService.prototype, "job1", null);
29
+ __decorate([
30
+ (0, _1.RecurrentJob)({ runEvery: 1000 }),
31
+ __metadata("design:type", Function),
32
+ __metadata("design:paramtypes", []),
33
+ __metadata("design:returntype", Promise)
34
+ ], ExampleJobsService.prototype, "job2", null);
26
35
  ExampleJobsService = __decorate([
27
36
  (0, _1.Jobs)()
28
37
  ], ExampleJobsService);
@@ -31,6 +40,11 @@ describe('Jobs (dogs) with service injections', () => {
31
40
  job1: {
32
41
  type: 'event',
33
42
  resolve: expect.any(Function)
43
+ },
44
+ job2: {
45
+ type: 'recurrent',
46
+ runEvery: 1000,
47
+ resolve: expect.any(Function)
34
48
  }
35
49
  });
36
50
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/dogs",
3
- "version": "3.2.14",
3
+ "version": "3.2.20",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "files": [
@@ -18,15 +18,15 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@orion-js/helpers": "^3.2.0",
21
- "@orion-js/mongodb": "^3.2.14",
21
+ "@orion-js/mongodb": "^3.2.20",
22
22
  "@orion-js/services": "^3.2.10",
23
- "@orion-js/typed-model": "^3.2.10"
23
+ "@orion-js/typed-model": "^3.2.18"
24
24
  },
25
25
  "peerDependencies": {
26
- "@orion-js/logger": "3.1.0-alpha.12"
26
+ "@orion-js/logger": "*"
27
27
  },
28
28
  "devDependencies": {
29
- "@orion-js/logger": "^3.2.0",
29
+ "@orion-js/logger": "^3.2.18",
30
30
  "@shelf/jest-mongodb": "^2.1.0",
31
31
  "@types/jest": "^27.0.2",
32
32
  "@types/lodash": "4.14.176",
@@ -39,5 +39,5 @@
39
39
  "publishConfig": {
40
40
  "access": "public"
41
41
  },
42
- "gitHead": "87d4cca0154b4beb6e6fa97f298b1440e0c3c231"
42
+ "gitHead": "4c4e24615699c336f041a4ff832ffb591e4a0537"
43
43
  }