clever-queue 0.1.2 → 0.2.0

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.
Files changed (79) hide show
  1. package/.gitlab-ci.yml +80 -0
  2. package/README.md +66 -6
  3. package/dist/engine/index.d.ts +14 -10
  4. package/dist/engine/index.js +45 -46
  5. package/dist/engine/index.js.map +1 -1
  6. package/dist/engine/interfaces.d.ts +3 -2
  7. package/dist/engine/interfaces.js.map +1 -1
  8. package/dist/helpers/id.d.ts +2 -0
  9. package/dist/helpers/id.js +7 -0
  10. package/dist/helpers/id.js.map +1 -0
  11. package/dist/helpers/index.d.ts +1 -0
  12. package/dist/helpers/index.js +19 -8
  13. package/dist/helpers/index.js.map +1 -1
  14. package/dist/index.d.ts +6 -6
  15. package/dist/index.js +25 -15
  16. package/dist/index.js.map +1 -1
  17. package/dist/{queue → queues}/index.d.ts +8 -5
  18. package/dist/{queue → queues}/index.js +27 -33
  19. package/dist/queues/index.js.map +1 -0
  20. package/dist/{queue → queues}/interfaces.d.ts +9 -4
  21. package/dist/{queue → queues}/interfaces.js +4 -2
  22. package/dist/queues/interfaces.js.map +1 -0
  23. package/dist/{runner → runners}/index.d.ts +7 -3
  24. package/dist/{runner → runners}/index.js +33 -15
  25. package/dist/runners/index.js.map +1 -0
  26. package/dist/{runner → runners}/interfaces.d.ts +2 -1
  27. package/dist/{runner → runners}/interfaces.js +1 -1
  28. package/dist/runners/interfaces.js.map +1 -0
  29. package/dist/{task → tasks}/index.d.ts +8 -2
  30. package/dist/{task → tasks}/index.js +27 -15
  31. package/dist/tasks/index.js.map +1 -0
  32. package/dist/{task → tasks}/interfaces.d.ts +1 -0
  33. package/dist/tasks/interfaces.js.map +1 -0
  34. package/documentation/demo_1E_1Q_1R_4T.svg +1 -0
  35. package/documentation/demo_1E_1Q_2R_4T.svg +1 -0
  36. package/documentation/demo_1E_2Q_1R_8T.svg +1 -0
  37. package/eslint.config.mjs +68 -68
  38. package/examples/package-lock.json +19 -0
  39. package/examples/package.json +15 -0
  40. package/examples/src/demo_1E_1Q_1R_4T.ts +37 -0
  41. package/examples/src/demo_1E_1Q_2R_4T.ts +36 -0
  42. package/examples/src/demo_1E_2Q_1R_8T.ts +40 -0
  43. package/examples/src/example00.ts +16 -0
  44. package/examples/src/helpers/animations.ts +295 -0
  45. package/examples/src/helpers/index.ts +2 -0
  46. package/examples/src/helpers/myAsyncTaskToExecute.ts +6 -0
  47. package/examples/src/helpers/svg.ts +155 -0
  48. package/examples/src/tsconfig.json +24 -0
  49. package/package.json +16 -6
  50. package/src/engine/index.ts +37 -48
  51. package/src/engine/interfaces.ts +3 -2
  52. package/src/helpers/id.ts +4 -0
  53. package/src/helpers/index.ts +1 -0
  54. package/src/index.ts +7 -7
  55. package/src/{queue → queues}/index.ts +11 -28
  56. package/src/{queue → queues}/interfaces.ts +4 -3
  57. package/src/{runner → runners}/index.ts +17 -12
  58. package/src/{runner → runners}/interfaces.ts +2 -1
  59. package/src/{task → tasks}/index.ts +11 -10
  60. package/src/{task → tasks}/interfaces.ts +1 -0
  61. package/test/issues/00001.mjs +1 -1
  62. package/test/miscellaneous/test.mjs +13 -13
  63. package/test/units/engine.mjs +5 -5
  64. package/test/units/queue.mjs +4 -4
  65. package/test/units/task.mjs +6 -6
  66. package/dist/errors.d.ts +0 -13
  67. package/dist/errors.js +0 -42
  68. package/dist/errors.js.map +0 -1
  69. package/dist/queue/index.js.map +0 -1
  70. package/dist/queue/interfaces.js.map +0 -1
  71. package/dist/runner/index.js.map +0 -1
  72. package/dist/runner/interfaces.js.map +0 -1
  73. package/dist/task/index.js.map +0 -1
  74. package/dist/task/interfaces.js.map +0 -1
  75. package/exemples/index01.js +0 -116
  76. package/exemples/index01.ts +0 -98
  77. package/exemples/index02.mjs +0 -13
  78. package/exemples/tsconfig.json +0 -24
  79. /package/dist/{task → tasks}/interfaces.js +0 -0
