@clairejs/server 3.16.14 → 3.16.16

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.14:
3
+ #### 3.16.16:
4
4
 
5
+ - fix CRUD order
5
6
  - fix Job repo
6
7
  - fix AbstractJob
7
8
  - fix LocalJobScheduler
@@ -541,12 +541,7 @@ export class ModelRepository extends AbstractRepository {
541
541
  limit: queries?.limit,
542
542
  page: queries?.page,
543
543
  projection: finalProjection,
544
- order: queries?.order === "random"
545
- ? queries.order
546
- : queries?.order?.map((o) => {
547
- const key = Object.keys(o).find((k) => !!o[k]);
548
- return [key, o[key]];
549
- }),
544
+ order: queries?.order,
550
545
  },
551
546
  //-- page and limit does not affect nested queries
552
547
  this.getNestedQueries(queries));
@@ -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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clairejs/server",
3
- "version": "3.16.14",
3
+ "version": "3.16.16",
4
4
  "description": "Claire server NodeJs framework written in Typescript.",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",