Compare commits

..

16 Commits

Author SHA1 Message Date
8f9b3151d8 2.1.13 2020-09-07 23:52:23 +00:00
81e97b513a fix(core): update 2020-09-07 23:52:22 +00:00
7da0035805 2.1.12 2020-09-07 17:35:51 +00:00
16a77e4c41 fix(core): update 2020-09-07 17:35:50 +00:00
495f63ec71 2.1.11 2020-09-04 16:09:44 +00:00
17f840d24c fix(core): update 2020-09-04 16:09:44 +00:00
b93407e83a 2.1.10 2020-09-04 06:47:31 +00:00
003c1f2796 fix(core): update 2020-09-04 06:47:30 +00:00
7f72a88846 2.1.9 2020-09-03 20:43:38 +00:00
823d4f7d55 fix(core): update 2020-09-03 20:43:37 +00:00
7d57fcf07e 2.1.8 2020-09-02 15:26:46 +00:00
eb9ae2fa71 fix(core): update 2020-09-02 15:26:45 +00:00
5fe60c6e50 2.1.7 2020-09-02 13:46:27 +00:00
6f811b4ab5 fix(core): update 2020-09-02 13:46:26 +00:00
2cf32ac723 2.1.6 2020-09-02 13:04:53 +00:00
09936fda56 fix(core): update 2020-09-02 13:04:52 +00:00
8 changed files with 50 additions and 40 deletions

View File

@ -19,23 +19,35 @@ mirror:
stage: security stage: security
script: script:
- npmci git mirror - npmci git mirror
only:
- tags
tags: tags:
- lossless - lossless
- docker - docker
- notpriv - notpriv
audit: auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
tags:
- docker
auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security stage: security
script: script:
- npmci npm prepare - npmci npm prepare
- npmci command npm install --ignore-scripts - npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org - npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high - npmci command npm audit --audit-level=high --only=dev
tags: tags:
- lossless
- docker - docker
- notpriv allow_failure: true
# ==================== # ====================
# test stage # test stage
@ -50,9 +62,7 @@ testStable:
- npmci npm test - npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- priv
testBuild: testBuild:
stage: test stage: test
@ -63,9 +73,7 @@ testBuild:
- npmci command npm run build - npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- lossless
- docker - docker
- notpriv
release: release:
stage: release stage: release
@ -85,6 +93,8 @@ release:
codequality: codequality:
stage: metadata stage: metadata
allow_failure: true allow_failure: true
only:
- tags
script: script:
- npmci command npm install -g tslint typescript - npmci command npm install -g tslint typescript
- npmci npm prepare - npmci npm prepare

View File

@ -15,7 +15,7 @@
"properties": { "properties": {
"projectType": { "projectType": {
"type": "string", "type": "string",
"enum": ["website", "element", "service", "npm"] "enum": ["website", "element", "service", "npm", "wcc"]
} }
} }
} }