package/.gitlab-ci.yml ADDED
@@ -0,0 +1,80 @@
1
+ include:
2
+
3
+ - template: Jobs/Build.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml
4
+ - template: Jobs/Test.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Test.gitlab-ci.yml
5
+ - template: Jobs/Code-Quality.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Code-Quality.gitlab-ci.yml
6
+ #- template: Jobs/Code-Intelligence.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Code-Intelligence.gitlab-ci.yml
7
+ #- template: Jobs/Deploy.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml
8
+ #- template: Jobs/Deploy/ECS.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Deploy/ECS.gitlab-ci.yml
9
+ #- template: Jobs/Deploy/EC2.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Deploy/EC2.gitlab-ci.yml
10
+ #- template: Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/DAST-Default-Branch-Deploy.gitlab-ci.yml
11
+ #- template: Jobs/Browser-Performance-Testing.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Browser-Performance-Testing.gitlab-ci.yml
12
+ #- template: Jobs/Helm-2to3.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Helm-2to3.gitlab-ci.yml
13
+ #- template: Security/DAST.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/DAST.gitlab-ci.yml
14
+ #- template: Jobs/Container-Scanning.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Container-Scanning.gitlab-ci.yml
15
+ #- template: Jobs/Dependency-Scanning.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.gitlab-ci.yml
16
+ #- template: Jobs/SAST.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml
17
+ - template: Jobs/Secret-Detection.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml
18
+
19
+ variables:
20
+ NODE_VERSION: '24'
21
+
22
+ default:
23
+ image: node:${NODE_VERSION}
24
+
25
+ workflow:
26
+ rules:
27
+ - if: $CI_COMMIT_BRANCH
28
+
29
+ variables:
30
+ NPM_TOKEN: ${CI_JOB_TOKEN}
31
+
32
+ stages:
33
+ - build
34
+ - test
35
+ - release
36
+ - publish
37
+
38
+ build:
39
+ stage: build
40
+ script:
41
+ - npm install
42
+ - npm run build
43
+ artifacts:
44
+ when: always
45
+ paths:
46
+ - node_modules/
47
+ - dist/
48
+
49
+ test:
50
+ stage: test
51
+ needs: [build]
52
+ script:
53
+ - npm run test:junit
54
+ artifacts:
55
+ when: always
56
+ reports:
57
+ junit:
58
+ - junit.xml
59
+
60
+ semantic-release:
61
+ stage: release
62
+ needs: [build]
63
+ script:
64
+ - npm run semantic-release
65
+ rules:
66
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
67
+
68
+ publish:
69
+ stage: publish
70
+ id_tokens:
71
+ NPM_ID_TOKEN:
72
+ aud: "npm:registry.npmjs.org"
73
+ SIGSTORE_ID_TOKEN:
74
+ aud: sigstore
75
+ script:
76
+ - npm ci
77
+ - npm run build --if-present
78
+ - npm publish
79
+ only:
80
+ - tags
package/README.md CHANGED
@@ -2,12 +2,72 @@
2
2
 
3
3
  ## Purpose
4
4
 
5
- Queuing system for promises that handle concurring, throttling, weighting and prioritizing in a clever fashion.
5
+ Queuing system for promises that handle concurring, throttling, weighting and prioritizing in a *clever* fashion ?
6
6
 
7
- ## Features - Tracking Work in Progree
7
+ Zero dependancies.
8
8
 
