@tsed/agenda 6.102.8-rc.1 → 6.102.8-rc.2
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/cjs/AgendaModule.js +2 -2
- package/lib/cjs/AgendaModule.js.map +1 -1
- package/lib/cjs/constants/{index.js → constants.js} +1 -1
- package/lib/cjs/constants/constants.js.map +1 -0
- package/lib/cjs/decorators/agenda.js +1 -1
- package/lib/cjs/decorators/agenda.js.map +1 -1
- package/lib/cjs/index.js +8 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces/interfaces.js +3 -0
- package/lib/cjs/interfaces/interfaces.js.map +1 -0
- package/lib/esm/AgendaModule.js +1 -1
- package/lib/esm/AgendaModule.js.map +1 -1
- package/lib/esm/constants/{index.js → constants.js} +1 -1
- package/lib/esm/constants/constants.js.map +1 -0
- package/lib/esm/decorators/agenda.js +1 -1
- package/lib/esm/decorators/agenda.js.map +1 -1
- package/lib/esm/index.js +8 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/interfaces.js +2 -0
- package/lib/esm/interfaces/interfaces.js.map +1 -0
- package/lib/types/constants/{index.d.ts → constants.d.ts} +0 -0
- package/lib/types/index.d.ts +8 -15
- package/lib/types/interfaces/interfaces.d.ts +13 -0
- package/package.json +10 -6
- package/src/AgendaModule.ts +1 -1
- package/src/constants/{index.ts → constants.ts} +0 -0
- package/src/decorators/agenda.ts +1 -1
- package/src/index.ts +8 -16
- package/src/interfaces/interfaces.ts +14 -0
- package/lib/cjs/constants/index.js.map +0 -1
- package/lib/cjs/decorators/index.js +0 -7
- package/lib/cjs/decorators/index.js.map +0 -1
- package/lib/esm/constants/index.js.map +0 -1
- package/lib/esm/decorators/index.js +0 -4
- package/lib/esm/decorators/index.js.map +0 -1
- package/lib/types/decorators/index.d.ts +0 -3
- package/src/decorators/index.ts +0 -3
package/lib/cjs/AgendaModule.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.AgendaModule = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@tsed/common");
|
|
6
6
|
const di_1 = require("@tsed/di");
|
|
7
|
-
const
|
|
7
|
+
const constants_1 = require("./constants/constants");
|
|
8
8
|
const AgendaFactory_1 = require("./services/AgendaFactory");
|
|
9
9
|
let AgendaModule = class AgendaModule {
|
|
10
10
|
async $afterListen() {
|
|
@@ -28,7 +28,7 @@ let AgendaModule = class AgendaModule {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
getProviders() {
|
|
31
|
-
return Array.from(this.injector.getProviders(
|
|
31
|
+
return Array.from(this.injector.getProviders(constants_1.PROVIDER_TYPE_AGENDA));
|
|
32
32
|
}
|
|
33
33
|
addAgendaDefinitionsForProvider(provider) {
|
|
34
34
|
const store = provider.store.get("agenda");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":";;;;AAAA,yCAA4D;AAC5D,iCAA6E;AAE7E,
|
|
1
|
+
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":"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","sourcesContent":["import {AfterListen, Logger, OnDestroy} from \"@tsed/common\";\nimport {Constant, Inject, InjectorService, Module, Provider} from \"@tsed/di\";\nimport {Processor} from \"agenda\";\nimport {PROVIDER_TYPE_AGENDA} from \"./constants/constants\";\nimport {AgendaStore} from \"./interfaces/AgendaStore\";\nimport {AgendaService} from \"./services/AgendaFactory\";\n\n@Module()\nexport class AgendaModule implements OnDestroy, AfterListen {\n @Inject()\n protected logger: Logger;\n\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected agenda: AgendaService;\n\n @Constant(\"agenda.enabled\", false)\n private loadAgenda: boolean;\n\n async $afterListen(): Promise<any> {\n if (this.loadAgenda) {\n const providers = this.getProviders();\n providers.forEach((provider) => this.addAgendaDefinitionsForProvider(provider));\n\n this.logger.info(\"Agenda add definitions...\");\n await this.agenda.start();\n\n this.logger.info(\"Agenda add scheduled jobs...\");\n providers.forEach((provider) => this.scheduleJobsForProvider(provider));\n } else {\n this.logger.info(\"Agenda jobs disabled...\");\n }\n }\n\n async $onDestroy(): Promise<any> {\n if (this.loadAgenda) {\n await this.agenda.stop();\n await this.agenda.close({force: true});\n\n this.logger.info(\"Agenda jobs stopped...\");\n }\n }\n\n protected getProviders(): Provider<any>[] {\n return Array.from(this.injector.getProviders(PROVIDER_TYPE_AGENDA));\n }\n\n protected addAgendaDefinitionsForProvider(provider: Provider): void {\n const store = provider.store.get<AgendaStore>(\"agenda\");\n\n if (!store.define) {\n return;\n }\n\n const jobsToDefine = Object.entries(store.define);\n\n for (const [propertyKey, {name, ...options}] of jobsToDefine) {\n const instance = this.injector.get(provider.token);\n\n const jobProcessor: Processor = instance[propertyKey].bind(instance) as Processor;\n const jobName = this.getNameForJob(propertyKey, store.namespace, name);\n this.agenda.define(jobName, options, jobProcessor);\n }\n }\n\n protected async scheduleJobsForProvider(provider: Provider<any>): Promise<void> {\n const store = provider.store.get<AgendaStore>(\"agenda\");\n if (!store.every) {\n return;\n }\n\n const jobsToSchedule = Object.entries(store.every);\n await Promise.all(\n jobsToSchedule.map(([propertyKey, {interval, name, ...options}]) => {\n const jobName = this.getNameForJob(propertyKey, store.namespace, name);\n return this.agenda.every(interval, jobName, {}, options);\n })\n );\n }\n\n protected getNameForJob(propertyKey: string, namespace?: string, customName?: string): string {\n const name = customName || propertyKey;\n return namespace ? `${namespace}.${name}` : name;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,sBAAsB,CAAC","sourcesContent":["export const PROVIDER_TYPE_AGENDA = \"PROVIDER_TYPE_AGENDA\";\n"]}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Agenda = void 0;
|
|
4
4
|
const core_1 = require("@tsed/core");
|
|
5
5
|
const di_1 = require("@tsed/di");
|
|
6
|
-
const constants_1 = require("../constants");
|
|
6
|
+
const constants_1 = require("../constants/constants");
|
|
7
7
|
function Agenda(options) {
|
|
8
8
|
return (0, core_1.useDecorators)((0, core_1.StoreMerge)("agenda", { namespace: options === null || options === void 0 ? void 0 : options.namespace }), (0, di_1.Injectable)({
|
|
9
9
|
type: constants_1.PROVIDER_TYPE_AGENDA
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../../src/decorators/agenda.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AACrD,iCAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../../src/decorators/agenda.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AACrD,iCAAoC;AAEpC,sDAA4D;AAiB5D,SAAgB,MAAM,CAAC,OAAuB;IAC5C,OAAO,IAAA,oBAAa,EAClB,IAAA,iBAAU,EAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAC,CAAC,EACrD,IAAA,eAAU,EAAC;QACT,IAAI,EAAE,gCAAoB;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC;AAPD,wBAOC","sourcesContent":["import {StoreMerge, useDecorators} from \"@tsed/core\";\nimport {Injectable} from \"@tsed/di\";\nimport {AgendaConfig} from \"agenda\";\nimport {PROVIDER_TYPE_AGENDA} from \"../constants/constants\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n agenda?: {\n /** * Enable Agenda jobs. Default false. */\n enabled?: boolean;\n } & AgendaConfig;\n }\n }\n}\n\ninterface AgendaOptions {\n namespace?: string;\n}\n\nexport function Agenda(options?: AgendaOptions): ClassDecorator {\n return useDecorators(\n StoreMerge(\"agenda\", {namespace: options?.namespace}),\n Injectable({\n type: PROVIDER_TYPE_AGENDA\n })\n );\n}\n"]}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Automatically generated by barrelsby.
|
|
4
|
+
*/
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const tslib_1 = require("tslib");
|
|
4
7
|
(0, tslib_1.__exportStar)(require("./AgendaModule"), exports);
|
|
5
|
-
(0, tslib_1.__exportStar)(require("./constants"), exports);
|
|
6
|
-
(0, tslib_1.__exportStar)(require("./decorators"), exports);
|
|
8
|
+
(0, tslib_1.__exportStar)(require("./constants/constants"), exports);
|
|
9
|
+
(0, tslib_1.__exportStar)(require("./decorators/agenda"), exports);
|
|
10
|
+
(0, tslib_1.__exportStar)(require("./decorators/define"), exports);
|
|
11
|
+
(0, tslib_1.__exportStar)(require("./decorators/every"), exports);
|
|
7
12
|
(0, tslib_1.__exportStar)(require("./interfaces/AgendaStore"), exports);
|
|
13
|
+
(0, tslib_1.__exportStar)(require("./interfaces/interfaces"), exports);
|
|
8
14
|
(0, tslib_1.__exportStar)(require("./services/AgendaFactory"), exports);
|
|
9
15
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,8DAA+B;AAC/B,qEAAsC;AACtC,mEAAoC;AACpC,mEAAoC;AACpC,kEAAmC;AACnC,wEAAyC;AACzC,uEAAwC;AACxC,wEAAyC","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./AgendaModule\";\nexport * from \"./constants/constants\";\nexport * from \"./decorators/agenda\";\nexport * from \"./decorators/define\";\nexport * from \"./decorators/every\";\nexport * from \"./interfaces/AgendaStore\";\nexport * from \"./interfaces/interfaces\";\nexport * from \"./services/AgendaFactory\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["import {AgendaConfig} from \"agenda\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n agenda?: {\n /**\n * Enable Agenda jobs. Default false.\n */\n enabled?: boolean;\n } & AgendaConfig;\n }\n }\n}\n"]}
|
package/lib/esm/AgendaModule.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Logger } from "@tsed/common";
|
|
3
3
|
import { Constant, Inject, InjectorService, Module } from "@tsed/di";
|
|
4
|
-
import { PROVIDER_TYPE_AGENDA } from "./constants/
|
|
4
|
+
import { PROVIDER_TYPE_AGENDA } from "./constants/constants.js";
|
|
5
5
|
import { AgendaService } from "./services/AgendaFactory.js";
|
|
6
6
|
let AgendaModule = class AgendaModule {
|
|
7
7
|
async $afterListen() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,MAAM,EAAY,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAE7E,OAAO,EAAC,oBAAoB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,MAAM,EAAY,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAE7E,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAGvD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAavB,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEhF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACjD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;SACzE;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;SAC7C;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SAC5C;IACH,CAAC;IAES,YAAY;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,+BAA+B,CAAC,QAAkB;QAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAc,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO;SACR;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAElD,KAAK,MAAM,CAAC,WAAW,EAAE,EAAC,IAAI,EAAE,GAAG,OAAO,EAAC,CAAC,IAAI,YAAY,EAAE;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEnD,MAAM,YAAY,GAAc,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAc,CAAC;YAClF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;SACpD;IACH,CAAC;IAES,KAAK,CAAC,uBAAuB,CAAC,QAAuB;QAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAc,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAChB,OAAO;SACR;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,EAAC,CAAC,EAAE,EAAE;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAES,aAAa,CAAC,WAAmB,EAAE,SAAkB,EAAE,UAAmB;QAClF,MAAM,IAAI,GAAG,UAAU,IAAI,WAAW,CAAC;QACvC,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;CACF,CAAA;AA5EC;IADC,MAAM,EAAE;8BACS,MAAM;4CAAC;AAGzB;IADC,MAAM,EAAE;8BACW,eAAe;8CAAC;AAGpC;IADC,MAAM,EAAE;8BACS,aAAa;4CAAC;AAGhC;IADC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;;gDACN;AAXjB,YAAY;IADxB,MAAM,EAAE;GACI,YAAY,CA8ExB;SA9EY,YAAY","sourcesContent":["import {AfterListen, Logger, OnDestroy} from \"@tsed/common\";\nimport {Constant, Inject, InjectorService, Module, Provider} from \"@tsed/di\";\nimport {Processor} from \"agenda\";\nimport {PROVIDER_TYPE_AGENDA} from \"./constants/constants\";\nimport {AgendaStore} from \"./interfaces/AgendaStore\";\nimport {AgendaService} from \"./services/AgendaFactory\";\n\n@Module()\nexport class AgendaModule implements OnDestroy, AfterListen {\n @Inject()\n protected logger: Logger;\n\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected agenda: AgendaService;\n\n @Constant(\"agenda.enabled\", false)\n private loadAgenda: boolean;\n\n async $afterListen(): Promise<any> {\n if (this.loadAgenda) {\n const providers = this.getProviders();\n providers.forEach((provider) => this.addAgendaDefinitionsForProvider(provider));\n\n this.logger.info(\"Agenda add definitions...\");\n await this.agenda.start();\n\n this.logger.info(\"Agenda add scheduled jobs...\");\n providers.forEach((provider) => this.scheduleJobsForProvider(provider));\n } else {\n this.logger.info(\"Agenda jobs disabled...\");\n }\n }\n\n async $onDestroy(): Promise<any> {\n if (this.loadAgenda) {\n await this.agenda.stop();\n await this.agenda.close({force: true});\n\n this.logger.info(\"Agenda jobs stopped...\");\n }\n }\n\n protected getProviders(): Provider<any>[] {\n return Array.from(this.injector.getProviders(PROVIDER_TYPE_AGENDA));\n }\n\n protected addAgendaDefinitionsForProvider(provider: Provider): void {\n const store = provider.store.get<AgendaStore>(\"agenda\");\n\n if (!store.define) {\n return;\n }\n\n const jobsToDefine = Object.entries(store.define);\n\n for (const [propertyKey, {name, ...options}] of jobsToDefine) {\n const instance = this.injector.get(provider.token);\n\n const jobProcessor: Processor = instance[propertyKey].bind(instance) as Processor;\n const jobName = this.getNameForJob(propertyKey, store.namespace, name);\n this.agenda.define(jobName, options, jobProcessor);\n }\n }\n\n protected async scheduleJobsForProvider(provider: Provider<any>): Promise<void> {\n const store = provider.store.get<AgendaStore>(\"agenda\");\n if (!store.every) {\n return;\n }\n\n const jobsToSchedule = Object.entries(store.every);\n await Promise.all(\n jobsToSchedule.map(([propertyKey, {interval, name, ...options}]) => {\n const jobName = this.getNameForJob(propertyKey, store.namespace, name);\n return this.agenda.every(interval, jobName, {}, options);\n })\n );\n }\n\n protected getNameForJob(propertyKey: string, namespace?: string, customName?: string): string {\n const name = customName || propertyKey;\n return namespace ? `${namespace}.${name}` : name;\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const PROVIDER_TYPE_AGENDA = "PROVIDER_TYPE_AGENDA";
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC","sourcesContent":["export const PROVIDER_TYPE_AGENDA = \"PROVIDER_TYPE_AGENDA\";\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StoreMerge, useDecorators } from "@tsed/core";
|
|
2
2
|
import { Injectable } from "@tsed/di";
|
|
3
|
-
import { PROVIDER_TYPE_AGENDA } from "../constants.js";
|
|
3
|
+
import { PROVIDER_TYPE_AGENDA } from "../constants/constants.js";
|
|
4
4
|
export function Agenda(options) {
|
|
5
5
|
return useDecorators(StoreMerge("agenda", { namespace: options === null || options === void 0 ? void 0 : options.namespace }), Injectable({
|
|
6
6
|
type: PROVIDER_TYPE_AGENDA
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../../src/decorators/agenda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../../src/decorators/agenda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAiB5D,MAAM,UAAU,MAAM,CAAC,OAAuB;IAC5C,OAAO,aAAa,CAClB,UAAU,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAC,CAAC,EACrD,UAAU,CAAC;QACT,IAAI,EAAE,oBAAoB;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {StoreMerge, useDecorators} from \"@tsed/core\";\nimport {Injectable} from \"@tsed/di\";\nimport {AgendaConfig} from \"agenda\";\nimport {PROVIDER_TYPE_AGENDA} from \"../constants/constants\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n agenda?: {\n /** * Enable Agenda jobs. Default false. */\n enabled?: boolean;\n } & AgendaConfig;\n }\n }\n}\n\ninterface AgendaOptions {\n namespace?: string;\n}\n\nexport function Agenda(options?: AgendaOptions): ClassDecorator {\n return useDecorators(\n StoreMerge(\"agenda\", {namespace: options?.namespace}),\n Injectable({\n type: PROVIDER_TYPE_AGENDA\n })\n );\n}\n"]}
|
package/lib/esm/index.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Automatically generated by barrelsby.
|
|
3
|
+
*/
|
|
1
4
|
export * from "./AgendaModule.js";
|
|
2
|
-
export * from "./constants.js";
|
|
3
|
-
export * from "./decorators.js";
|
|
5
|
+
export * from "./constants/constants.js";
|
|
6
|
+
export * from "./decorators/agenda.js";
|
|
7
|
+
export * from "./decorators/define.js";
|
|
8
|
+
export * from "./decorators/every.js";
|
|
4
9
|
export * from "./interfaces/AgendaStore.js";
|
|
10
|
+
export * from "./interfaces/interfaces.js";
|
|
5
11
|
export * from "./services/AgendaFactory.js";
|
|
6
12
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./AgendaModule\";\nexport * from \"./constants/constants\";\nexport * from \"./decorators/agenda\";\nexport * from \"./decorators/define\";\nexport * from \"./decorators/every\";\nexport * from \"./interfaces/AgendaStore\";\nexport * from \"./interfaces/interfaces\";\nexport * from \"./services/AgendaFactory\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["import {AgendaConfig} from \"agenda\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n agenda?: {\n /**\n * Enable Agenda jobs. Default false.\n */\n enabled?: boolean;\n } & AgendaConfig;\n }\n }\n}\n"]}
|
|
File without changes
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
interface Configuration {
|
|
5
|
-
agenda?: {
|
|
6
|
-
/**
|
|
7
|
-
* Enable Agenda jobs. Default false.
|
|
8
|
-
*/
|
|
9
|
-
enabled?: boolean;
|
|
10
|
-
} & AgendaConfig;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @file Automatically generated by barrelsby.
|
|
3
|
+
*/
|
|
14
4
|
export * from "./AgendaModule";
|
|
15
|
-
export * from "./constants";
|
|
16
|
-
export * from "./decorators";
|
|
5
|
+
export * from "./constants/constants";
|
|
6
|
+
export * from "./decorators/agenda";
|
|
7
|
+
export * from "./decorators/define";
|
|
8
|
+
export * from "./decorators/every";
|
|
17
9
|
export * from "./interfaces/AgendaStore";
|
|
10
|
+
export * from "./interfaces/interfaces";
|
|
18
11
|
export * from "./services/AgendaFactory";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/agenda",
|
|
3
|
-
"version": "6.102.8-rc.
|
|
3
|
+
"version": "6.102.8-rc.2",
|
|
4
4
|
"description": "Agenda package for Ts.ED framework",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
"default": "./lib/esm/index.js"
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
|
-
"build": "yarn run build:esm && yarn run build:cjs",
|
|
16
|
+
"build": "yarn barrels && yarn run build:esm && yarn run build:cjs",
|
|
17
17
|
"build:cjs": "tsc --build tsconfig.compile.json",
|
|
18
18
|
"build:esm": "tsc --build tsconfig.compile.esm.json",
|
|
19
|
+
"barrels": "yarn barrelsby --delete -d ./src -e \"\\.spec\\.ts\" -e \"__mock__\" -e \".benchmark.ts\"",
|
|
19
20
|
"test": "cross-env NODE_ENV=test nyc mocha"
|
|
20
21
|
},
|
|
21
22
|
"dependencies": {
|
|
@@ -23,9 +24,9 @@
|
|
|
23
24
|
},
|
|
24
25
|
"private": false,
|
|
25
26
|
"devDependencies": {
|
|
26
|
-
"@tsed/common": "6.102.8-rc.
|
|
27
|
-
"@tsed/core": "6.102.8-rc.
|
|
28
|
-
"@tsed/di": "6.102.8-rc.
|
|
27
|
+
"@tsed/common": "6.102.8-rc.2",
|
|
28
|
+
"@tsed/core": "6.102.8-rc.2",
|
|
29
|
+
"@tsed/di": "6.102.8-rc.2",
|
|
29
30
|
"agenda": "^4.1.3"
|
|
30
31
|
},
|
|
31
32
|
"peerDependencies": {
|
|
@@ -37,5 +38,8 @@
|
|
|
37
38
|
},
|
|
38
39
|
"homepage": "https://github.com/tsedio/tsed/tree/rc/packages/third-parties/agenda",
|
|
39
40
|
"author": "Romain Lenzotti",
|
|
40
|
-
"license": "MIT"
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"tag": "rc"
|
|
44
|
+
}
|
|
41
45
|
}
|
package/src/AgendaModule.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {AfterListen, Logger, OnDestroy} from "@tsed/common";
|
|
2
2
|
import {Constant, Inject, InjectorService, Module, Provider} from "@tsed/di";
|
|
3
3
|
import {Processor} from "agenda";
|
|
4
|
-
import {PROVIDER_TYPE_AGENDA} from "./constants/
|
|
4
|
+
import {PROVIDER_TYPE_AGENDA} from "./constants/constants";
|
|
5
5
|
import {AgendaStore} from "./interfaces/AgendaStore";
|
|
6
6
|
import {AgendaService} from "./services/AgendaFactory";
|
|
7
7
|
|
|
File without changes
|
package/src/decorators/agenda.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {StoreMerge, useDecorators} from "@tsed/core";
|
|
2
2
|
import {Injectable} from "@tsed/di";
|
|
3
3
|
import {AgendaConfig} from "agenda";
|
|
4
|
-
import {PROVIDER_TYPE_AGENDA} from "../constants";
|
|
4
|
+
import {PROVIDER_TYPE_AGENDA} from "../constants/constants";
|
|
5
5
|
|
|
6
6
|
declare global {
|
|
7
7
|
namespace TsED {
|
package/src/index.ts
CHANGED
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
namespace TsED {
|
|
5
|
-
interface Configuration {
|
|
6
|
-
agenda?: {
|
|
7
|
-
/**
|
|
8
|
-
* Enable Agenda jobs. Default false.
|
|
9
|
-
*/
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
} & AgendaConfig;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @file Automatically generated by barrelsby.
|
|
3
|
+
*/
|
|
15
4
|
|
|
16
5
|
export * from "./AgendaModule";
|
|
17
|
-
export * from "./constants";
|
|
18
|
-
export * from "./decorators";
|
|
6
|
+
export * from "./constants/constants";
|
|
7
|
+
export * from "./decorators/agenda";
|
|
8
|
+
export * from "./decorators/define";
|
|
9
|
+
export * from "./decorators/every";
|
|
19
10
|
export * from "./interfaces/AgendaStore";
|
|
11
|
+
export * from "./interfaces/interfaces";
|
|
20
12
|
export * from "./services/AgendaFactory";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,sBAAsB,CAAC","sourcesContent":["export const PROVIDER_TYPE_AGENDA = \"PROVIDER_TYPE_AGENDA\";\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
(0, tslib_1.__exportStar)(require("./agenda"), exports);
|
|
5
|
-
(0, tslib_1.__exportStar)(require("./define"), exports);
|
|
6
|
-
(0, tslib_1.__exportStar)(require("./every"), exports);
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyB;AACzB,wDAAyB;AACzB,uDAAwB","sourcesContent":["export * from \"./agenda\";\nexport * from \"./define\";\nexport * from \"./every\";\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC","sourcesContent":["export const PROVIDER_TYPE_AGENDA = \"PROVIDER_TYPE_AGENDA\";\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC","sourcesContent":["export * from \"./agenda\";\nexport * from \"./define\";\nexport * from \"./every\";\n"]}
|
package/src/decorators/index.ts
DELETED