30
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/taskbuffer", "name": "@pushrocks/taskbuffer",
"version": "2.1.5", "version": "2.1.13",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -1589,9 +1589,9 @@
} }
}, },
"@pushrocks/smartlog": { "@pushrocks/smartlog": {
"version": "2.0.36", "version": "2.0.37",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog/-/smartlog-2.0.36.tgz", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog/-/smartlog-2.0.37.tgz",
"integrity": "sha512-guM03567UFZebx3urBQdiQecZwKvrR8c8fzt7EDPrI1ihArZc7ab6MQEu9yklPKqJMGLEz8t0oExgQ8804r73g==", "integrity": "sha512-EfF/Zp8tpRdJwZtwFMeQdurd4wEvT2S/kx9iRf362aER93wyO8NUuGyyN6U52hgEN5r1VDgG27lpNXc+ZKwRMw==",
"requires": { "requires": {
"@pushrocks/isounique": "^1.0.4", "@pushrocks/isounique": "^1.0.4",
"@pushrocks/smartlog-interfaces": "^2.0.20" "@pushrocks/smartlog-interfaces": "^2.0.20"
@ -1973,15 +1973,15 @@
} }
}, },
"@pushrocks/smarttime": { "@pushrocks/smarttime": {
"version": "3.0.24", "version": "3.0.35",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.24.tgz", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.35.tgz",
"integrity": "sha512-c/n0Y3CUnVNa3TnuXZ5aRc0bWj4RX7+XSjPes1J4HidU1yBOd9UOt6l08W8aPH5jMjT9Ei2jH0GsheaTGoVEYA==", "integrity": "sha512-KBDprr2gMcw+21kD6GkJ0Y9fc/SuMijhFPDKoBmuCW9Nhn+KAnabCB8Qn8OzeUuQcoHQ3SFJ/4KioJWNxMgxaQ==",
"requires": { "requires": {
"@pushrocks/lik": "^4.0.13", "@pushrocks/lik": "^4.0.17",
"@pushrocks/smartdelay": "^2.0.10", "@pushrocks/smartdelay": "^2.0.10",
"@pushrocks/smartpromise": "^3.0.2", "@pushrocks/smartpromise": "^3.0.2",
"croner": "^1.1.23", "croner": "^1.1.23",
"dayjs": "^1.8.29", "dayjs": "^1.8.35",
"is-nan": "^1.3.0" "is-nan": "^1.3.0"
} }
}, },
@ -2297,9 +2297,9 @@
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
}, },
"@types/node": { "@types/node": {
"version": "14.6.2", "version": "14.6.4",
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-14.6.2.tgz", "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-14.6.4.tgz",
"integrity": "sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==" "integrity": "sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ=="
}, },
"@types/parcel-bundler": { "@types/parcel-bundler": {
"version": "1.12.1", "version": "1.12.1",
@ -4185,9 +4185,9 @@
} }
}, },
"dayjs": { "dayjs": {
"version": "1.8.29", "version": "1.8.35",
"resolved": "https://verdaccio.lossless.one/dayjs/-/dayjs-1.8.29.tgz", "resolved": "https://verdaccio.lossless.one/dayjs/-/dayjs-1.8.35.tgz",
"integrity": "sha512-Vm6teig8ZWK7rH/lxzVGxZJCljPdmUr6q/3f4fr5F0VWNGVkZEjZOQJsAN8hUHUqn+NK4XHNEpJZS1MwLyDcLw==" "integrity": "sha512-isAbIEenO4ilm6f8cpqvgjZCsuerDAz2Kb7ri201AiNn58aqXuaLJEnCtfIMdCvERZHNGRY5lDMTr/jdAnKSWQ=="
}, },
"deasync": { "deasync": {
"version": "0.1.20", "version": "0.1.20",

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/taskbuffer", "name": "@pushrocks/taskbuffer",
"version": "2.1.5", "version": "2.1.13",
"private": false, "private": false,
"description": "flexible task management. TypeScript ready!", "description": "flexible task management. TypeScript ready!",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
@ -29,10 +29,10 @@
"dependencies": { "dependencies": {
"@pushrocks/lik": "^4.0.17", "@pushrocks/lik": "^4.0.17",
"@pushrocks/smartdelay": "^2.0.10", "@pushrocks/smartdelay": "^2.0.10",
"@pushrocks/smartlog": "^2.0.36", "@pushrocks/smartlog": "^2.0.37",
"@pushrocks/smartpromise": "^3.0.6", "@pushrocks/smartpromise": "^3.0.6",
"@pushrocks/smartrx": "^2.0.18", "@pushrocks/smartrx": "^2.0.18",
"@pushrocks/smarttime": "^3.0.24", "@pushrocks/smarttime": "^3.0.35",
"@types/cron": "^1.7.2" "@types/cron": "^1.7.2"
}, },
"devDependencies": { "devDependencies": {
@ -40,7 +40,7 @@
"@gitzone/tsbundle": "^1.0.78", "@gitzone/tsbundle": "^1.0.78",
"@gitzone/tstest": "^1.0.44", "@gitzone/tstest": "^1.0.44",
"@pushrocks/tapbundle": "^3.2.9", "@pushrocks/tapbundle": "^3.2.9",
"@types/node": "^14.6.2", "@types/node": "^14.6.4",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
}, },

View File

@ -4,7 +4,6 @@ export class BufferRunner {
public task: Task; public task: Task;
// initialze by default // initialze by default
public bufferCounter: number = 0; public bufferCounter: number = 0;
public running: boolean = false;
constructor(taskArg: Task) { constructor(taskArg: Task) {
this.task = taskArg; this.task = taskArg;
} }
@ -16,7 +15,7 @@ export class BufferRunner {
const returnPromise: Promise<any> = this.task.cycleCounter.getPromiseForCycle( const returnPromise: Promise<any> = this.task.cycleCounter.getPromiseForCycle(
this.bufferCounter + 1 this.bufferCounter + 1
); );
if (!this.running) { if (!this.task.running) {
this._run(x); this._run(x);
} }
return returnPromise; return returnPromise;
@ -25,15 +24,13 @@ export class BufferRunner {
private _run(x) { private _run(x) {
const recursiveBufferRunner = (x) => { const recursiveBufferRunner = (x) => {
if (this.bufferCounter >= 0) { if (this.bufferCounter >= 0) {
this.running = true;
this.task.running = true; this.task.running = true;
Task.runTask(this.task, { x: x }).then((x) => { Task.runTask(this.task, { x: x }).then((x) => {
this.bufferCounter--; this.bufferCounter--; // this.bufferCounter drops below 0, the recursion stops.
this.task.cycleCounter.informOfCycle(x); this.task.cycleCounter.informOfCycle(x);
recursiveBufferRunner(x); recursiveBufferRunner(x);
}); });
} else { } else {
this.running = false;
this.task.running = false; this.task.running = false;
} }
}; };

View File

@ -200,6 +200,7 @@ export class Task {
/** /**
* trigger task unbuffered. * trigger task unbuffered.
* will actually run the task, not considering any buffered limits.
*/ */
public triggerUnBuffered(x?): Promise<any> { public triggerUnBuffered(x?): Promise<any> {
return Task.runTask(this, { x: x }); return Task.runTask(this, { x: x });
@ -207,6 +208,7 @@ export class Task {
/** /**
* trigger task buffered. * trigger task buffered.
* will simply call task.trigger(), which respects buffering by default
*/ */
public triggerBuffered(x?): Promise<any> { public triggerBuffered(x?): Promise<any> {
return this.bufferRunner.trigger(x); return this.bufferRunner.trigger(x);

View File

@ -15,11 +15,13 @@ export class TaskDebounced<T = unknown> extends Task {
name: optionsArg.name, name: optionsArg.name,
taskFunction: async (x: T) => { taskFunction: async (x: T) => {
this._observableIntake.push(x); this._observableIntake.push(x);
} },
}); });
this.taskFunction = optionsArg.taskFunction; this.taskFunction = optionsArg.taskFunction;
this._observableIntake.observable.pipe(plugins.smartrx.rxjs.ops.debounceTime(optionsArg.debounceTimeInMillis)).subscribe((x) => { this._observableIntake.observable
this.taskFunction(x); .pipe(plugins.smartrx.rxjs.ops.debounceTime(optionsArg.debounceTimeInMillis))
}); .subscribe((x) => {
this.taskFunction(x);
});
} }
} }

View File

@ -44,8 +44,7 @@ export class TaskManager {
*/ */
public addAndScheduleTask(taskArg: Task, cronStringArg: string) { public addAndScheduleTask(taskArg: Task, cronStringArg: string) {
this.addTask(taskArg); this.addTask(taskArg);
const taskName = taskArg.name; this.scheduleTaskByName(taskArg.name, cronStringArg);
this.scheduleTaskByName(taskName, cronStringArg);
} }
/** /**