9
- - [ ] Promises
10
- - [ ] Concurrency running
11
- - [ ] Priority & BestEffort queues
9
+ ## Features
10
+
11
+ - [X] Promises
12
+ - [X] Concurrency running
13
+ - [X] Priority & BestEffort queues
14
+ - [X] Weighted Queue
12
15
  - [ ] Throttling
13
- - [ ] Weighted Queue
16
+
17
+ ## Architecture - clever-queue implements 4 classes :
18
+
19
+ - *engine* : this is the starting point of clever-queue. You must instantiate at least one engine in your program. You may instantiate multiple engines if needed.
20
+ - *task* : this is what we would like to execute. It may be an async or a sync function
21
+ - *runner* : It is in charge of the execution of tasks. It runs tasks, one by one. You must have at least one runner in an engine (one best-effort runner is automatically created on engine instantiation). If you need concurrency running, you may instantiate as many runners as needed. You may configure each runner in a way that it will only execute tasks coming from queues that have an equal or higher priority than runner priority.
22
+ - *queue* : It is in charge of keeping tasks in a deterministic order (FIFO : First In, First Out by default), waiting for an available runner. You must have at least one queue in an engine. You may instantiate as many queues you need and manage priorities and weights between queues.
23
+
24
+ ```
25
+ import * as cleverQueue from "clever-queue"; // import the library - no dependancies
26
+
27
+ const engine = cleverQueue.createEngine(); // create and start (by default) engine with a single best effort runner (by default)
28
+ const queue = engine.createQueue(); // create your first queue, with standard priority (by default) and default weight (by default)
29
+
30
+ const myAsyncTaskToExecute: cleverQueue.tasks.FunctionToExecute = async function (message: string, timeout: number) {
31
+ // do your stuff here - In this case, just wait for the timeout and return the message
32
+ await new Promise((resolve) => setTimeout(resolve, timeout));
33
+ return message;
34
+ };
35
+
36
+ (async () => {
37
+ const result = await queue.createTaskAndEnqueue(() => myAsyncTaskToExecute("myValue", 1000));
38
+ console.log(result);
39
+ engine.stop(); // stop the engine when you have finished
40
+ })();
41
+ ```
42
+
43
+ ## Examples
44
+
45
+ ### 1 x Queue / 1 x Runner / 4 x Tasks
46
+
47
+ ```
48
+ const engine = cleverQueue.createEngine();
49
+ const queueA = engine.createQueue();
50
+ ```
51
+
52
+ ![One Queue / One Runner](documentation/demo_1E_1Q_1R_4T.svg)
53
+
54
+ ### 1 x Queue / 2 x Runners / 4 x Tasks
55
+
56
+ ```
57
+ const engine = cleverQueue.createEngine();
58
+ engine.createRunner({ priority: cleverQueue.queues.Priorities.BestEffort });
59
+ const queueA = engine.createQueue();
60
+ ```
61
+
62
+ ![One Queue / One Runner](documentation/demo_1E_1Q_2R_4T.svg)
63
+
64
+ ### 2 x Queues / 1 x Runner / 8 x Tasks
65
+
66
+ ```
67
+ const engine = cleverQueue.createEngine();
68
+ const queueA = engine.createQueue();
69
+ const queueB = engine.createQueue();
70
+ ```
71
+
72
+ ![One Queue / One Runner](documentation/demo_1E_2Q_1R_8T.svg)
73
+
@@ -1,21 +1,25 @@
1
- import * as Queue from "../queue";
2
- import * as Runner from "../runner";
3
- import * as Task from "../task";
1
+ import * as cqQueue from "../queues";
2
+ import * as cqRunner from "../runners";
3
+ import * as cqTask from "../tasks";
4
4
  type Status = "unknown" | "initialiazing" | "running" | "stopping" | "destroying";
5
5
  import { Options, Statistics } from "./interfaces";
