diff --git a/package.json b/package.json index d616bae..d09a775 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "author": "Julien Calixte ", "license": "ISC", "dependencies": { + "comlink": "^4.4.1", "pinia": "^2.1.4", "vue": "^3.3.4", "vue-starport": "^0.3.0" @@ -24,6 +25,7 @@ "sass": "^1.64.0", "typescript": "^5.1.6", "vite": "^4.4.1", + "vite-plugin-comlink": "^3.0.5", "vitest": "^0.33.0" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39e938b..d792193 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: + comlink: + specifier: ^4.4.1 + version: 4.4.1 pinia: specifier: ^2.1.4 version: 2.1.4(typescript@5.1.6)(vue@3.3.4) @@ -34,6 +37,9 @@ devDependencies: vite: specifier: ^4.4.1 version: 4.4.1(@types/node@20.4.2)(sass@1.64.0) + vite-plugin-comlink: + specifier: ^3.0.5 + version: 3.0.5(comlink@4.4.1)(vite@4.4.1) vitest: specifier: ^0.33.0 version: 0.33.0(sass@1.64.0) @@ -538,6 +544,9 @@ packages: fsevents: 2.3.2 dev: true + /comlink@4.4.1: + resolution: {integrity: sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==} + /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} @@ -652,6 +661,12 @@ packages: engines: {node: '>=0.12.0'} dev: true + /json5@2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: true + /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true @@ -667,6 +682,13 @@ packages: get-func-name: 2.0.0 dev: true + /magic-string@0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + /magic-string@0.30.1: resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} engines: {node: '>=12'} @@ -799,6 +821,11 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true @@ -874,6 +901,18 @@ packages: - terser dev: true + /vite-plugin-comlink@3.0.5(comlink@4.4.1)(vite@4.4.1): + resolution: {integrity: sha512-my8BE9GFJEaLc7l3e2SfRUL8JJsN9On8PiW7q4Eyq3g6DHUsNqo5WlS7Butuzc8ngrs24Tf1RC8Xfdda+E5T9w==} + peerDependencies: + comlink: ^4.3.1 + vite: '>=2.9.6' + dependencies: + comlink: 4.4.1 + json5: 2.2.1 + magic-string: 0.26.7 + vite: 4.4.1(@types/node@20.4.2)(sass@1.64.0) + dev: true + /vite@4.4.1(@types/node@20.4.2)(sass@1.64.0): resolution: {integrity: sha512-8mmwPlsy7t+ZcTme7vdbVGuZ3Tri+lrLXr6hsF5UHdyYyARPPPMtM16QlqC9TZuCd5j3NmWs1rwka3cVSRHZTw==} engines: {node: ^14.18.0 || >=16.0.0} diff --git a/tsconfig.json b/tsconfig.json index 4322347..0b60dda 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,7 @@ "sourceMap": true, "baseUrl": ".", "resolveJsonModule": true, - "types": ["node", "vite/client"], + "types": ["node", "vite/client", "vite-plugin-comlink/client"], "paths": { "@/*": ["src/*"] }, diff --git a/vite.config.ts b/vite.config.ts index c0b47c3..52a76ee 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,9 +1,10 @@ import vue from '@vitejs/plugin-vue' import path from 'path' import { defineConfig } from 'vite' +import { comlink } from 'vite-plugin-comlink' export default defineConfig({ - plugins: [vue()], + plugins: [comlink(), vue()], build: { rollupOptions: { input: { @@ -17,5 +18,8 @@ export default defineConfig({ '@': path.resolve(__dirname, './src'), 'node-fetch': 'isomorphic-fetch' } + }, + worker: { + plugins: [comlink()] } })