@clairejs/server 3.16.15 → 3.16.17

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 CHANGED
@@ -1,7 +1,8 @@
1
1
  ## Change Log
2
2
 
3
- #### 3.16.15:
3
+ #### 3.16.17:
4
4
 
5
+ - fix job param type from any[] to any
5
6
  - fix CRUD order
6
7
  - fix Job repo
7
8
  - fix AbstractJob
@@ -1,18 +1,18 @@
1
1
  import { IQueryProvider } from "@clairejs/orm";
2
2
  import { CustomJobInfo } from "./interfaces";
3
- export declare abstract class AbstractJobRepository {
3
+ export declare abstract class AbstractJobRepository<T extends CustomJobInfo> {
4
4
  /**
5
5
  * Return all persisted jobs
6
6
  */
7
- abstract getJobs(query: IQueryProvider): Promise<CustomJobInfo[]>;
7
+ abstract getJobs(query: IQueryProvider): Promise<T[]>;
8
8
  /**
9
9
  * Save the job info and return a unique id
10
10
  * @param jobInfo The custom job info to save
11
11
  */
12
- abstract saveJob(jobInfo: CustomJobInfo, query: IQueryProvider): Promise<string>;
12
+ abstract saveJob(jobInfo: T, query: IQueryProvider): Promise<string>;
13
13
  /**
14
14
  * Remove job info by id
15
- * @param jobId Unique id of job
15
+ * @param id Unique id of job
16
16
  */
17
- abstract removeJobById(jobId: string, query: IQueryProvider): Promise<void>;
17
+ abstract removeJobById(id: string, query: IQueryProvider): Promise<void>;
18
18
  }
@@ -2,14 +2,14 @@ import { AbstractLogger, IInit } from "@clairejs/core";
2
2
  import Redis from "ioredis";
3
3
  import { AbstractDatabaseAdapter, ITransaction } from "@clairejs/orm";
4
4
  import { AbstractJobScheduler } from "./AbstractJobScheduler";
5
- import { JobInfo, ScheduledJob } from "./interfaces";
5
+ import { CustomJobInfo, JobInfo, ScheduledJob } from "./interfaces";
6
6
  import { AbstractJobRepository } from "./AbstractJobRepository";
7
7
  export declare class LocalJobScheduler extends AbstractJobScheduler implements IInit {
8
8
  protected readonly logger: AbstractLogger;
9
9
  protected readonly db: AbstractDatabaseAdapter;
10
10
  protected readonly redisClient: Redis;
11
11
  protected readonly subscribeClient: Redis;
12
- protected readonly jobRepo: AbstractJobRepository;
12
+ protected readonly jobRepo: AbstractJobRepository<CustomJobInfo>;
13
13
  /**
14
14
  * Redis lock key to select active scheduler
15
15
  */
@@ -35,7 +35,7 @@ export declare class LocalJobScheduler extends AbstractJobScheduler implements I
35
35
  private isActive;
36
36
  private notifyResolver;
37
37
  private jobHolder;
38
- constructor(logger: AbstractLogger, db: AbstractDatabaseAdapter, redisClient: Redis, subscribeClient: Redis, jobRepo: AbstractJobRepository,
38
+ constructor(logger: AbstractLogger, db: AbstractDatabaseAdapter, redisClient: Redis, subscribeClient: Redis, jobRepo: AbstractJobRepository<CustomJobInfo>,
39
39
  /**
40
40
  * Redis lock key to select active scheduler
41
41
  */
@@ -1,12 +1,11 @@
1
- import { Constructor } from "@clairejs/core";
1
+ import { AbstractModel, Constructor } from "@clairejs/core";
2
2
  import { IQueryProvider } from "@clairejs/orm";
3
3
  import { CustomJobInfo } from "./interfaces";
4
4
  import { AbstractJobRepository } from "./AbstractJobRepository";
5
- import { AbstractJob } from "./job";
6
- export declare class DefaultJobRepository extends AbstractJobRepository {
7
- protected readonly model: Constructor<AbstractJob>;
8
- constructor(model: Constructor<AbstractJob>);
9
- getJobs(query: IQueryProvider): Promise<CustomJobInfo[]>;
10
- saveJob({ id, ...jobInfo }: CustomJobInfo, query: IQueryProvider): Promise<string>;
11
- removeJobById(jobId: string, query: IQueryProvider): Promise<void>;
5
+ export declare class DefaultJobRepository<T extends CustomJobInfo & AbstractModel> extends AbstractJobRepository<T> {
6
+ protected readonly model: Constructor<T>;
7
+ constructor(model: Constructor<T>);
8
+ getJobs(query: IQueryProvider): Promise<T[]>;
9
+ saveJob({ id, ...jobInfo }: T, query: IQueryProvider): Promise<string>;
10
+ removeJobById(id: string, query: IQueryProvider): Promise<void>;
12
11
  }
@@ -1,4 +1,3 @@
1
- import { pickData } from "@clairejs/core";
2
1
  import { AbstractJobRepository } from "./AbstractJobRepository";
3
2
  export class DefaultJobRepository extends AbstractJobRepository {
4
3
  model;
@@ -8,7 +7,7 @@ export class DefaultJobRepository extends AbstractJobRepository {
8
7
  }
9
8
  async getJobs(query) {
10
9
  const jobs = await query.use(this.model).getRecords();
11
- return jobs.map((job) => pickData(job, ["jobName", "at", "params", "id"]));
10
+ return jobs;
12
11
  }
13
12
  async saveJob({ id, ...jobInfo }, query) {
14
13
  if (id) {
@@ -22,7 +21,7 @@ export class DefaultJobRepository extends AbstractJobRepository {
22
21
  }
23
22
  return id;
24
23
  }
25
- async removeJobById(jobId, query) {
26
- await query.use(this.model).deleteById(jobId);
24
+ async removeJobById(id, query) {
25
+ await query.use(this.model).deleteById(id);
27
26
  }
28
27
  }
@@ -37,12 +37,12 @@ export interface CustomJobInfo {
37
37
  id?: string;
38
38
  jobName: string;
39
39
  at: number;
40
- params?: any[];
40
+ params?: any;
41
41
  }
42
42
  export interface JobInfo {
43
43
  id?: string;
44
44
  jobName: string;
45
- params?: any[];
45
+ params?: any;
46
46
  at?: number;
47
47
  interval?: JobInterval;
48
48
  cron?: string;
package/dist/job/job.d.ts CHANGED
@@ -3,5 +3,5 @@ import { CustomJobInfo } from "./interfaces";
3
3
  export declare abstract class AbstractJob extends AbstractModel implements CustomJobInfo {
4
4
  jobName: string;
5
5
  at: number;
6
- params?: any[];
6
+ params?: any;
7
7
  }
package/dist/job/job.js CHANGED
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { AbstractModel, Column, DataType } from "@clairejs/core";
10
+ import { AbstractModel, Column } from "@clairejs/core";
11
11
  export class AbstractJob extends AbstractModel {
12
12
  jobName;
13
13
  at;
@@ -31,7 +31,6 @@ __decorate([
31
31
  __decorate([
32
32
  Column({
33
33
  description: "The associated params with this job",
34
- vectorProps: { elementDataType: DataType.OBJECT },
35
34
  }),
36
- __metadata("design:type", Array)
35
+ __metadata("design:type", Object)
37
36
  ], AbstractJob.prototype, "params", void 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clairejs/server",
3
- "version": "3.16.15",
3
+ "version": "3.16.17",
4
4
  "description": "Claire server NodeJs framework written in Typescript.",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",