6
6
  declare class Engine {
7
7
  #private;
8
8
  status: Status;
9
- readonly runners: Runner.Runner[];
10
- readonly queues: Queue.Queue[];
9
+ readonly options: Options;
10
+ tags: {
11
+ [key: string]: string | number | boolean;
12
+ };
13
+ readonly runners: cqRunner.Runner[];
14
+ readonly queues: cqQueue.Queue[];
11
15
  constructor(opt: Options);
12
16
  start(): void;
13
17
  stop(): void;
14
- createQueue(options: Queue.Options): Queue.Queue;
15
- createRunner(options: Runner.Options): Runner.Runner;
16
- createTask(function_: Task.FunctionToExecute, options: Task.Options): Task.Task;
17
- getNextTask(priorityGreaterOrEqualTo: number): Promise<Task.Task | undefined>;
18
+ createQueue(options?: cqQueue.Options): cqQueue.Queue;
19
+ createRunner(options: cqRunner.Options): cqRunner.Runner;
20
+ createTask(function_: cqTask.FunctionToExecute, options: cqTask.Options): cqTask.Task;
21
+ getNextTask(priorityGreaterOrEqualTo: number): Promise<cqTask.Task | undefined>;
18
22
  statistics(): Statistics;
19
23
  }
20
- export { Options, Statistics, ErrorsList } from "./interfaces";
24
+ export { Options, Statistics, ErrorsList, LogFunction } from "./interfaces";
21
25
  export { Engine };
@@ -16,20 +16,30 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  Object.defineProperty(exports, "__esModule", { value: true });
27
37
  exports.Engine = exports.ErrorsList = void 0;
28
38
  const _ = __importStar(require("../helpers"));
29
- const Queue = __importStar(require("../queue"));
30
- const Runner = __importStar(require("../runner"));
31
- const Task = __importStar(require("../task"));
32
- const TICK_START = 42;
39
+ const cqQueue = __importStar(require("../queues"));
40
+ const cqRunner = __importStar(require("../runners"));
41
+ const cqTask = __importStar(require("../tasks"));
42
+ const TICK_START = 42; // RANDOM ? ;-) value to avoid zero division
33
43
  const interfaces_1 = require("./interfaces");
