From e19d17c3253f462cf00719038e7d00e4d4f456e8 Mon Sep 17 00:00:00 2001 From: Eric Nguyen Date: Tue, 14 Feb 2023 10:06:36 +0000 Subject: [PATCH] Merged PR 333: Add mprocs + nodemon + fix eslint tsconfig not found --- .eslintrc.cjs | 3 +- CONTRIBUTING.md | 21 ++++++++++++ mprocs.yaml | 7 ++++ package.json | 4 ++- pnpm-lock.yaml | 86 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 mprocs.yaml diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 748a5bb..14eeda7 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -19,7 +19,8 @@ module.exports = { }, ecmaVersion: 'latest', sourceType: 'module', - project: './tsconfig.json' + project: './tsconfig.json', + tsconfigRootDir: __dirname }, plugins: [ 'only-warn', diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 446b61f..0ee06e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,20 @@ You will be able to navigate through this document with the table of contents. - [Table of contents](#table-of-contents) - [I want to contribute](#i-want-to-contribute) - [I want to contribute to the .NETFramework API](#i-want-to-contribute-to-the-netframework-api) + - [Getting Started](#getting-started) + - [Before developing](#before-developing) + - [Testing](#testing) + - [Releasing](#releasing) - [I want to contribute to the React component](#i-want-to-contribute-to-the-react-component) + - [Getting Started](#getting-started-1) + - [Before developing](#before-developing-1) + - [CORS](#cors) + - [Develop with Vite and pnpm](#develop-with-vite-and-pnpm) + - [Develop with mprocs](#develop-with-mprocs) + - [Testing the external API without .NETFramework or Windows](#testing-the-external-api-without-netframework-or-windows) + - [Setup debugging with chrome](#setup-debugging-with-chrome) + - [Testing](#testing-1) + - [Releasing](#releasing-1) - [I want to report a bug](#i-want-to-report-a-bug) - [Before submitting a bug report](#before-submitting-a-bug-report) - [How do i submit a good bug report?](#how-do-i-submit-a-good-bug-report) @@ -102,6 +115,14 @@ Then run the following command to run the projet in a dev environment: pnpm dev ``` +### Develop with mprocs + +[Mprocs](https://github.com/pvolok/mprocs) runs multiple commands in parallel and shows output of each command separately. + +It is useful to run `vite` and the test server at the same time with `mprocs`. + +Run `pnpm d` or `pnpm mprocs` to run mprocs. + ### Testing the external API without .NETFramework or Windows Use the Node.js server in `/test-server` to simulate the api. diff --git a/mprocs.yaml b/mprocs.yaml new file mode 100644 index 0000000..fa0511f --- /dev/null +++ b/mprocs.yaml @@ -0,0 +1,7 @@ +procs: + nvim: + shell: "nvim ." + vite: + shell: "npx vite" + test-server: + shell: "npx nodemon ./test-server/http.js" diff --git a/package.json b/package.json index 8fe114a..ff96249 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,10 @@ "version": "v1.0.0", "type": "module", "scripts": { + "d": "mprocs", "dev": "vite", "build": "tsc && vite build", "build:dotnet": "dotnet build ./csharp/SVGLDLibs/SVGLDLibs/SVGLDLibs.csproj", - "preview": "vite preview", "linter": "eslint src", "test": "vitest", "test:ui": "vitest --ui", @@ -52,6 +52,8 @@ "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "jsdom": "^21.1.0", + "mprocs": "^0.6.4", + "nodemon": "^2.0.20", "postcss": "^8.4.21", "sass": "^1.58.0", "tailwindcss": "^3.2.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc7fbe9..212f797 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,6 +28,8 @@ specifiers: eslint-plugin-react-hooks: ^4.6.0 interweave: ^13.0.0 jsdom: ^21.1.0 + mprocs: ^0.6.4 + nodemon: ^2.0.20 postcss: ^8.4.21 react: ^18.2.0 react-dom: ^18.2.0 @@ -77,6 +79,8 @@ devDependencies: eslint-plugin-react: 7.32.2_eslint@8.33.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.33.0 jsdom: 21.1.0 + mprocs: 0.6.4 + nodemon: 2.0.20 postcss: 8.4.21 sass: 1.58.0 tailwindcss: 3.2.4_postcss@8.4.21 @@ -1172,6 +1176,10 @@ packages: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: true + /abbrev/1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: true + /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: @@ -1600,6 +1608,18 @@ packages: ms: 2.1.3 dev: true + /debug/3.2.7_supports-color@5.5.0: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + supports-color: 5.5.0 + dev: true + /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -2507,6 +2527,10 @@ packages: safer-buffer: 2.1.2 dev: true + /ignore-by-default/1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + dev: true + /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -3010,6 +3034,12 @@ packages: ufo: 1.0.1 dev: true + /mprocs/0.6.4: + resolution: {integrity: sha512-Y4eqnAjp3mjy0eT+zPoMQ+P/ISOzjgRG/4kh4I5cRA4Tv0rPxTCBRadn3+j+boMF5id7IoLhrVq9NFWFPuzD9A==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + /mrmime/1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} @@ -3041,6 +3071,30 @@ packages: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} dev: true + /nodemon/2.0.20: + resolution: {integrity: sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==} + engines: {node: '>=8.10.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + debug: 3.2.7_supports-color@5.5.0 + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 5.7.1 + simple-update-notifier: 1.1.0 + supports-color: 5.5.0 + touch: 3.1.0 + undefsafe: 2.0.5 + dev: true + + /nopt/1.0.10: + resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -3352,6 +3406,10 @@ packages: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true + /pstree.remy/1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + dev: true + /punycode/2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} @@ -3549,11 +3607,21 @@ packages: dependencies: loose-envify: 1.4.0 + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true dev: true + /semver/7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + hasBin: true + dev: true + /semver/7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} engines: {node: '>=10'} @@ -3586,6 +3654,13 @@ packages: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true + /simple-update-notifier/1.1.0: + resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} + engines: {node: '>=8.10.0'} + dependencies: + semver: 7.0.0 + dev: true + /sirv/2.0.2: resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} engines: {node: '>= 10'} @@ -3831,6 +3906,13 @@ packages: engines: {node: '>=6'} dev: true + /touch/3.1.0: + resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} + hasBin: true + dependencies: + nopt: 1.0.10 + dev: true + /tough-cookie/4.1.2: resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} engines: {node: '>=6'} @@ -3926,6 +4008,10 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /undefsafe/2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + dev: true + /universalify/0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'}