diff options
author | Matthew Strapp <matt@mattstrapp.net> | 2024-10-31 13:28:18 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-31 13:28:18 -0500 |
commit | 9172bb74d2c03c92902136c1831874337ab394dd (patch) | |
tree | 56f73bed76bba4b55ad622a7a0a6af7713899c7f | |
parent | refactor: Update eslint configuration (diff) | |
download | locusts-9172bb74d2c03c92902136c1831874337ab394dd.tar locusts-9172bb74d2c03c92902136c1831874337ab394dd.tar.gz locusts-9172bb74d2c03c92902136c1831874337ab394dd.tar.bz2 locusts-9172bb74d2c03c92902136c1831874337ab394dd.tar.lz locusts-9172bb74d2c03c92902136c1831874337ab394dd.tar.xz locusts-9172bb74d2c03c92902136c1831874337ab394dd.tar.zst locusts-9172bb74d2c03c92902136c1831874337ab394dd.zip |
feat: Vue (#37)
---------
Signed-off-by: Matt Strapp <matt@mattstrapp.net>
-rw-r--r-- | .changeset/rude-foxes-attack.md | 5 | ||||
-rw-r--r-- | .github/workflows/node.yml | 2 | ||||
-rw-r--r-- | README.md | 5 | ||||
-rw-r--r-- | eslint.config.mjs | 10 | ||||
-rw-r--r-- | pnpm-lock.yaml | 346 | ||||
-rw-r--r-- | src/packages/eslint-config/eslint.library.config.d.ts | 2 | ||||
-rw-r--r-- | src/packages/typescript-config/base.json | 12 | ||||
-rw-r--r-- | src/packages/vue/.gitignore | 24 | ||||
-rw-r--r-- | src/packages/vue/README.md | 5 | ||||
-rw-r--r-- | src/packages/vue/eslint.config.mjs | 11 | ||||
-rw-r--r-- | src/packages/vue/index.html | 13 | ||||
-rw-r--r-- | src/packages/vue/package.json | 55 | ||||
-rw-r--r-- | src/packages/vue/src/components/Locusts.vue | 6 | ||||
-rw-r--r-- | src/packages/vue/src/index.ts | 3 | ||||
-rw-r--r-- | src/packages/vue/src/vite-env.d.ts | 1 | ||||
-rw-r--r-- | src/packages/vue/tsconfig.json | 19 | ||||
-rw-r--r-- | src/packages/vue/vite.config.ts | 23 |
17 files changed, 517 insertions, 25 deletions
diff --git a/.changeset/rude-foxes-attack.md b/.changeset/rude-foxes-attack.md new file mode 100644 index 0000000..914a176 --- /dev/null +++ b/.changeset/rude-foxes-attack.md @@ -0,0 +1,5 @@ +--- +"@locusts/vue": major +--- + +feat: Add Vue diff --git a/.github/workflows/node.yml b/.github/workflows/node.yml index 14bb851..066986f 100644 --- a/.github/workflows/node.yml +++ b/.github/workflows/node.yml @@ -48,6 +48,6 @@ jobs: node-version: "latest" cache: "pnpm" - name: Check formatting - run: pnpm ci:format + run: pnpm lint - name: Build and Test run: pnpm build && pnpm test @@ -40,6 +40,11 @@ We here at Locusts-R-Us have developed a series of libraries for all sorts of pr It's funny. +### Why did you decide to use a monorepo for absolutely everything? + +At this point, I do not know anymore. It was probably a mistake. +Too late to change it now. + ### Do any of these libraries serve any purpose? No. diff --git a/eslint.config.mjs b/eslint.config.mjs index fceabb0..8c293ba 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,7 +1,3 @@ -export default { - languageOptions: { - parserOptions: { - project: true, - }, - }, -}; +import library from "@repo/eslint-config/eslint.library.config.js"; + +export default [...library]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a4fbade..79d3655 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,6 +134,37 @@ importers: src/packages/typescript-config: {} + src/packages/vue: + dependencies: + vue: + specifier: ^3.0.0 + version: 3.5.12(typescript@5.6.3) + devDependencies: + '@repo/eslint-config': + specifier: workspace:* + version: link:../eslint-config + '@repo/typescript-config': + specifier: workspace:* + version: link:../typescript-config + '@vitejs/plugin-vue': + specifier: ^5.1.4 + version: 5.1.4(vite@5.4.10(@types/node@22.8.4))(vue@3.5.12(typescript@5.6.3)) + eslint-plugin-vue: + specifier: ^9.30.0 + version: 9.30.0(eslint@9.13.0) + publint: + specifier: ^0.2.0 + version: 0.2.12 + typescript: + specifier: ^5.6.3 + version: 5.6.3 + vite: + specifier: ^5.4.10 + version: 5.4.10(@types/node@22.8.4) + vue-tsc: + specifier: ^2.1.8 + version: 2.1.10(typescript@5.6.3) + packages: '@ampproject/remapping@2.3.0': @@ -1145,6 +1176,13 @@ packages: typescript: optional: true + '@vitejs/plugin-vue@5.1.4': + resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + '@vitest/expect@2.1.4': resolution: {integrity: sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==} @@ -1174,6 +1212,55 @@ packages: '@vitest/utils@2.1.4': resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==} + '@volar/language-core@2.4.8': + resolution: {integrity: sha512-K/GxMOXGq997bO00cdFhTNuR85xPxj0BEEAy+BaqqayTmy9Tmhfgmq2wpJcVspRhcwfgPoE2/mEJa26emUhG/g==} + + '@volar/source-map@2.4.8': + resolution: {integrity: sha512-jeWJBkC/WivdelMwxKkpFL811uH/jJ1kVxa+c7OvG48DXc3VrP7pplSWPP2W1dLMqBxD+awRlg55FQQfiup4cA==} + + '@volar/typescript@2.4.8': + resolution: {integrity: sha512-6xkIYJ5xxghVBhVywMoPMidDDAFT1OoQeXwa27HSgJ6AiIKRe61RXLoik+14Z7r0JvnblXVsjsRLmCr42SGzqg==} + + '@vue/compiler-core@3.5.12': + resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} + + '@vue/compiler-dom@3.5.12': + resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} + + '@vue/compiler-sfc@3.5.12': + resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} + + '@vue/compiler-ssr@3.5.12': + resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/language-core@2.1.10': + resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.12': + resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} + + '@vue/runtime-core@3.5.12': + resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} + + '@vue/runtime-dom@3.5.12': + resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} + + '@vue/server-renderer@3.5.12': + resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} + peerDependencies: + vue: 3.5.12 + + '@vue/shared@3.5.12': + resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1197,6 +1284,9 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + alien-signals@0.2.0: + resolution: {integrity: sha512-StlonZhBBrsPPwrDjiPAiVTf/rolxffLxVPT60Qv/t88BZ81BvUVzHgGqEFvJ1ii8HXtm1+zU2Icr59tfWEcag==} + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -1299,6 +1389,9 @@ packages: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1449,6 +1542,9 @@ packages: engines: {node: '>=4'} hasBin: true + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -1464,6 +1560,9 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1560,6 +1659,10 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -1792,6 +1895,12 @@ packages: vitest: optional: true + eslint-plugin-vue@9.30.0: + resolution: {integrity: sha512-CyqlRgShvljFkOeYK8wN5frh/OGTvkj1S7wlr2Q2pUvwq+X5VYiLd6ZjujpgSgLnys2W8qrBLkXQ41SUYaoPIQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -1861,6 +1970,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -2083,6 +2195,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -2408,6 +2524,9 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@6.0.0: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} @@ -2479,6 +2598,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -2516,6 +2638,9 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} hasBin: true + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -2619,6 +2744,9 @@ packages: pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3411,6 +3539,29 @@ packages: jsdom: optional: true + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-tsc@2.1.10: + resolution: {integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + + vue@3.5.12: + resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -3461,6 +3612,10 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} @@ -4458,10 +4613,10 @@ snapshots: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3) '@typescript-eslint/parser': 7.18.0(eslint@9.13.0)(typescript@5.6.3) eslint-config-prettier: 9.1.0(eslint@9.13.0) - eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0)) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0) + eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.30.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0)(eslint@9.13.0) eslint-plugin-eslint-comments: 3.2.0(eslint@9.13.0) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0) eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3) eslint-plugin-jsx-a11y: 6.10.0(eslint@9.13.0) eslint-plugin-playwright: 1.6.2(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0) @@ -4484,6 +4639,11 @@ snapshots: - supports-color - vitest + '@vitejs/plugin-vue@5.1.4(vite@5.4.10(@types/node@22.8.4))(vue@3.5.12(typescript@5.6.3))': + dependencies: + vite: 5.4.10(@types/node@22.8.4) + vue: 3.5.12(typescript@5.6.3) + '@vitest/expect@2.1.4': dependencies: '@vitest/spy': 2.1.4 @@ -4524,6 +4684,90 @@ snapshots: loupe: 3.1.2 tinyrainbow: 1.2.0 + '@volar/language-core@2.4.8': + dependencies: + '@volar/source-map': 2.4.8 + + '@volar/source-map@2.4.8': {} + + '@volar/typescript@2.4.8': + dependencies: + '@volar/language-core': 2.4.8 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vue/compiler-core@3.5.12': + dependencies: + '@babel/parser': 7.25.6 + '@vue/shared': 3.5.12 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.12': + dependencies: + '@vue/compiler-core': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/compiler-sfc@3.5.12': + dependencies: + '@babel/parser': 7.25.6 + '@vue/compiler-core': 3.5.12 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + estree-walker: 2.0.2 + magic-string: 0.30.12 + postcss: 8.4.47 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.12': + dependencies: + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/language-core@2.1.10(typescript@5.6.3)': + dependencies: + '@volar/language-core': 2.4.8 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.12 + alien-signals: 0.2.0 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.6.3 + + '@vue/reactivity@3.5.12': + dependencies: + '@vue/shared': 3.5.12 + + '@vue/runtime-core@3.5.12': + dependencies: + '@vue/reactivity': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/runtime-dom@3.5.12': + dependencies: + '@vue/reactivity': 3.5.12 + '@vue/runtime-core': 3.5.12 + '@vue/shared': 3.5.12 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.6.3))': + dependencies: + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + vue: 3.5.12(typescript@5.6.3) + + '@vue/shared@3.5.12': {} + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: acorn: 8.12.1 @@ -4547,6 +4791,8 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + alien-signals@0.2.0: {} + ansi-colors@4.1.3: {} ansi-regex@5.0.1: {} @@ -4662,6 +4908,8 @@ snapshots: dependencies: is-windows: 1.0.2 + boolbase@1.0.0: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -4801,6 +5049,8 @@ snapshots: cssesc@3.0.0: {} + csstype@3.1.3: {} + damerau-levenshtein@1.0.8: {} data-view-buffer@1.0.1: @@ -4821,6 +5071,8 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 + de-indent@1.0.2: {} + debug@3.2.7: dependencies: ms: 2.1.3 @@ -4910,6 +5162,8 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + entities@4.5.0: {} + env-paths@2.2.1: {} error-ex@1.3.2: @@ -5120,9 +5374,9 @@ snapshots: eslint: 9.13.0 eslint-plugin-turbo: 2.2.3(eslint@9.13.0) - eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0)): + eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.30.0): dependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -5132,43 +5386,43 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0)(eslint@9.13.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 9.13.0 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0) fast-glob: 3.3.2 get-tsconfig: 4.8.0 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0): + eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@9.13.0)(typescript@5.6.3) eslint: 9.13.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0)(eslint@9.13.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0): + eslint-module-utils@2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@9.13.0)(typescript@5.6.3) eslint: 9.13.0 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0)(eslint@9.13.0) transitivePeerDependencies: - supports-color @@ -5178,7 +5432,7 @@ snapshots: eslint: 9.13.0 ignore: 5.3.2 - eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -5189,7 +5443,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.13.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0)(typescript@5.6.3))(eslint@9.13.0))(eslint@9.13.0))(eslint@9.13.0) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -5200,7 +5454,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.13.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.12.2(eslint@9.13.0)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -5341,6 +5595,20 @@ snapshots: - supports-color - typescript + eslint-plugin-vue@9.30.0(eslint@9.13.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0) + eslint: 9.13.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@9.13.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -5435,6 +5703,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.6 @@ -5665,6 +5935,8 @@ snapshots: dependencies: function-bind: 1.1.2 + he@1.2.0: {} + hosted-git-info@2.8.9: {} hosted-git-info@7.0.2: @@ -5943,6 +6215,8 @@ snapshots: lodash.startcase@4.4.0: {} + lodash@4.17.21: {} + log-symbols@6.0.0: dependencies: chalk: 5.3.0 @@ -6006,6 +6280,8 @@ snapshots: ms@2.1.3: {} + muggle-string@0.4.1: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -6050,6 +6326,10 @@ snapshots: npm-bundled: 2.0.1 npm-normalize-package-bin: 2.0.0 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + object-assign@4.1.1: {} object-inspect@1.13.2: {} @@ -6170,6 +6450,8 @@ snapshots: no-case: 3.0.4 tslib: 2.7.0 + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -6987,6 +7269,38 @@ snapshots: - supports-color - terser + vscode-uri@3.0.8: {} + + vue-eslint-parser@9.4.3(eslint@9.13.0): + dependencies: + debug: 4.3.7 + eslint: 9.13.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + vue-tsc@2.1.10(typescript@5.6.3): + dependencies: + '@volar/typescript': 2.4.8 + '@vue/language-core': 2.1.10(typescript@5.6.3) + semver: 7.6.3 + typescript: 5.6.3 + + vue@3.5.12(typescript@5.6.3): + dependencies: + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-sfc': 3.5.12 + '@vue/runtime-dom': 3.5.12 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) + '@vue/shared': 3.5.12 + optionalDependencies: + typescript: 5.6.3 + webidl-conversions@4.0.2: {} whatwg-url@7.1.0: @@ -7062,6 +7376,8 @@ snapshots: wrappy@1.0.2: {} + xml-name-validator@4.0.0: {} + yallist@2.1.2: {} yallist@3.1.1: {} diff --git a/src/packages/eslint-config/eslint.library.config.d.ts b/src/packages/eslint-config/eslint.library.config.d.ts new file mode 100644 index 0000000..56addbf --- /dev/null +++ b/src/packages/eslint-config/eslint.library.config.d.ts @@ -0,0 +1,2 @@ +declare const _default: import(".pnpm/@typescript-eslint+utils@8.12.2_eslint@9.13.0_typescript@5.6.3/node_modules/@typescript-eslint/utils/dist/ts-eslint").FlatConfig.ConfigArray; +export default _default; diff --git a/src/packages/typescript-config/base.json b/src/packages/typescript-config/base.json index d5ac453..7a30961 100644 --- a/src/packages/typescript-config/base.json +++ b/src/packages/typescript-config/base.json @@ -10,15 +10,23 @@ "forceConsistentCasingInFileNames": true, "incremental": false, "isolatedModules": true, - "lib": ["es2022", "DOM", "DOM.Iterable"], + "lib": [ + "es2022", + "DOM", + "DOM.Iterable" + ], "module": "NodeNext", "moduleDetection": "force", "moduleResolution": "NodeNext", + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, + "noUncheckedSideEffectImports": true, "resolveJsonModule": true, "skipLibCheck": true, "sourceMap": true, "strict": true, "target": "ES2022" } -} +}
\ No newline at end of file diff --git a/src/packages/vue/.gitignore b/src/packages/vue/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/src/packages/vue/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/packages/vue/README.md b/src/packages/vue/README.md new file mode 100644 index 0000000..33895ab --- /dev/null +++ b/src/packages/vue/README.md @@ -0,0 +1,5 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more. + +Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup). diff --git a/src/packages/vue/eslint.config.mjs b/src/packages/vue/eslint.config.mjs new file mode 100644 index 0000000..439d403 --- /dev/null +++ b/src/packages/vue/eslint.config.mjs @@ -0,0 +1,11 @@ +import library from "@repo/eslint-config/eslint.library.config.js"; +import pluginVue from "eslint-plugin-vue"; + +/** @type {import("eslint").Linter.Config[]} */ +export default [ + ...library, + ...pluginVue.configs["flat/recommended"], + { + ignores: ["dist/"], + }, +]; diff --git a/src/packages/vue/index.html b/src/packages/vue/index.html new file mode 100644 index 0000000..a6ef3a8 --- /dev/null +++ b/src/packages/vue/index.html @@ -0,0 +1,13 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Vite + Vue + TS</title> + </head> + <body> + <div id="app"></div> + <script type="module" src="/src/index.ts"></script> + </body> +</html> diff --git a/src/packages/vue/package.json b/src/packages/vue/package.json new file mode 100644 index 0000000..f706e3d --- /dev/null +++ b/src/packages/vue/package.json @@ -0,0 +1,55 @@ +{ + "name": "@locusts/vue", + "description": "A Vue 3 component that introduces locusts into your website.", + "author": "Matt Strapp <matt+locusts@mattstrapp.net> (https://mattstrapp.net)", + "bugs": "https://github.com/locusts-r-us/locusts/issues", + "license": "0BSD", + "repository": { + "type": "git", + "url": "git+https://github.com/locusts-r-us/locusts.git", + "directory": "packages/vue" + }, + "version": "0.0.0", + "type": "module", + "files": [ + "dist" + ], + "main": "./dist/locusts.umd.cjs", + "module": "./dist/locusts.js", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/locusts.js", + "require": "./dist/locusts.umd.cjs" + } + }, + "types": "./dist/index.d.ts", + "scripts": { + "dev": "vite dev", + "build": "vite build && vue-tsc --declaration --emitDeclarationOnly && publint", + "check": "vue-tsc --noEmit", + "format": "prettier --write .", + "lint": "prettier --check . && eslint --fix .", + "preview": "vite preview" + }, + "keywords": [ + "vue", + "vue3", + "component", + "why", + "joke" + ], + "peerDependencies": { + "vue": "^3.0.0" + }, + "devDependencies": { + "@repo/eslint-config": "workspace:*", + "@repo/typescript-config": "workspace:*", + "@vitejs/plugin-vue": "^5.1.4", + "eslint-plugin-vue": "^9.30.0", + "publint": "^0.2.0", + "typescript": "^5.6.3", + "vite": "^5.4.10", + "vue-tsc": "^2.1.8" + } +} diff --git a/src/packages/vue/src/components/Locusts.vue b/src/packages/vue/src/components/Locusts.vue new file mode 100644 index 0000000..a01014e --- /dev/null +++ b/src/packages/vue/src/components/Locusts.vue @@ -0,0 +1,6 @@ +<!-- eslint-disable vue/multi-word-component-names --> +<script setup lang="ts"></script> + +<template> + <div /> +</template> diff --git a/src/packages/vue/src/index.ts b/src/packages/vue/src/index.ts new file mode 100644 index 0000000..5158db7 --- /dev/null +++ b/src/packages/vue/src/index.ts @@ -0,0 +1,3 @@ +import Locusts from "./components/Locusts.vue"; + +export { Locusts }; diff --git a/src/packages/vue/src/vite-env.d.ts b/src/packages/vue/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/packages/vue/src/vite-env.d.ts @@ -0,0 +1 @@ +/// <reference types="vite/client" /> diff --git a/src/packages/vue/tsconfig.json b/src/packages/vue/tsconfig.json new file mode 100644 index 0000000..b8e300a --- /dev/null +++ b/src/packages/vue/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "@repo/typescript-config/base.json", + "compilerOptions": { + "outDir": "dist", + "declaration": true, + "declarationDir": "dist", + "emitDeclarationOnly": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "useDefineForClassFields": true + }, + "exclude": [ + "node_modules", + "dist", + "src/main.ts", + "src/components/Locusts.vue" + ], + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/src/packages/vue/vite.config.ts b/src/packages/vue/vite.config.ts new file mode 100644 index 0000000..c1b4415 --- /dev/null +++ b/src/packages/vue/vite.config.ts @@ -0,0 +1,23 @@ +import { resolve } from "node:path"; +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [vue()], + build: { + lib: { + entry: resolve(__dirname, "src/index.ts"), + name: "Locusts", + fileName: "locusts", + }, + rollupOptions: { + external: ["vue"], + output: { + globals: { + vue: "Vue", + }, + }, + }, + }, +}); |