34
44
  const defaultOptions = {
35
45
  bestEffortRunners: 1,
@@ -38,18 +48,22 @@ const defaultOptions = {
38
48
  };
39
49
  class Engine {
40
50
  status = "unknown";
51
+ options;
52
+ tags = {};
41
53
  runners = [];
42
54
  queues = [];
43
55
  constructor(opt) {
44
56
  this.status = "initialiazing";
45
- const options = { ...defaultOptions, ...opt };
46
- this.#checkOptionsConsistancy(options);
57
+ this.options = { ...defaultOptions, ...opt };
58
+ if (!this.options.id)
59
+ this.options.id = _.Id.generate();
60
+ this.#checkOptionsConsistancy(this.options);
47
61
  // create runners
48
- for (let index = 0; index < (options.bestEffortRunners ?? 0); index++)
49
- this.createRunner({ priority: Runner.Priorities.BestEffort });
50
- if (options.logFunction)
51
- options.logFunction({ body: "engine has been initialized" });
52
- if (options.autostart)
62
+ for (let index = 0; index < (this.options.bestEffortRunners ?? 0); index++)
63
+ this.createRunner({ priority: cqRunner.Priorities.BestEffort });
64
+ if (this.options.logFunction)
65
+ this.options.logFunction({ body: "engine has been initialized" });
66
+ if (this.options.autostart)
53
67
  this.start();
54
68
  }
55
69
  start() {
@@ -62,19 +76,19 @@ class Engine {
62
76
  for (const runner of this.runners)
63
77
  runner.stop();
64
78
  }
65
- createQueue(options) {
66
- const queue = new Queue.Queue({ logFunction: options.logFunction, ...options });
79
+ createQueue(options = { priority: cqQueue.Priorities.Standard, weight: cqQueue.Weights.Default }) {
80
+ const queue = new cqQueue.Queue({ logFunction: options.logFunction, ...options });
67
81
  this.queues.push(queue);
68
82
  this.#resetLastTick(options.priority);
69
83
  return queue;
70
84
  }
71
85
  createRunner(options) {
72
- const runner = new Runner.Runner({ logFunction: options.logFunction, ...options }, this);
86
+ const runner = new cqRunner.Runner({ logFunction: options.logFunction, ...options }, this);
73
87
  this.runners.push(runner);
74
88
  return runner;
75
89
  }
76
90
  createTask(function_, options) {
77
- return new Task.Task(function_, { logFunction: options.logFunction, ...options });
91
+ return new cqTask.Task(function_, { logFunction: options.logFunction, ...options });
78
92
  }
79
93
  #checkOptionsConsistancy(options) {
80
94
  if (!options)
@@ -90,9 +104,13 @@ class Engine {
90
104
  return result;
91
105
  };
92
106
  #resetLastTick(priority) {
93
- for (const q of this.queues)
107
+ for (let i = 0; i < this.queues.length; i++) {
108
+ const q = this.queues[i];
94
109
  if (q.options.priority === priority)
95
- q.tick = TICK_START;
110
+ q.tick = TICK_START
111
+ + this.#getSumWeightFunction(priority) / q.options.weight // set tick to max weight / queue weight to favorize low weight queues
112
+ + i / 255; // slight increment to favorize first created queues
113
+ }
96
114
  }
97
115
  #getNextWeightedQueue(priority) {
98
116
  let minTick = Infinity;
@@ -111,31 +129,12 @@ class Engine {
111
129
  result += q.tasks.length;
112
130
  return result;
113
131
  }
114
- /*
115
- async getNextTask(priorityGreaterOrEqualTo: number): Promise<Task.Task> {
116
- for (let priority = Queue.Priorities.Absolute; priority <= priorityGreaterOrEqualTo; priority++) {
117
- // Iterate on Each PriorityLevel From Absolute to param function
118
- while (this.#howMuchTasksWaitingInQueues(priority) > 0) {
119
- let task: Task.Task | undefined;
120
- while (!task) {
121
- const nextPriorityQueue = this.#getNextQueue(priority); // Find Next Priority Queue to process
122
- if (nextPriorityQueue) {
123
- nextPriorityQueue.tick += this.#getSumWeightFunction(priority) / nextPriorityQueue.options.weight; // Update tick with related weight
124
- if (nextPriorityQueue.tasks.length > 0) {
125
- task = nextPriorityQueue.tasks.shift(); // If queue is not empty, this is our next Task to process
126
- if (task) task.runner();
127
- console.log(nextPriorityQueue.options.name, nextPriorityQueue.tick);
128
- }
129
- }
130
- }
131
- }
132
- }
133
- }
134
- */
135
132
  async getNextTask(priorityGreaterOrEqualTo) {
133
+ if (this.status !== "running")
134
+ return undefined;
136
135
  let task = undefined;
137
136
  // Iterate on Each PriorityLevel From Absolute to parameter
138
- for (let priority = Queue.Priorities.Absolute; priority <= priorityGreaterOrEqualTo; priority++) {
137
+ for (let priority = cqQueue.Priorities.Absolute; priority >= priorityGreaterOrEqualTo; priority--) {
139
138
  // Check if there is task waiting of this priority level
140
139
  while (this.#howMuchTasksWaitingInQueues(priority) > 0) {
141
140
  // Find Next Weighted Queue of this priority level to check
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import * as _ from "../helpers";
2
- import * as Runner from "../runner/interfaces";
3
- import * as Queue from "../runner/interfaces";
2
+ import * as Runner from "../runners/interfaces";
3
+ import * as Queue from "../runners/interfaces";
4
4
  interface Options {
5
+ id?: string;
5
6
  autostart?: boolean;
6
7
  bestEffortRunners?: number;
7
8
  logFunction?: _.Logs.LogFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/engine/interfaces.ts"],"names":[],"mappings":";;;AAuBA,MAAM,UAAU,GAEZ;IACF,+BAA+B,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,iDAAiD,EAAE;IACxI,4CAA4C,EAAE,EAAE,IAAI,EAAE,8CAA8C,EAAE,OAAO,EAAE,yDAAyD,EAAE;CAC3K,CAAC;AAI4B,gCAAU"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/engine/interfaces.ts"],"names":[],"mappings":";;;AAwBA,MAAM,UAAU,GAEZ;IACF,+BAA+B,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,iDAAiD,EAAE;IACxI,4CAA4C,EAAE,EAAE,IAAI,EAAE,8CAA8C,EAAE,OAAO,EAAE,yDAAyD,EAAE;CAC3K,CAAC;AAI4B,gCAAU"}
@@ -0,0 +1,2 @@
1
+ declare function generate(): string;
2
+ export { generate };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = generate;
4
+ function generate() {
5
+ return Math.floor(Math.random() * Date.now()).toString(16);
6
+ }
7
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/helpers/id.ts"],"names":[],"mappings":";;AAGS,4BAAQ;AAHjB,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * as Errors from "./errors";
2
2
  export * as Logs from "./logs";
3
3
  export * as Traces from "./traces";
4
+ export * as Id from "./id";
@@ -15,16 +15,27 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Traces = exports.Logs = exports.Errors = void 0;
36
+ exports.Id = exports.Traces = exports.Logs = exports.Errors = void 0;
27
37
  exports.Errors = __importStar(require("./errors"));
28
38
  exports.Logs = __importStar(require("./logs"));
29
39
  exports.Traces = __importStar(require("./traces"));
40
+ exports.Id = __importStar(require("./id"));
30
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC;AACnC,+CAA+B;AAC/B,mDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC;AACnC,+CAA+B;AAC/B,mDAAmC;AACnC,2CAA2B"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import * as Engine from "./engine";
2
- declare function createEngine(options: Engine.Options): Engine.Engine;
3
- export * as Engine from "./engine/interfaces";
4
- export * as Runner from "./runner/interfaces";
5
- export * as Queue from "./queue/interfaces";
6
- export * as Task from "./task/interfaces";
1
+ import * as engine from "./engine";
2
+ declare function createEngine(options?: engine.Options): engine.Engine;
3
+ export * as engine from "./engine";
4
+ export * as runners from "./runners";
5
+ export * as queues from "./queues";
6
+ export * as tasks from "./tasks";
7
7
  export { createEngine };
package/dist/index.js CHANGED
@@ -15,23 +15,33 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Task = exports.Queue = exports.Runner = exports.Engine = void 0;
36
+ exports.tasks = exports.queues = exports.runners = exports.engine = void 0;
27
37
  exports.createEngine = createEngine;
28
38
  // clever-queue
29
- const Engine = __importStar(require("./engine"));
30
- function createEngine(options) {
31
- return new Engine.Engine(options);
39
+ const engine = __importStar(require("./engine"));
40
+ function createEngine(options = {}) {
41
+ return new engine.Engine(options);
32
42
  }
33
- exports.Engine = __importStar(require("./engine/interfaces"));
34
- exports.Runner = __importStar(require("./runner/interfaces"));
35
- exports.Queue = __importStar(require("./queue/interfaces"));
36
- exports.Task = __importStar(require("./task/interfaces"));
43
+ exports.engine = __importStar(require("./engine"));
44
+ exports.runners = __importStar(require("./runners"));
45
+ exports.queues = __importStar(require("./queues"));
46
+ exports.tasks = __importStar(require("./tasks"));
37
47
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAYS,oCAAY;AAZrB,eAAe;AACf,iDAAmC;AAEnC,SAAS,YAAY,CAAC,OAAuB;IAC3C,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,8DAA8C;AAC9C,8DAA8C;AAC9C,4DAA4C;AAC5C,0DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYS,oCAAY;AAZrB,eAAe;AACf,iDAAmC;AAEnC,SAAS,YAAY,CAAC,UAA0B,EAAE;IAChD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,mDAAmC;AACnC,qDAAqC;AACrC,mDAAmC;AACnC,iDAAiC"}
@@ -1,4 +1,4 @@
1
- import * as Task from "../task";
1
+ import * as cqTask from "../tasks";
2
2
  import { Options, Statistics } from "./interfaces";
3
3
  type GetSumWeightFunction = (priority: number) => number;
4
4
  type Status = "unknown" | "initialiazing" | "running" | "stopping" | "destroying";
@@ -6,14 +6,17 @@ declare class Queue {
6
6
  #private;
7
7
  status: Status;
8
8
  readonly options: Options;
9
+ tags: {
10
+ [key: string]: string | number | boolean;
11
+ };
9
12
  tick: number;
10
- tasks: Task.Task[];
13
+ tasks: cqTask.Task[];
11
14
  constructor(opt: Options);
12
15
  start(): void;
13
16
  stop(): void;
14
- createTaskAndEnqueue(function_: Task.FunctionToExecute, options: Task.Options): Promise<unknown>;
15
- enqueue(task: Task.Task): Promise<unknown>;
17
+ createTaskAndEnqueue(function_: cqTask.FunctionToExecute, options?: cqTask.Options): Promise<unknown>;
18
+ enqueue(task: cqTask.Task): Promise<unknown>;
16
19
  statistics(): Statistics;
17
20
  }
18
- export { Options, Statistics, ErrorsList, Priorities } from "./interfaces";
21
+ export { Options, Statistics, ErrorsList, Priorities, Weights } from "./interfaces";
19
22
  export { Queue, GetSumWeightFunction };
@@ -16,17 +16,27 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.Queue = exports.Priorities = exports.ErrorsList = void 0;
37
+ exports.Queue = exports.Weights = exports.Priorities = exports.ErrorsList = void 0;
28
38
  const _ = __importStar(require("../helpers"));
29
- const Task = __importStar(require("../task"));
39
+ const cqTask = __importStar(require("../tasks"));
30
40
  const interfaces_1 = require("./interfaces");
31
41
  const defaultOptions = {
32
42
  autostart: true,
@@ -37,11 +47,14 @@ const defaultOptions = {
37
47
  class Queue {
38
48
  status = "unknown";
39
49
  options;
50
+ tags = {};
40
51
  tick = 0;
41
52
  tasks = [];
42
53
  constructor(opt) {
43
54
  this.status = "initialiazing";
44
55
  this.options = this.#checkOptionsConsistancy({ ...defaultOptions, ...opt });
56
+ if (!this.options.id)
57
+ this.options.id = _.Id.generate();
45
58
  if (this.options.autostart)
46
59
  this.start();
47
60
  }
@@ -60,33 +73,13 @@ class Queue {
60
73
  stop() {
61
74
  this.status = "stopping";
62
75
  }
63
- /*
64
- async createTask(function_: Task._function): Promise<unknown> {
65
- if (typeof function_ !== "function") {
66
- console.error("raisong Task.ErrorsList.FunctionIsNotAFunction", Task.ErrorsList.FunctionIsNotAFunction);
67
- throw new _.Errors.CQError(Task.ErrorsList.FunctionIsNotAFunction);
68
- }
69
- return new Promise((resolve, reject) => {
70
- try {
71
- const taskRunner = async (): Promise<void> => {
72
- console.log("running Task");
73
- const result = await function_();
74
- console.log("task runned", result);
75
- resolve(result);
76
- };
77
- const task = new Task.Task(taskRunner, {});
78
- this.tasks.push(task);
79
- } catch (error) {
80
- reject(error);
81
- }
82
- });
83
- }
84
- */
85
- async createTaskAndEnqueue(function_, options) {
86
- const task = new Task.Task(function_, options);
76
+ async createTaskAndEnqueue(function_, options = {}) {
77
+ const task = new cqTask.Task(function_, options);
87
78
  return this.enqueue(task);
88
79
  }
89
80
  async enqueue(task) {
81
+ task.status = "queued";
82
+ task.queueId = this.options.id; // store queue that handle task for future references
90
83
  return new Promise((resolve, reject) => {
91
84
  task.resolver = resolve;
92
85
  task.rejecter = reject;
@@ -107,4 +100,5 @@ exports.Queue = Queue;
107
100
  var interfaces_2 = require("./interfaces");
108
101
  Object.defineProperty(exports, "ErrorsList", { enumerable: true, get: function () { return interfaces_2.ErrorsList; } });
109
102
  Object.defineProperty(exports, "Priorities", { enumerable: true, get: function () { return interfaces_2.Priorities; } });
103
+ Object.defineProperty(exports, "Weights", { enumerable: true, get: function () { return interfaces_2.Weights; } });
110
104
  //# sourceMappingURL=index.js.map