{"_id":"monaco-worker-manager","_rev":"3-21fda17ff96b1cdc6d71df6b41540078","name":"monaco-worker-manager","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"monaco-worker-manager","version":"1.0.0","description":"Easily deal with monaco workers","scripts":{"prepack":"tsc --noEmit false"},"repository":{"type":"git","url":"git+https://github.com/remcohaszing/monaco-worker-manager.git"},"keywords":["monaco","monaco-editor","worker","webworker"],"author":{"name":"Remco Haszing","email":"remcohaszing@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/remcohaszing/monaco-worker-manager/issues"},"homepage":"https://github.com/remcohaszing/monaco-worker-manager#readme","peerDependencies":{"monaco-editor":">=0.30.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.0.0","eslint":"^8.0.0","eslint-config-remcohaszing":"^3.0.0","prettier":"^2.0.0","typescript":"^4.0.0"},"types":"./index.d.ts","gitHead":"3edcd5c71bf0d1d941cb66bc7fca2359bdfa0eb0","_id":"monaco-worker-manager@1.0.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.5","dist":{"integrity":"sha512-t6vL7XSxBKxnjh2YxHzNOkEkrsUcPvwo+/5kT1TXmGbX3sn+hHDaCCexgJehTRN4nR1cxwggnKkODLdLJvye3w==","shasum":"150afb1cd452fde144346048ce84c0c1c8b0a208","tarball":"https://registry.npmjs.org/monaco-worker-manager/-/monaco-worker-manager-1.0.0.tgz","fileCount":7,"unpackedSize":10121,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICprLVGLtqHyY7Sq3gvZdy1c+5ZwnGCLO3AvIMpiIJc3AiBQFfGiWCN3KhPIQPGTIDCGy7fmjzztzEHs6/T/L6LFhA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSZOBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobnQ//d5T3JFMKwO8Wxq+gxPtAQTfINWe6mCHvW8Wkoi6OUh5BzP3q\r\n6TXsv3Ab+pQrZ7en96V3pxQSQp4qRyUusVKHDM8R0VtHdrjCxw+EoAZjKvrV\r\nKiG5c3ueW3sJg4KhXYYwFI1wXbiS4hYQOt3Uky1EyU6WjaJ9ZkStSiyxtWfc\r\nGfcmPwdZ47zbtNrix1j+8t32O6MIGLIp/IQOkuYdYQat7rhNZOiWkGfxBk2f\r\nAapcDJJnEABbm4Y891JM4pEJ1VQsgYIU8HAoIOHpIlfck7RwtRyCPzmMqmHz\r\nom0ZmytHZ39Jo5WrLNI7xRqOHZibwgXALJF/cJQYQY1hSSBCMTGC+HuKdnJB\r\nP55XiE/eu1lWkUesfCkcKo3ajaQcn14GQVWSZA3Eg9b797U90M0n9Wzw/QoZ\r\nJdYIfgk/blE3OLnB2W4uE8hBlM9+K3oIsYiy3IuqMOI4o5RwOsP9KATjh0jx\r\nl9ShwPj0/O3m8od+F5skUbj4Dymd+TGpbsZ4woYtA+Rskc+hClZ07qSS66lp\r\n03dLoLULl+0KTAFh/ZJHegKVfoiRpSiaP6AEbYNChpAab3dJUW06mDZCZGlT\r\nLsOY2EFwmiJ8MsXVndo6KGs1r7TyueT1ug4WWQDD8a+rpXx4l0qnFm7oGr1c\r\nJ/jN5NqyRUZetOWBSfRlBCX1pY/5DIcizX4=\r\n=z8AX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"remcohaszing","email":"remcohaszing@gmail.com"},"directories":{},"maintainers":[{"name":"remcohaszing","email":"remcohaszing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monaco-worker-manager_1.0.0_1648989057686_0.6142764817643482"},"_hasShrinkwrap":false},"1.0.1":{"name":"monaco-worker-manager","version":"1.0.1","description":"Easily deal with monaco workers","type":"module","scripts":{"prepack":"tsc --noEmit false"},"repository":{"type":"git","url":"git+https://github.com/remcohaszing/monaco-worker-manager.git"},"keywords":["monaco","monaco-editor","worker","webworker"],"author":{"name":"Remco Haszing","email":"remcohaszing@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/remcohaszing/monaco-worker-manager/issues"},"homepage":"https://github.com/remcohaszing/monaco-worker-manager#readme","exports":{".":"./index.js","./worker":"./worker.js"},"peerDependencies":{"monaco-editor":">=0.30.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.0.0","eslint":"^8.0.0","eslint-config-remcohaszing":"^3.0.0","prettier":"^2.0.0","typescript":"^4.0.0"},"types":"./index.d.ts","gitHead":"a8449f5479c96af9cb180ab38522dc0bbadaa698","_id":"monaco-worker-manager@1.0.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.5","dist":{"integrity":"sha512-oTw5vY39/SW5awGdJdKIw0CDAK3b72pKx4EtoEftnerWchsT9wqlQniIN8c0g59g5zqS5nuxhIZaATI7mkdX/Q==","shasum":"f1dce987046ba29b06751ba782a4b12fa222fc12","tarball":"https://registry.npmjs.org/monaco-worker-manager/-/monaco-worker-manager-1.0.1.tgz","fileCount":7,"unpackedSize":10254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGhUxfYPWfYLpqRnnBNnQcEtVkQzZb25LWAGHuAG+Y9SAiEA/cndS2f1HpXAIbv8FdU9tT6T/7F+840EiT2QHtqHXGE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSbVvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrnZw//ZF36d0zzyowFyEBh4IH238yigBDovCpx1AYHMIpHaXcoIJGy\r\nyiulMVS8XHpTqNZKrbGx2M9pRZwCA8WGK4/cor03doAncXt7v7pzMOHm+57s\r\nidhaRIyl55tcwQTz5j5S5hdccM4lHdIpVuQGzZ0mPLr7AU7IBVxhNBkaTflW\r\njIM5P73L2KntGCdy+IeoCu78WpH8hWA9A1sIwRYkfVbga9QthvP6WxgFEFd9\r\nA3WTCtXN+v2GNiJGG2p6WcEVdqhZZ7tc5D5dcJgz7uybmxCrhCQS0TvZiE/k\r\nM2rP23+01X4ycMKJHTlOB+C2fpglDGZXluV9Gx98koAlzTVButrUe/fyGekz\r\nprqF3/tqrhNUjs1AFt8lUHVGBMC1zpatWznJj48B7Zcxd5gE0deCWI6pLf/c\r\nWf4SXOe0eHBxJ+iAXzn+9Uevolsf0YHoMsDhEnzSXDTbNmv//L3jQBoSvCVP\r\nEqNQAfKGBClusv/ljwolICqN4kYU01Jc5bo6uxuFysMyZRQzhYYhXqhIz9Le\r\n4Z7t7ZIpO4c1HgDt3T5PFmlZygpplHAzkOoVv9aRwVGFJlNzU3gIdB4BFyUo\r\nkz5AbtNrtk/oyv4Aj8y/mwDo/WiVnRuZyQa2Ucm0W3A/7uJVemboL1yJHjq0\r\na/jVJx3km/JFhZZIblrGCictywvuiC4n7qg=\r\n=pbze\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"remcohaszing","email":"remcohaszing@gmail.com"},"directories":{},"maintainers":[{"name":"remcohaszing","email":"remcohaszing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monaco-worker-manager_1.0.1_1648997743694_0.8288770134404768"},"_hasShrinkwrap":false},"2.0.0":{"name":"monaco-worker-manager","version":"2.0.0","description":"Easily deal with monaco workers","type":"module","scripts":{"prepack":"tsc --noEmit false"},"repository":{"type":"git","url":"git+https://github.com/remcohaszing/monaco-worker-manager.git"},"keywords":["monaco","monaco-editor","worker","webworker"],"author":{"name":"Remco Haszing","email":"remcohaszing@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/remcohaszing/monaco-worker-manager/issues"},"homepage":"https://github.com/remcohaszing/monaco-worker-manager#readme","exports":{".":"./index.js","./worker":"./worker.js"},"peerDependencies":{"monaco-editor":">=0.30.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.0.0","eslint":"^8.0.0","eslint-config-remcohaszing":"^3.0.0","prettier":"^2.0.0","typescript":"^4.0.0"},"types":"./index.d.ts","gitHead":"3e013c34ce86ac3f1ffc92717278f479aed48732","_id":"monaco-worker-manager@2.0.0","_nodeVersion":"16.14.2","_npmVersion":"8.6.0","dist":{"integrity":"sha512-m+qlk3XEgFzMIvbjYxm9UXOZS6KNXAmph5GkUPIxdh+CjGsokMss/7hc6C76YOdS82icB4YnDmZ3uS2yMSg3NA==","shasum":"504511aabbe28145dea76c909af701e7d5cd9c1b","tarball":"https://registry.npmjs.org/monaco-worker-manager/-/monaco-worker-manager-2.0.0.tgz","fileCount":7,"unpackedSize":10910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBEmaiUzEQcN164ml/tLX0KPdEKu3xQ3Zq2Z5wuhmeGEAiEA3Ns7ZpXsB1qu2RSeAXFpNKchXutWf3PfGpTm3rp7U1w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTpnZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr73A/9Gwn3ZHaDtFnJKu+ZltLZdGiu/nMaXnMVg5F7FIwSsOJwaJTu\r\ngnbOsUxnRAX7b5bH++NFl/+VVqT4imdcFuZDszOsylz+KKc3aTL9GSPNIKLF\r\nbZXbL3+KO8vQd3eSMHbd5AxpWWEc2R1fl90CO85V2f1t9EaY+fo04M372L8+\r\n4NDzTrjVc8TNkqrjV1FUwo3tOQ/gc9IJrx6NfH0AdA5ITISifSbhYmFOFs1H\r\nKqrKFJtrh0OvFObzv7ViUM+UOh98tpB6Z8PygJWgDb9InGfT3wZ88h5PvAQg\r\nbkaNEQyaiuRtoKMWIxbOkUGOmo5X2brtmArtA2I5Nqf+eV5GIIF1qlCUNix2\r\nTrrtatZnpB6vBWnCBc58Jc+vCRc+cvdDAUgu++Bcg/CIX0m5JEZZaoXB23Ip\r\nHeKhhy/zbe0P7SStaYFe5/w63NgMVtXMjY1rDJMt5coHHWQ8+BXB0nqOJEwq\r\nosq/rrHJRGSsxcDjB4i26P2xVElIpCWSs83Gv++7QKTXx+zxBmdfYAds022f\r\ndXQ+93TCPMPsZRlAbNO6aQWyDvNoZUdQnePN0oLqex3zA+ZznsjC6Yk2SG+i\r\nX5Kv8G3X/CkX13+9de29eV9hPo5Z7v9rl1nmC6XFLQ8ULLVgrqxnPIHlsA47\r\niJ2RctCNxogT8lULJaahn3ygZFjS/17D8ME=\r\n=VGfe\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"remcohaszing","email":"remcohaszing@gmail.com"},"directories":{},"maintainers":[{"name":"remcohaszing","email":"remcohaszing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monaco-worker-manager_2.0.0_1649318361152_0.6112199519597008"},"_hasShrinkwrap":false},"2.0.1":{"name":"monaco-worker-manager","version":"2.0.1","description":"Easily deal with monaco workers","type":"module","scripts":{"prepack":"tsc --noEmit false"},"repository":{"type":"git","url":"git+https://github.com/remcohaszing/monaco-worker-manager.git"},"keywords":["monaco","monaco-editor","worker","webworker"],"author":{"name":"Remco Haszing","email":"remcohaszing@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/remcohaszing/monaco-worker-manager/issues"},"homepage":"https://github.com/remcohaszing/monaco-worker-manager#readme","exports":{".":"./index.js","./worker":"./worker.js"},"peerDependencies":{"monaco-editor":">=0.30.0"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^5.0.0","eslint":"^8.0.0","eslint-config-remcohaszing":"^3.0.0","prettier":"^2.0.0","typescript":"^4.0.0"},"types":"./index.d.ts","gitHead":"1d87a5548add6572d79aa5b67c28665cf55e3881","_id":"monaco-worker-manager@2.0.1","_nodeVersion":"16.15.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-kdPL0yvg5qjhKPNVjJoym331PY/5JC11aPJXtCZNwWRvBr6jhkIamvYAyiY5P1AWFmNOy0aRDRoMdZfa71h8kg==","shasum":"f67c54dfca34ed4b225d5de84e77b24b4e36de8a","tarball":"https://registry.npmjs.org/monaco-worker-manager/-/monaco-worker-manager-2.0.1.tgz","fileCount":7,"unpackedSize":10790,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9R71hiPiGZZlDX9p+/qqj9JgBFa52p0NqVLlSbBYc4wIgKywk2JEoTNfak/Iiqyg+ehzNRaROWWzZwaZ73GGmz3M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimf8QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwzQ/+LgwOJ7zPLXqqfR1H+1Jt7afS1YH7X+M+jA8tbBfcIL2p5K8A\r\nwszdkIaskXqvxeKHTtu4GfQxAssVRYulqaFmc57dccOOC+YSF88ur5wRlulT\r\nANCV5l7ngW4cOdIlr+tiU8NYGmxWtw1IhQ1Aeki+BHJPmBH+Oj54lMA9PjyJ\r\ngnbcN8ZfdI5aY9/NN24gSLMaEFHi9dsOL1L7euijIRa1OZXigfJwtAvwE1gL\r\n3ifBWvgvgb8QuaWtFO36W0p8YluZX7d+3asrhKcy5+Zcq4yj4Pd2C04EjzwJ\r\nc2UM4n/EjYhNxvioVHzHvSa/xkHzCcS+V23BBvD0MNZPIeu699YnTaIYGnOM\r\nO2TCRrsPrDSrR58l4xRM1xnX6ONFcOd+qNWf7kgOwwtP3pbkbWocBl4KW0Fl\r\nA2VKijJ/zLsvLbI2d9sKgEVNB1jepYu0UeUAF3baW5e4RxKU0LfWSO4/vLIQ\r\ndSxpKb14BGKilUn6ThT/E+hiM3Cl1NsbCKeJqL/13iOm8MAHO6aT7GB33/Z6\r\nytVDZWbyyMS1ysB+Hei0XFZUAiQBNXHn6fV4Aj6N9tRtQhj4IipLapo9W1x+\r\naEUL4WhdhAFGWWCaTZDoMb56Lbr6p7ZAQGak45EOZfNPAo3wkoixpXb65AcJ\r\n1B/KAb/6vYs0CtahC/f0Z9ftnUWYZ1PiuZw=\r\n=/Xoh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"remcohaszing","email":"remcohaszing@gmail.com"},"directories":{},"maintainers":[{"name":"remcohaszing","email":"remcohaszing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monaco-worker-manager_2.0.1_1654259472146_0.8355284694477918"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-03T12:30:57.686Z","1.0.0":"2022-04-03T12:30:57.850Z","modified":"2022-06-03T12:31:12.381Z","1.0.1":"2022-04-03T14:55:43.833Z","2.0.0":"2022-04-07T07:59:21.328Z","2.0.1":"2022-06-03T12:31:12.280Z"},"maintainers":[{"name":"remcohaszing","email":"remcohaszing@gmail.com"}],"description":"Easily deal with monaco workers","homepage":"https://github.com/remcohaszing/monaco-worker-manager#readme","keywords":["monaco","monaco-editor","worker","webworker"],"repository":{"type":"git","url":"git+https://github.com/remcohaszing/monaco-worker-manager.git"},"author":{"name":"Remco Haszing","email":"remcohaszing@gmail.com"},"bugs":{"url":"https://github.com/remcohaszing/monaco-worker-manager/issues"},"license":"MIT","readme":"# Monaco Worker Manager\n\n[![ci workflow](https://github.com/remcohaszing/monaco-worker-manager/actions/workflows/ci.yaml/badge.svg)](https://github.com/remcohaszing/monaco-worker-manager/actions/workflows/ci.yaml)\n[![npm version](https://img.shields.io/npm/v/monaco-worker-manager)](https://www.npmjs.com/package/monaco-worker-manager)\n[![prettier code style](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://prettier.io)\n\nA Monaco worker manager handles workers in a type safe manner.\n\n## Installation\n\nThis project has a peer dependency on `monaco-editor`. It’s recommded to add it explicitly.\n\n```sh\nnpm install monaco-editor monaco-editor-manager\n```\n\n## Usage\n\nCreate a module that contains a Monaco web worker, let’s call it `my.worker.ts`.\n\n```typescript\nimport { initialize } from 'monaco-worker-manager/worker';\nimport { doValidate } from 'my-language-service';\n\nexport interface MyWorker {\n  doValidate: (uri: string) => Violation[];\n}\n\ninitialize<MyWorker>((ctx, options) => {\n  function getModel(uri: string): worker.IMirrorModel | undefined {\n    for (const model of ctx.getMirrorModels()) {\n      if (String(model.uri) === uri) {\n        return model;\n      }\n    }\n  }\n\n  return {\n    doValidate(uri) {\n      const model = getModel(uri);\n\n      if (!model) {\n        return [];\n      }\n\n      return doValidate(model, options);\n    },\n  };\n});\n```\n\nNow create a monaco environment and create a worker manager in the main thread:\n\n```typescript\nimport { editor, Uri } from 'monaco-editor';\nimport { createWorkerManager } from 'monaco-worker-manager';\n\nimport { MyWorker } from './my.worker';\n\nconst myLabel = 'myLabel';\nconst myModuleId = 'my.worker';\n\nwindow.MonacoEnvironment = {\n  getWorker(moduleId, label) {\n    switch (label) {\n      case 'editorWorkerService':\n        return new Worker(new URL('monaco-editor/esm/vs/editor/editor.worker', import.meta.url));\n      case myLabel:\n        return new Worker(new URL('my.worker', import.meta.url));\n      default:\n        throw new Error(`Unknown label ${label}`);\n    }\n  },\n};\n\nconst workerManager = createWorkerManager<MyWorker>({\n  label: myLabel,\n  moduleId: myModuleId,\n});\n\nconst model = editor.createModel('Hello Monaco!', 'plaintext', Uri.parse('file:///hello.txt'));\n\nasync function main(): Promise<void> {\n  const worker = await workerManager.getWorker(model.uri);\n  const diagnostics = await worker.doValidate(String(model.uri));\n  console.log(diagnostics);\n}\n\nmain();\n```\n\n## API\n\nThis project exposes 2 modules: one to use in the main thread, another to create your own worker.\n\n### `monaco-worker-manager#createWorkerManager(options)`\n\nCreate a worker manager.\n\nA worker manager is an object which deals with Monaco based web workers, such as cleanups and idle\ntimeouts.\n\n#### Options\n\n- `options.createData`: The data to send over when creating the worker. (Optional)\n- `options.interval` How often to check if a worker is idle in milliseconds. (Optional, default:\n  `30_000`)\n- `options.label`: A label to be used to identify the web worker.\n- `options.moduleId`: The module id to be used to identify the web worker.\n- `options.stopWhenIdleFor`: The worker is stopped after this time has passed in milliseconds. Set\n  to Infinity to never stop the worker. (Optional, default: `120_000`)\n\n#### Return value\n\nA disposable object with the following keys:\n\n- `getWorker(...resources: Uri[])`: An unbound method for getting the web worker.\n- `updateCreateData(newCreateData)`: An unbound method which updates the create data and reloads the\n  worker.\n\n### `monaco-worker-manager/worker#initialize(fn)`\n\nCreate a web worker in a type safe manner.\n\nThe function will be called with the following arguments:\n\n1. The Monaco worker context.\n2. The create data defined by the worker manager.\n\n## License\n\n[MIT](https://github.com/remcohaszing/monaco-worker-manager/blob/main/LICENSE.md)\n","readmeFilename":"README.md"}