From f275f7e2f6d0b61f02b476fb3c2d56d33c2ed873 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Wed, 27 Nov 2019 23:34:45 +0000 Subject: [PATCH] fix(core): update --- package-lock.json | 347 +++++++++++++++++++------- package.json | 16 +- ts/taskbuffer.classes.taskparallel.ts | 6 +- ts/taskbuffer.classes.taskrunner.ts | 48 ++++ 4 files changed, 321 insertions(+), 96 deletions(-) create mode 100644 ts/taskbuffer.classes.taskrunner.ts diff --git a/package-lock.json b/package-lock.json index 9218076..7e2aba9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,19 +50,69 @@ } }, "@gitzone/tstest": { - "version": "1.0.24", - "resolved": "https://verdaccio.lossless.one/@gitzone%2ftstest/-/tstest-1.0.24.tgz", - "integrity": "sha512-HFHLxhXFhhY7nn7H7dxfjy/6WiUGCw35L5Do/ZajCAn/xAWiqnppW1aIp0LOOaWeZ7J5fH7xP88TjsGpwR+MRA==", + "version": "1.0.28", + "resolved": "https://verdaccio.lossless.one/@gitzone%2ftstest/-/tstest-1.0.28.tgz", + "integrity": "sha512-MNXH4hpn/4BRwoCjIxz+fbrpkFw/u8834BFTX4Ug1bU37qBZvwZdyMfHBNRSjDykya3SLjOSqOf1mcMI3gnEvA==", "dev": true, "requires": { - "@gitzone/tsrun": "^1.2.6", + "@gitzone/tsrun": "^1.2.8", "@pushrocks/consolecolor": "^2.0.1", - "@pushrocks/smartfile": "^7.0.2", + "@pushrocks/smartfile": "^7.0.6", "@pushrocks/smartlog": "^2.0.19", - "@pushrocks/smartpromise": "^3.0.2", - "@pushrocks/smartshell": "^2.0.22", + "@pushrocks/smartpromise": "^3.0.6", + "@pushrocks/smartshell": "^2.0.25", "@types/figures": "^3.0.1", "figures": "^3.0.0" + }, + "dependencies": { + "@pushrocks/smartfile": { + "version": "7.0.6", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-7.0.6.tgz", + "integrity": "sha512-X1kWg1HSQ/MqasRIHPCf6D9CRrcIrpTjW8KLc4GkApJ/W/IVaKsQkJQfdimlg1uc/9v8AYnoRdiGa51yxyghZA==", + "dev": true, + "requires": { + "@pushrocks/smarthash": "^2.0.6", + "@pushrocks/smartpath": "^4.0.1", + "@pushrocks/smartpromise": "^3.0.5", + "@pushrocks/smartrequest": "^1.1.27", + "@types/fs-extra": "^8.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.4", + "js-yaml": "^3.13.1" + } + }, + "@pushrocks/smartrequest": { + "version": "1.1.43", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-1.1.43.tgz", + "integrity": "sha512-bgzzKN9SxJaYhh+BN3tuLSgdphWsxAOHgNjWWay3o/ib8/c2RwRlmjoxzxXrIhKFEwJjGIo7w04045VgkoWkMQ==", + "dev": true, + "requires": { + "@pushrocks/smartpromise": "^3.0.5", + "@types/form-data": "^2.5.0", + "agentkeepalive": "^4.0.2", + "form-data": "^2.5.1" + } + }, + "@types/fs-extra": { + "version": "8.0.1", + "resolved": "https://verdaccio.lossless.one/@types%2ffs-extra/-/fs-extra-8.0.1.tgz", + "integrity": "sha512-J00cVDALmi/hJOYsunyT52Hva5TnJeKP5yd1r+mH/ZU0mbYZflR0Z5kw5kITtKTRYMhm1JMClOFYdHnQszEvqw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://verdaccio.lossless.one/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } } }, "@pushrocks/consolecolor": { @@ -93,13 +143,13 @@ } }, "@pushrocks/lik": { - "version": "3.0.11", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-3.0.11.tgz", - "integrity": "sha512-SDKRPj9+xBTqozlDPcA7O6BcccM1Tw/sXPVP+OnhNxCubDZ/L2kGNpPpqm43NJUoNxSSo5wdBw4N7MAFYCGdVg==", + "version": "3.0.13", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-3.0.13.tgz", + "integrity": "sha512-YDxYoh2UksEfUxcjSjTwLsW5j852E5FrMG62CUi1I7ZpBxf96b7P1t2pRWsQsNnHRz6FHckW/A1V6XKASB+jZA==", "requires": { - "@pushrocks/smartdelay": "^2.0.3", - "@pushrocks/smartpromise": "^3.0.2", - "@pushrocks/smartrx": "^2.0.3", + "@pushrocks/smartdelay": "^2.0.6", + "@pushrocks/smartpromise": "^3.0.6", + "@pushrocks/smartrx": "^2.0.5", "@pushrocks/smarttime": "^3.0.12", "@types/minimatch": "^3.0.3", "minimatch": "^3.0.4", @@ -130,11 +180,11 @@ } }, "@pushrocks/smartdelay": { - "version": "2.0.3", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.3.tgz", - "integrity": "sha512-TXKDDqsc7sBTLl+oiYNaF6IdNk1n70i8ur8QfwcUU6tegTnrEkvMWy9h5Zdty/fq1ioCNpKLvuXoA+fgYVwKGQ==", + "version": "2.0.6", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.6.tgz", + "integrity": "sha512-4wUnzWNhRPODpaaL5GuRaje/C5dg+TMhBxmr57PKc2fqYpy6azWJwonf/s5xpcbJLCPJRbj1x8M5MqgCFq2uvg==", "requires": { - "@pushrocks/smartpromise": "^3.0.2" + "@pushrocks/smartpromise": "^3.0.6" } }, "@pushrocks/smartevent": { @@ -180,10 +230,33 @@ "vinyl-file": "^3.0.0" } }, + "@pushrocks/smarthash": { + "version": "2.1.1", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarthash/-/smarthash-2.1.1.tgz", + "integrity": "sha512-zVfqXsi0T+PZQJpXsQf7KJpoCUOv97q7//ccp5o/07Bo77gjLO966fevYO+1y7pbvLZ0nQ4pE536YmLkgwluPQ==", + "dev": true, + "requires": { + "@pushrocks/smartjson": "^3.0.8", + "@pushrocks/smartpromise": "^3.0.6", + "@types/through2": "^2.0.34", + "through2": "^3.0.1" + } + }, + "@pushrocks/smartjson": { + "version": "3.0.8", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartjson/-/smartjson-3.0.8.tgz", + "integrity": "sha512-EjC3611RSZaZmK+nXxXrYDBxdxYWtrxjOrZtQzbYn0yM33KSCH0sLIAG8B2wYZVAOj4A2pC8mVxFSJ1w3iRFHg==", + "dev": true, + "requires": { + "@types/fast-json-stable-stringify": "^2.0.0", + "fast-json-stable-stringify": "^2.0.0", + "lodash.clonedeep": "^4.5.0" + } + }, "@pushrocks/smartlog": { - "version": "2.0.19", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog/-/smartlog-2.0.19.tgz", - "integrity": "sha512-I2mDx7WcUlADYWxu5nNP3NSJv95YrCZoG/rarbEqovK7pJQ9a0aINmIcCHkQeL1VSWvxgvhXwHyV/yNEJ4zh3Q==", + "version": "2.0.21", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog/-/smartlog-2.0.21.tgz", + "integrity": "sha512-U+YazzcMrU74crrGV50kYzlOWu//MF5i1wxRMSJonWsiixsWPTPpLsbAVxmIsPcDJyf0u3RixMeelA0WKhhqpg==", "requires": { "@pushrocks/smartlog-interfaces": "^2.0.5" } @@ -229,9 +302,9 @@ "dev": true }, "@pushrocks/smartpromise": { - "version": "3.0.5", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.5.tgz", - "integrity": "sha512-9kHBWyDFjQ6cV1rseOfge02EH6huh/mrtqxlFoJoxnMaGWf5F8H3UEsskBBUGI6QKE1Bl8evr74AIKWwJ0r/bA==" + "version": "3.0.6", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.6.tgz", + "integrity": "sha512-vlQlBGNVIjfClgnsfgQBU6GIKcskYSFzEcKLt18ngPzPEcjKklXcxaqzLXpnoxR+KBh30QPE8255ncYHXuPPOg==" }, "@pushrocks/smartrequest": { "version": "1.1.23", @@ -245,21 +318,14 @@ } }, "@pushrocks/smartrx": { - "version": "2.0.3", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.3.tgz", - "integrity": "sha512-OWxagu+CBdPaq76AIg91hJyrNhDTlEpesj01ooWCeVIaLY3G7yvFkqHsEKNOwPUG1LzCWmjq1l1dHQx9p2vJ9A==", + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.5.tgz", + "integrity": "sha512-BOlIJmnCO8pxqu9f18D9UV5rIsyrmKeK/mWNMiAe/NH2OTeRPNLpgmhZBkXSKNVD8tSsD8aazs4BcACgYOg1FQ==", "requires": { - "@pushrocks/lik": "^3.0.2", + "@pushrocks/lik": "^3.0.11", "@pushrocks/smartevent": "^2.0.3", - "@pushrocks/smartpromise": "^2.0.5", - "rxjs": "^6.3.3" - }, - "dependencies": { - "@pushrocks/smartpromise": { - "version": "2.0.5", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", - "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" - } + "@pushrocks/smartpromise": "^3.0.2", + "rxjs": "^6.5.3" } }, "@pushrocks/smartshell": { @@ -288,38 +354,72 @@ } }, "@pushrocks/tapbundle": { - "version": "3.0.13", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2ftapbundle/-/tapbundle-3.0.13.tgz", - "integrity": "sha512-23O4UMBafCuD+RnUlXNvtT9DGbL1HMD+xZE1Zcr7Ll7WvgxUgRQQfk9kq6qbLLbjaRe1J2Ijsgh1HuZbBaucLQ==", + "version": "3.2.0", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2ftapbundle/-/tapbundle-3.2.0.tgz", + "integrity": "sha512-xnKIGe7NJqxWBaFeKIEXShDjV2wap1XJqmlp3m1MKqmIF62vRpZnkzpyE1ZAoNwiYQmIsXIpvP/PDv+iPevPfw==", "dev": true, "requires": { "@pushrocks/early": "^3.0.3", "@pushrocks/smartdelay": "^2.0.3", + "@pushrocks/smartfile": "^7.0.6", "@pushrocks/smartpromise": "^3.0.2", "smartchai": "^2.0.1" }, "dependencies": { - "@pushrocks/smartdelay": { - "version": "2.0.3", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.3.tgz", - "integrity": "sha512-TXKDDqsc7sBTLl+oiYNaF6IdNk1n70i8ur8QfwcUU6tegTnrEkvMWy9h5Zdty/fq1ioCNpKLvuXoA+fgYVwKGQ==", + "@pushrocks/smartfile": { + "version": "7.0.6", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-7.0.6.tgz", + "integrity": "sha512-X1kWg1HSQ/MqasRIHPCf6D9CRrcIrpTjW8KLc4GkApJ/W/IVaKsQkJQfdimlg1uc/9v8AYnoRdiGa51yxyghZA==", "dev": true, "requires": { - "@pushrocks/smartpromise": "^3.0.2" + "@pushrocks/smarthash": "^2.0.6", + "@pushrocks/smartpath": "^4.0.1", + "@pushrocks/smartpromise": "^3.0.5", + "@pushrocks/smartrequest": "^1.1.27", + "@types/fs-extra": "^8.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.4", + "js-yaml": "^3.13.1" } }, - "@pushrocks/smartpromise": { - "version": "3.0.2", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.2.tgz", - "integrity": "sha512-jmrJMUEmBCWChWK8CIcx4Vw3wv/8OgVNmkaxJrbs+WMaoRUfJtpWWJfrAwwHWt9ZXJbarJ+CwfwfYiiZXymndQ==", - "dev": true + "@pushrocks/smartrequest": { + "version": "1.1.43", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-1.1.43.tgz", + "integrity": "sha512-bgzzKN9SxJaYhh+BN3tuLSgdphWsxAOHgNjWWay3o/ib8/c2RwRlmjoxzxXrIhKFEwJjGIo7w04045VgkoWkMQ==", + "dev": true, + "requires": { + "@pushrocks/smartpromise": "^3.0.5", + "@types/form-data": "^2.5.0", + "agentkeepalive": "^4.0.2", + "form-data": "^2.5.1" + } + }, + "@types/fs-extra": { + "version": "8.0.1", + "resolved": "https://verdaccio.lossless.one/@types%2ffs-extra/-/fs-extra-8.0.1.tgz", + "integrity": "sha512-J00cVDALmi/hJOYsunyT52Hva5TnJeKP5yd1r+mH/ZU0mbYZflR0Z5kw5kITtKTRYMhm1JMClOFYdHnQszEvqw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://verdaccio.lossless.one/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } } } }, "@types/chai": { - "version": "4.2.1", - "resolved": "https://verdaccio.lossless.one/@types%2fchai/-/chai-4.2.1.tgz", - "integrity": "sha512-LDKlQW/V8bQr5p9aoHye9p7x9faxq0GVeWAkn/Zgyyn848LIAzuR1sHQjGmUBFUpINuGWDG2NTM/ofA2aLMIew==", + "version": "4.2.5", + "resolved": "https://verdaccio.lossless.one/@types%2fchai/-/chai-4.2.5.tgz", + "integrity": "sha512-YvbLiIc0DbbhiANrfVObdkLEHJksQZVq0Uvfg550SRAKVYaEJy+V70j65BVe2WNp6E3HtKsUczeijHFCjba3og==", "dev": true }, "@types/chai-as-promised": { @@ -349,6 +449,12 @@ "moment": ">=2.14.0" } }, + "@types/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/@types%2ffast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha512-mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ==", + "dev": true + }, "@types/figures": { "version": "3.0.1", "resolved": "https://verdaccio.lossless.one/@types%2ffigures/-/figures-3.0.1.tgz", @@ -377,9 +483,9 @@ } }, "@types/luxon": { - "version": "1.15.2", - "resolved": "https://verdaccio.lossless.one/@types%2fluxon/-/luxon-1.15.2.tgz", - "integrity": "sha512-zHPoyVrLvNaiMRYdhmh88Rn489ZgAgbc6iLxR5Yi0VCNfeNYHcszbhJV2vDHLNrVGy35BPtWBRn4OP2F9BBvFw==" + "version": "1.21.0", + "resolved": "https://verdaccio.lossless.one/@types%2fluxon/-/luxon-1.21.0.tgz", + "integrity": "sha512-Zhrf65tpjOlVIYrUhX9eu1VzRo8iixQDLFPbfqFxPpG4pBTNNPZ2BFhYE0IAsDfW9GWg+RcrUqiLwrGJH4rq4w==" }, "@types/minimatch": { "version": "3.0.3", @@ -387,9 +493,18 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "12.7.5", - "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-12.7.5.tgz", - "integrity": "sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w==" + "version": "12.12.14", + "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-12.12.14.tgz", + "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==" + }, + "@types/through2": { + "version": "2.0.34", + "resolved": "https://verdaccio.lossless.one/@types%2fthrough2/-/through2-2.0.34.tgz", + "integrity": "sha512-nhRG8+RuG/L+0fAZBQYaRflXKjTrHOKH8MFTChnf+dNVMxA3wHYYrfj0tztK0W51ABXjGfRCDc0vRkecCOrsow==", + "dev": true, + "requires": { + "@types/node": "*" + } }, "@types/vinyl": { "version": "2.0.3", @@ -401,9 +516,9 @@ } }, "@types/which": { - "version": "1.3.1", - "resolved": "https://verdaccio.lossless.one/@types%2fwhich/-/which-1.3.1.tgz", - "integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ==", + "version": "1.3.2", + "resolved": "https://verdaccio.lossless.one/@types%2fwhich/-/which-1.3.2.tgz", + "integrity": "sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==", "dev": true }, "@types/yargs": { @@ -412,6 +527,17 @@ "integrity": "sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw==", "dev": true }, + "agentkeepalive": { + "version": "4.1.0", + "resolved": "https://verdaccio.lossless.one/agentkeepalive/-/agentkeepalive-4.1.0.tgz", + "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, "ansi-256-colors": { "version": "1.1.0", "resolved": "https://verdaccio.lossless.one/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz", @@ -434,9 +560,9 @@ } }, "arg": { - "version": "4.1.1", - "resolved": "https://verdaccio.lossless.one/arg/-/arg-4.1.1.tgz", - "integrity": "sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw==", + "version": "4.1.2", + "resolved": "https://verdaccio.lossless.one/arg/-/arg-4.1.2.tgz", + "integrity": "sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==", "dev": true }, "argparse": { @@ -624,9 +750,9 @@ } }, "commander": { - "version": "2.20.0", - "resolved": "https://verdaccio.lossless.one/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://verdaccio.lossless.one/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "concat-map": { @@ -661,6 +787,15 @@ "which": "^1.2.9" } }, + "debug": { + "version": "4.1.1", + "resolved": "https://verdaccio.lossless.one/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://verdaccio.lossless.one/decamelize/-/decamelize-1.2.0.tgz", @@ -699,6 +834,12 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "depd": { + "version": "1.1.2", + "resolved": "https://verdaccio.lossless.one/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, "diff": { "version": "4.0.1", "resolved": "https://verdaccio.lossless.one/diff/-/diff-4.0.1.tgz", @@ -747,10 +888,16 @@ "strip-eof": "^1.0.0" } }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, "figures": { - "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/figures/-/figures-3.0.0.tgz", - "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==", + "version": "3.1.0", + "resolved": "https://verdaccio.lossless.one/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -849,6 +996,15 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://verdaccio.lossless.one/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, "inflight": { "version": "1.0.6", "resolved": "https://verdaccio.lossless.one/inflight/-/inflight-1.0.6.tgz", @@ -951,6 +1107,12 @@ "path-exists": "^3.0.0" } }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://verdaccio.lossless.one/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, "log-symbols": { "version": "2.2.0", "resolved": "https://verdaccio.lossless.one/log-symbols/-/log-symbols-2.2.0.tgz", @@ -961,9 +1123,9 @@ } }, "luxon": { - "version": "1.17.2", - "resolved": "https://verdaccio.lossless.one/luxon/-/luxon-1.17.2.tgz", - "integrity": "sha512-qELKtIj3HD41N+MvgoxArk8DZGUb4Gpiijs91oi+ZmKJzRlxY6CoyTwNoUwnogCVs4p8HuxVJDik9JbnYgrCng==" + "version": "1.21.2", + "resolved": "https://verdaccio.lossless.one/luxon/-/luxon-1.21.2.tgz", + "integrity": "sha512-yshwnlkA79WfC24/BC9Rd1n0mhorP22Sc7GYn0puRU6wD/douCgNJIzI9qQBuT9m2/bU+n9v1RflVNE4rMPPxQ==" }, "make-error": { "version": "1.3.5", @@ -1048,6 +1210,12 @@ "moment": ">= 2.9.0" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://verdaccio.lossless.one/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://verdaccio.lossless.one/nice-try/-/nice-try-1.0.5.tgz", @@ -1271,9 +1439,9 @@ "dev": true }, "resolve": { - "version": "1.12.0", - "resolved": "https://verdaccio.lossless.one/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.13.1", + "resolved": "https://verdaccio.lossless.one/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -1357,9 +1525,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://verdaccio.lossless.one/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://verdaccio.lossless.one/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -1448,10 +1616,19 @@ "resolved": "https://verdaccio.lossless.one/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "through2": { + "version": "3.0.1", + "resolved": "https://verdaccio.lossless.one/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "dev": true, + "requires": { + "readable-stream": "2 || 3" + } + }, "ts-node": { - "version": "8.3.0", - "resolved": "https://verdaccio.lossless.one/ts-node/-/ts-node-8.3.0.tgz", - "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "version": "8.5.2", + "resolved": "https://verdaccio.lossless.one/ts-node/-/ts-node-8.5.2.tgz", + "integrity": "sha512-W1DK/a6BGoV/D4x/SXXm6TSQx6q3blECUzd5TN+j56YEMX3yPVMpHsICLedUw3DvGF3aTQ8hfdR9AKMaHjIi+A==", "dev": true, "requires": { "arg": "^4.1.0", @@ -1467,9 +1644,9 @@ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tslint": { - "version": "5.20.0", - "resolved": "https://verdaccio.lossless.one/tslint/-/tslint-5.20.0.tgz", - "integrity": "sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g==", + "version": "5.20.1", + "resolved": "https://verdaccio.lossless.one/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", diff --git a/package.json b/package.json index ae45a74..3248fa3 100644 --- a/package.json +++ b/package.json @@ -27,20 +27,20 @@ }, "homepage": "https://gitlab.com/pushrocks/taskbuffer#readme", "dependencies": { - "@pushrocks/lik": "^3.0.11", - "@pushrocks/smartdelay": "^2.0.3", - "@pushrocks/smartlog": "^2.0.19", - "@pushrocks/smartpromise": "^3.0.5", + "@pushrocks/lik": "^3.0.13", + "@pushrocks/smartdelay": "^2.0.6", + "@pushrocks/smartlog": "^2.0.21", + "@pushrocks/smartpromise": "^3.0.6", "@types/cron": "^1.7.1", "cron": "^1.7.2", "rxjs": "^6.5.3" }, "devDependencies": { "@gitzone/tsbuild": "^2.1.17", - "@gitzone/tstest": "^1.0.24", - "@pushrocks/tapbundle": "^3.0.13", - "@types/node": "^12.7.5", - "tslint": "^5.20.0", + "@gitzone/tstest": "^1.0.28", + "@pushrocks/tapbundle": "^3.2.0", + "@types/node": "^12.12.14", + "tslint": "^5.20.1", "tslint-config-prettier": "^1.18.0" }, "files": [ diff --git a/ts/taskbuffer.classes.taskparallel.ts b/ts/taskbuffer.classes.taskparallel.ts index c70a839..4a56926 100644 --- a/ts/taskbuffer.classes.taskparallel.ts +++ b/ts/taskbuffer.classes.taskparallel.ts @@ -3,14 +3,14 @@ import * as helpers from './taskbuffer.classes.helpers'; import { Task } from './taskbuffer.classes.task'; export class Taskparallel extends Task { - taskArray: Task[]; + public taskArray: Task[]; constructor(optionsArg: { taskArray: Task[] }) { const options = { ...optionsArg, ...{ taskFunction: () => { - let done = plugins.smartpromise.defer(); - let promiseArray: Promise[] = []; // stores promises of all tasks, since they run in parallel + const done = plugins.smartpromise.defer(); + const promiseArray: Promise[] = []; // stores promises of all tasks, since they run in parallel this.taskArray.forEach(function(taskArg) { promiseArray.push(taskArg.trigger()); }); diff --git a/ts/taskbuffer.classes.taskrunner.ts b/ts/taskbuffer.classes.taskrunner.ts new file mode 100644 index 0000000..7e7c562 --- /dev/null +++ b/ts/taskbuffer.classes.taskrunner.ts @@ -0,0 +1,48 @@ +import * as plugins from './taskbuffer.plugins'; + +import { Task } from './taskbuffer.classes.task'; + +export class TaskRunner { + public maxParrallelJobs: number = 1; + public status: 'stopped' | 'running' = 'stopped'; + public runningTasks: plugins.lik.Objectmap = new plugins.lik.Objectmap(); + public qeuedTasks: Task[] = []; + + /** + * adds a task to the qeue + */ + public addTask(taskArg: Task) { + this.qeuedTasks.push(taskArg); + } + + /** + * set amount of parallel tasks + * be careful, you might loose dependability of tasks + */ + public setMaxParallelJobs(maxParrallelJobsArg: number) { + this.maxParrallelJobs = maxParrallelJobsArg; + } + + /** + * starts the task queue + */ + public start() { + this.status = 'running'; + } + + public async checkExecution() { + if (this.runningTasks.getArray().length < this.maxParrallelJobs) { + const nextJob = this.qeuedTasks.shift(); + this.runningTasks.add(nextJob); + await nextJob.trigger(); + + } + } + + /** + * stops the task queue + */ + public stop() { + this.status = 'stopped'; + }; +}