diff --git a/ui/package.json b/ui/package.json index 4c8d40a096..0504fe942c 100644 --- a/ui/package.json +++ b/ui/package.json @@ -87,11 +87,9 @@ "@types/codemirror": "^0.0.56", "@types/d3-color": "^1.2.1", "@types/d3-scale": "^2.0.1", - "@types/encoding-down": "^5.0.0", "@types/enzyme": "^3.1.14", "@types/history": "3.2.2", "@types/jest": "^23.3.2", - "@types/levelup": "^3.1.0", "@types/lodash": "^4.14.116", "@types/memoize-one": "^4.0.2", "@types/node": "^12.6.8", @@ -173,13 +171,10 @@ "codemirror": "^5.36.0", "d3-format": "^1.3.2", "d3-scale": "^2.1.0", - "encoding-down": "^5.0.4", "fast.js": "^0.1.1", "history": "^3.2", "honeybadger-js": "^1.0.2", "immer": "^1.9.3", - "level-js": "^3.0.0", - "levelup": "^3.1.1", "lodash": "^4.3.0", "memoize-one": "^4.0.2", "moment": "^2.13.0", diff --git a/ui/src/workers/Database.ts b/ui/src/workers/Database.ts deleted file mode 100644 index 4e528c2412..0000000000 --- a/ui/src/workers/Database.ts +++ /dev/null @@ -1,5 +0,0 @@ -import levelup from 'levelup' -import encoding from 'encoding-down' -import level from 'level-js' - -export default levelup(encoding(level('worker'), {valueEncoding: 'json'})) diff --git a/ui/src/workers/JobManager.ts b/ui/src/workers/JobManager.ts deleted file mode 100644 index fd4f6e3988..0000000000 --- a/ui/src/workers/JobManager.ts +++ /dev/null @@ -1,87 +0,0 @@ -// Libraries -import {times} from 'lodash' -import uuid from 'uuid' - -// Utils -import Deferred from 'src/utils/Deferred' -import DB from 'src/workers/Database' - -// Types -import {RequestMessage, ResponseMessage} from 'src/workers/types' - -const workerCount = navigator.hardwareConcurrency - 1 || 2 - -class JobManager { - private currentIndex: number = 0 - private workers: Worker[] = [] - private jobs: {[key: string]: Deferred} = {} - - constructor() { - times(workerCount, () => { - const worker = new Worker('./worker.ts') - - worker.onmessage = this.handleResponse - worker.onerror = this.handleError - - this.workers.push(worker) - }) - } - - private handleResponse = async (e: {data: ResponseMessage}) => { - const message = e.data - const deferred = this.jobs[message.requestID] - - if (!deferred) { - return - } - - if (message.result === 'error') { - deferred.reject(new Error(message.error)) - delete this.jobs[origin] - - return - } - - try { - const payload = await DB.get(message.id) - await DB.del(message.id) - deferred.resolve(payload) - } catch (e) { - deferred.reject(e) - } - - delete this.jobs[origin] - } - - private handleError = err => { - console.error(err) - } - - private get worker(): Worker { - return this.workers[this.currentIndex] - } - - private rotateWorker(): void { - this.currentIndex += 1 - this.currentIndex %= workerCount - } - - // @ts-ignore - private postJobRequest = async (type: string, payload: any) => { - const id = uuid.v1() - const deferred = new Deferred() - - this.jobs[id] = deferred - - await DB.put(id, payload) - - const requestMessage: RequestMessage = {id, type} - - this.worker.postMessage(requestMessage) - this.rotateWorker() - - return deferred.promise - } -} - -export const manager = new JobManager() diff --git a/ui/src/workers/jobs/.gitkeep b/ui/src/workers/jobs/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ui/src/workers/types.ts b/ui/src/workers/types.ts deleted file mode 100644 index 5c32150b82..0000000000 --- a/ui/src/workers/types.ts +++ /dev/null @@ -1,13 +0,0 @@ -export interface RequestMessage { - id: string - type: string -} - -export interface ResponseMessage { - id: string - requestID: string - result: 'error' | 'success' - error?: string -} - -export type Job = (msg: RequestMessage) => Promise diff --git a/ui/src/workers/utils.ts b/ui/src/workers/utils.ts deleted file mode 100644 index 511990a6ec..0000000000 --- a/ui/src/workers/utils.ts +++ /dev/null @@ -1,35 +0,0 @@ -import DB from 'src/workers/Database' -import uuid from 'uuid' - -import {RequestMessage, ResponseMessage} from 'src/workers/types' - -export const postSuccessResponse = async (requestID: string, payload: any) => { - const id = uuid.v1() - - await DB.put(id, payload) - - const response: ResponseMessage = { - id, - requestID, - result: 'success', - } - - postMessage(response) -} - -export const postErrorResponse = (requestID: string, err: Error) => { - const id = uuid.v1() - - const response: ResponseMessage = { - id, - requestID, - result: 'error', - error: err.toString(), - } - - postMessage(response) -} - -export const removeData = async (msg: RequestMessage): Promise => { - await DB.del(msg.id) -} diff --git a/ui/src/workers/worker.ts b/ui/src/workers/worker.ts deleted file mode 100644 index e8d4f1b4a7..0000000000 --- a/ui/src/workers/worker.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {postSuccessResponse, postErrorResponse} from 'src/workers/utils' - -import {RequestMessage, Job} from 'src/workers/types' - -const jobMapping: {[key: string]: Job} = {} - -const errorJob = async (data: RequestMessage) => { - postErrorResponse(data.id, new Error('Unknown job type')) -} - -onmessage = async (workerMessage: {data: RequestMessage}) => { - const message = workerMessage.data - const job: Job = jobMapping[message.type] || errorJob - - try { - const result = await job(message) - - postSuccessResponse(message.id, result) - } catch (e) { - postErrorResponse(message.id, e) - } -} diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 8ec6b02b95..a62fd7c3e3 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -3,7 +3,7 @@ "target": "es2017", "module": "esNext", "moduleResolution": "node", - "lib": ["es2017", "es2018", "dom", "webworker"], + "lib": ["es2017", "es2018", "dom"], "skipLibCheck": true, "isolatedModules": false, "jsx": "react", diff --git a/ui/yarn.lock b/ui/yarn.lock index 8a8bdd3068..cf8bdab55a 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1331,11 +1331,6 @@ resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz#8013f2af54a2b7d735f71560ff360d3a8176a87b" integrity sha512-vTCdPp/T/Q3oSqwHmZ5Kpa9oI7iLtGl3RQaA/NyLHikvcrPxACkkKVr/XzkSPJWXHRhKGzVvb0urJsbMlRxi1Q== -"@types/abstract-leveldown@*": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.1.tgz#3c7750d0186b954c7f2d2f6acc8c3c7ba0c3412e" - integrity sha512-wYxU3kp5zItbxKmeRYCEplS2MW7DzyBnxPGj+GJVHZEUZiK/nn5Ei1sUFgURDh+X051+zsGe28iud3oHjrYWQQ== - "@types/anymatch@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -1406,14 +1401,6 @@ resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.9.tgz#c2cf05a3cd51f810b8d8a9bbca0c74030d4e535e" integrity sha512-m+D4NbQdDlTVaO7QgXAnatR3IDxQYDMBtRhgSCi5rs9R1LPq1y7/2aqa1FJ2IWjFm1mOV63swDxonnCDlHgHMA== -"@types/encoding-down@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/encoding-down/-/encoding-down-5.0.0.tgz#0b5b90b93ac3aa75148f19508044e7bd36463557" - integrity sha512-G0MlS/+/U2RIQLcSEhhAcoMrXw3hXUCFSKbhbeEljoKMra2kq+NPX6tfOveSWQLX2hJXBo+YrvKgAGe+tFL1Aw== - dependencies: - "@types/abstract-leveldown" "*" - "@types/level-codec" "*" - "@types/enzyme@^3.1.14": version "3.1.14" resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.1.14.tgz#379c26205f6e0e272f3a51d6bbdd50071a9d03a6" @@ -1466,20 +1453,6 @@ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.3.tgz#246ebcc52771d2327bb8e37aa971b412d9dc4237" integrity sha512-G6EBrbjWDfmIpYu8UcRBOhwtDiYaLj5N5jUR5rx0YvbKxRBhXPZVLUmtfShewSUNKiQwpHavpML69a2WMbIlEQ== -"@types/level-codec@*": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@types/level-codec/-/level-codec-9.0.0.tgz#9f1dc7f9017b6fba094a450602ec0b91cc384059" - integrity sha512-SWYkVJylo1dqblkhrr7UtmsQh4wdZA9bV1y3QJSywMPSqGfW0p1w37N1EayZtKbg1dGReIIQEEOtxk4wZvGrWQ== - -"@types/levelup@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-3.1.0.tgz#e04f6a8eaf707f88d7c6e043a9067dda431f4538" - integrity sha512-Y2SC5PskYsE8+dELuWLCMG+UcUrkhhIz5wV55yX73AAVqr3kDXLYlj6k/vuchXUt1L1b/P1Frt4Dcc3WmWcbLA== - dependencies: - "@types/abstract-leveldown" "*" - "@types/events" "*" - "@types/node" "*" - "@types/lodash@^4.14.116": version "4.14.116" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz#5ccf215653e3e8c786a58390751033a9adca0eb9" @@ -1857,13 +1830,6 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz#f7128e1f86ccabf7d2893077ce5d06d798e386c6" - integrity sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A== - dependencies: - xtend "~4.0.0" - accepts@~1.3.4, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -4085,14 +4051,6 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -deferred-leveldown@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz#0b0570087827bf480a23494b398f04c128c19a20" - integrity sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww== - dependencies: - abstract-leveldown "~5.0.0" - inherits "^2.0.3" - define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -4467,17 +4425,6 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding-down@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-5.0.4.tgz#1e477da8e9e9d0f7c8293d320044f8b2cd8e9614" - integrity sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw== - dependencies: - abstract-leveldown "^5.0.0" - inherits "^2.0.3" - level-codec "^9.0.0" - level-errors "^2.0.0" - xtend "^4.0.1" - encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" @@ -4560,7 +4507,7 @@ enzyme@^3.6.0: rst-selector-parser "^2.2.3" string.prototype.trim "^1.1.2" -errno@^0.1.3, errno@~0.1.1, errno@~0.1.7: +errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== @@ -6129,11 +6076,6 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -immediate@~3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" - integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= - immer@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/immer/-/immer-1.9.3.tgz#e88f8cbea730d2cde0f5e7e763000a8608bccdae" @@ -6622,7 +6564,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -7363,48 +7305,6 @@ left-pad@^1.3.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -level-codec@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.0.tgz#2d3a0e835c4aa8339ec63de3f5a37480b74a5f87" - integrity sha512-OIpVvjCcZNP5SdhcNupnsI1zo5Y9Vpm+k/F1gfG5kXrtctlrwanisakweJtE0uA0OpLukRfOQae+Fg0M5Debhg== - -level-errors@^2.0.0, level-errors@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.0.tgz#2de5b566b62eef92f99e19be74397fbc512563fa" - integrity sha512-AmY4HCp9h3OiU19uG+3YWkdELgy05OTP/r23aNHaQKWv8DO787yZgsEuGVkoph40uwN+YdUKnANlrxSsoOaaxg== - dependencies: - errno "~0.1.1" - -level-iterator-stream@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz#2c98a4f8820d87cdacab3132506815419077c730" - integrity sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.3.6" - xtend "^4.0.0" - -level-js@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/level-js/-/level-js-3.0.0.tgz#e6c066fb529b23eec230849c0751e4f6d548c865" - integrity sha512-e2dVpjCWNwIcyboZUsLqx2vERM0I5OPZOE9wfD22fk8b8OeuZRoV4scr0Y+YIyDXE5cwOsO/1LyjsdJ36o+9Ag== - dependencies: - abstract-leveldown "~5.0.0" - immediate "~3.2.3" - inherits "^2.0.3" - ltgt "^2.1.2" - typedarray-to-buffer "~3.1.5" - -levelup@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.1.1.tgz#c2c0b3be2b4dc316647c53b42e2f559e232d2189" - integrity sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg== - dependencies: - deferred-leveldown "~4.0.0" - level-errors "~2.0.0" - level-iterator-stream "~3.0.0" - xtend "~4.0.0" - leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -7668,11 +7568,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -ltgt@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= - magic-string@^0.22.4: version "0.22.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" @@ -11906,13 +11801,6 @@ typed-styles@^0.0.7: resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== -typedarray-to-buffer@~3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -12666,7 +12554,7 @@ xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=