From c67dead763201f2a1fac79412dcdf25f16a864af Mon Sep 17 00:00:00 2001 From: Francisco Pessano Date: Sun, 2 Jul 2023 02:20:41 -0300 Subject: [PATCH] feat: added monorepo --- .DS_Store | Bin 0 -> 8196 bytes .dockerignore | 1 + .gitignore | 9 +- docker-compose.yml | 13 + lerna.json | 7 + package.json | 84 +---- .babelrc => packages/client/.babelrc | 0 packages/client/Dockerfile | 17 + .../client/components}/PieCircle.tsx | 0 .../client/components}/index.ts | 0 {lib => packages/client/lib}/constants.ts | 0 {lib => packages/client/lib}/storage.ts | 0 {lib => packages/client/lib}/theme.ts | 0 {lib => packages/client/lib}/types.d.ts | 0 .../client/next-env.d.ts | 0 packages/client/package.json | 73 ++++ {pages => packages/client/pages}/_app.js | 0 {pages => packages/client/pages}/index.css | 0 {pages => packages/client/pages}/index.tsx | 0 packages/client/pages/normalize.css | 355 ++++++++++++++++++ packages/client/screens/.DS_Store | Bin 0 -> 6148 bytes .../client/screens}/Header/Header.tsx | 0 .../client/screens}/Header/data.ts | 0 .../client/screens}/Header/index.ts | 0 .../screens}/SpendScreen/SpendScreen.tsx | 0 .../client/screens}/SpendScreen/index.ts | 0 {screens => packages/client/screens}/index.ts | 0 .../client/tsconfig.eslint.json | 0 packages/client/tsconfig.json | 33 ++ .../client/tsconfig.node.json | 0 packages/client/tsconfig.node.tsbuildinfo | 1 + .../client/vite.config.ts | 0 packages/server/db.ts | 18 + packages/server/index.ts | 27 ++ packages/server/package.json | 13 + packages/server/trpc.ts | 6 + packages/server/tsconfig.json | 111 ++++++ tsconfig.json | 138 +++++-- 38 files changed, 810 insertions(+), 96 deletions(-) create mode 100644 .DS_Store create mode 100644 .dockerignore create mode 100644 docker-compose.yml create mode 100644 lerna.json rename .babelrc => packages/client/.babelrc (100%) create mode 100644 packages/client/Dockerfile rename {components => packages/client/components}/PieCircle.tsx (100%) rename {components => packages/client/components}/index.ts (100%) rename {lib => packages/client/lib}/constants.ts (100%) rename {lib => packages/client/lib}/storage.ts (100%) rename {lib => packages/client/lib}/theme.ts (100%) rename {lib => packages/client/lib}/types.d.ts (100%) rename next-env.d.ts => packages/client/next-env.d.ts (100%) create mode 100644 packages/client/package.json rename {pages => packages/client/pages}/_app.js (100%) rename {pages => packages/client/pages}/index.css (100%) rename {pages => packages/client/pages}/index.tsx (100%) create mode 100644 packages/client/pages/normalize.css create mode 100644 packages/client/screens/.DS_Store rename {screens => packages/client/screens}/Header/Header.tsx (100%) rename {screens => packages/client/screens}/Header/data.ts (100%) rename {screens => packages/client/screens}/Header/index.ts (100%) rename {screens => packages/client/screens}/SpendScreen/SpendScreen.tsx (100%) rename {screens => packages/client/screens}/SpendScreen/index.ts (100%) rename {screens => packages/client/screens}/index.ts (100%) rename tsconfig.eslint.json => packages/client/tsconfig.eslint.json (100%) create mode 100644 packages/client/tsconfig.json rename tsconfig.node.json => packages/client/tsconfig.node.json (100%) create mode 100644 packages/client/tsconfig.node.tsbuildinfo rename vite.config.ts => packages/client/vite.config.ts (100%) create mode 100644 packages/server/db.ts create mode 100644 packages/server/index.ts create mode 100644 packages/server/package.json create mode 100644 packages/server/trpc.ts create mode 100644 packages/server/tsconfig.json diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..09bcf48e3c56a5c2f60ea4cff4da8bcb67c0db82 GIT binary patch literal 8196 zcmeHMO=}ZD7=9;B^U+d_s8GSfLIpjP*wpAngqX&I*KScnrDn4siQVjm>?Ua`#auk; z5AYzK{0E-A3jPI8Lh<6?&}Tl<&TbOyNfc*b=AFzu&->0i?<1 zEi9v%QTRNsQzfNFIGKS@)FhAk)Og?pjVZJlFbWt2i~>dhqkvK1Z%_d5Y+iD6-urUa zv_=7=z<;R#|9!AfxveNWmR9_9pbo&};OM?H;IwH#A??vY9GhB7_~$#AtUkmJ>WI=LcXG#Zx_80Uqb!2y z1G}HxLux+};~bDZzHa!Bu#YDCb9a;akx;5IgDrK2%Fx4)?@;7YU*~!7`OXfoPo8}} zQ?otrEbAV!@Gyjr2BNu1^~HMiXD35jA_{+g64|A<@O)Q$3SwBVRk9mFw+9SedHL-F zOl-az)M_dpxyKi-9lyH%<=!;L{Vk@~K8>?>EW%~T7FikcHm)b}80FZSHLNoVdumOe zoSxSSqm7NPEVYnc%w)6q>~i**-3~@}RF4K>wcdZiKkWp8=S=!_=V7Ng+AUn%3jC2aC*tGP?e8av(1hs*r-_({ z(GxK%&d~1rUf{PdhqascztYGUqre#zSdh3?e*V8d|Nj4s-VDqrU=;Wl6=3O_U8`c{ zlfMCyn@C~6LVb?P3&)M66%;fa!pFsN9QNcNhUi;ruA=N%TFjuBivS^mX^aAYRDoaC CcS+m; literal 0 HcmV?d00001 diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/.gitignore b/.gitignore index 583d0c3..b63ac4f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,9 @@ +.env .husky +.next node_modules package-lock.json -yarn-error.log -yarn.lock -.next pages/normalize.css -pnpm-lock.yaml \ No newline at end of file +pnpm-lock.yaml +yarn-error.log +yarn.lock \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fb740e9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3" +services: + client: + build: + context: ./packages/client + dockerfile: Dockerfile + ports: + - "3000:3000" + volumes: + - ./packages/client:/app + - /app/node_modules + environment: + - NODE_ENV=$NODE_ENV \ No newline at end of file diff --git a/lerna.json b/lerna.json new file mode 100644 index 0000000..f932c1f --- /dev/null +++ b/lerna.json @@ -0,0 +1,7 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "version": "0.0.0", + "packages": [ + "packages/*" + ] +} diff --git a/package.json b/package.json index 8813058..6843282 100644 --- a/package.json +++ b/package.json @@ -1,37 +1,27 @@ { - "name": "spendia", + "name": "spend-ia", + "version": "1.0.0", + "description": "", + "main": "index.js", "private": true, - "version": "0.0.0", - "type": "module", - "scripts.backup": { - "dev": "vite", - "build": "tsc && vite build", - "preview": "vite preview" - }, + "workspaces": [ + "packages/*" + ], "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "next lint", - "husky-prepare": "husky install" + "dev": "npx lerna run dev", + "build": "npx lerna run build" }, + "keywords": [], + "author": "", + "license": "ISC", "dependencies": { - "next": "^13.2.4", - "react": "^18.2.0", - "react-chartjs-2": "^5.2.0", - "react-dom": "^18.2.0", - "react-google-charts": "^4.0.0", - "styled-components": "^5.3.9", - "zustand": "^4.3.7" + "@trpc/client": "^10.33.0", + "@trpc/server": "^10.33.0", + "ts-node": "^10.9.1", + "typescript": "^5.1.6", + "zod": "^3.21.4" }, "devDependencies": { - "@types/node": "18.15.11", - "@types/react": "^18.0.28", - "@types/react-dom": "^18.0.11", - "@types/styled-components": "^5.1.26", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@vitejs/plugin-react": "^3.1.0", - "babel-plugin-styled-components": "^2.0.7", "eslint": "^8.0.1", "eslint-config-prettier": "^8.8.0", "eslint-config-standard-with-typescript": "^34.0.1", @@ -43,6 +33,7 @@ "eslint-plugin-react": "^7.32.2", "eslint-plugin-sort-keys-fix": "^1.1.2", "husky": "^8.0.3", + "lerna": "^7.1.1", "lint-staged": "^13.2.0", "prettier": "^2.8.7", "stylelint": "^15.3.0", @@ -51,43 +42,6 @@ "stylelint-config-styled-components": "^0.1.1", "stylelint-order": "^6.0.3", "stylelint-prettier": "^3.0.0", - "stylelint-processor-styled-components": "^1.10.0", - "typescript": "^5.0.4", - "vite": "^4.2.0" - }, - "resolutions": { - "styled-components": "^5" - }, - "babel": { - "env": { - "development": { - "presets": [ - "next/babel" - ], - "plugins": [ - [ - "styled-components", - { - "ssr": true, - "displayName": true - } - ] - ] - }, - "production": { - "presets": [ - "next/babel" - ], - "plugins": [ - [ - "styled-components", - { - "ssr": true, - "displayName": false - } - ] - ] - } - } + "stylelint-processor-styled-components": "^1.10.0" } } diff --git a/.babelrc b/packages/client/.babelrc similarity index 100% rename from .babelrc rename to packages/client/.babelrc diff --git a/packages/client/Dockerfile b/packages/client/Dockerfile new file mode 100644 index 0000000..3d63d78 --- /dev/null +++ b/packages/client/Dockerfile @@ -0,0 +1,17 @@ + +FROM node:18 + +WORKDIR /app + +COPY package.json ./ + +RUN yarn + +COPY . . + +ENV NODE_ENV=$NODE_ENV + +EXPOSE 3000 + +# CMD print "abc" +CMD sh -c "if [ '$NODE_ENV' = 'development' ]; then yarn dev; else yarn start; fi" diff --git a/components/PieCircle.tsx b/packages/client/components/PieCircle.tsx similarity index 100% rename from components/PieCircle.tsx rename to packages/client/components/PieCircle.tsx diff --git a/components/index.ts b/packages/client/components/index.ts similarity index 100% rename from components/index.ts rename to packages/client/components/index.ts diff --git a/lib/constants.ts b/packages/client/lib/constants.ts similarity index 100% rename from lib/constants.ts rename to packages/client/lib/constants.ts diff --git a/lib/storage.ts b/packages/client/lib/storage.ts similarity index 100% rename from lib/storage.ts rename to packages/client/lib/storage.ts diff --git a/lib/theme.ts b/packages/client/lib/theme.ts similarity index 100% rename from lib/theme.ts rename to packages/client/lib/theme.ts diff --git a/lib/types.d.ts b/packages/client/lib/types.d.ts similarity index 100% rename from lib/types.d.ts rename to packages/client/lib/types.d.ts diff --git a/next-env.d.ts b/packages/client/next-env.d.ts similarity index 100% rename from next-env.d.ts rename to packages/client/next-env.d.ts diff --git a/packages/client/package.json b/packages/client/package.json new file mode 100644 index 0000000..1741e63 --- /dev/null +++ b/packages/client/package.json @@ -0,0 +1,73 @@ +{ + "name": "spendia", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts.backup": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "husky-prepare": "husky install" + }, + "dependencies": { + "next": "^13.2.4", + "react": "^18.2.0", + "react-chartjs-2": "^5.2.0", + "react-dom": "^18.2.0", + "react-google-charts": "^4.0.0", + "styled-components": "^5.3.9", + "zustand": "^4.3.7" + }, + "devDependencies": { + "@types/node": "18.15.11", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@types/styled-components": "^5.1.26", + "@typescript-eslint/eslint-plugin": "^5.43.0", + "@vitejs/plugin-react": "^3.1.0", + "babel-plugin-styled-components": "^2.0.7", + "typescript": "^5.0.4", + "vite": "^4.2.0" + }, + "resolutions": { + "styled-components": "^5" + }, + "babel": { + "env": { + "development": { + "presets": [ + "next/babel" + ], + "plugins": [ + [ + "styled-components", + { + "ssr": true, + "displayName": true + } + ] + ] + }, + "production": { + "presets": [ + "next/babel" + ], + "plugins": [ + [ + "styled-components", + { + "ssr": true, + "displayName": false + } + ] + ] + } + } + } +} diff --git a/pages/_app.js b/packages/client/pages/_app.js similarity index 100% rename from pages/_app.js rename to packages/client/pages/_app.js diff --git a/pages/index.css b/packages/client/pages/index.css similarity index 100% rename from pages/index.css rename to packages/client/pages/index.css diff --git a/pages/index.tsx b/packages/client/pages/index.tsx similarity index 100% rename from pages/index.tsx rename to packages/client/pages/index.tsx diff --git a/packages/client/pages/normalize.css b/packages/client/pages/normalize.css new file mode 100644 index 0000000..0744144 --- /dev/null +++ b/packages/client/pages/normalize.css @@ -0,0 +1,355 @@ +/* stylelint-disable font-family-no-duplicate-names */ +/* stylelint-disable property-no-vendor-prefix */ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type='button']:-moz-focusring, +[type='reset']:-moz-focusring, +[type='submit']:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type='checkbox'], +[type='radio'] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type='search'] { + -webkit-appearance: textfield; /* 1 */ + appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/packages/client/screens/.DS_Store b/packages/client/screens/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d9715921fe17d76b7cdb31e5900d7c9487b4ac2d GIT binary patch literal 6148 zcmeHK!AiqG5S^{1M61x79`^%0*guFRf}R7OwN0sq)`Vd1xe0pp=r{NkeuLme?}C1V zZ+4cNG%2}>$PDbf&FswX%S*^+iO7tW$&hG3L;)IOXB)1;c${0!IzF-sG;WS5<@4Dv zo}`PcmaT!mr~p5^9-Y#ZE-8Uudw#u#_3=d-MdNuoMm%`?c$(dPJs;O|lGdE;s{EcD zVG8O~Oc^*_gGo#i%F)MF^^NK#n={MYULN1?Z-v{2c^Byq%l7OlU(0-V=p3reX$h8R zV4b0NQ)SC(&3R?6hp+qj-lx;Can3T+w%jUDx4t@6Kow90))l~>%@*_p)vE%kfGV(3 zfWHqGjWP6C2)a)PoI3&ly9hf&pU)CpV?Bl*3qg#)jFbYU)c7NYk#fYX&kH>kf>KV# zA3ls<+4vKRajRo~>(a@Dg6dTPRiLWCmRt^a|3BG${;wA4l`5bL{3``aH;SVXZprVh xwVUI;)}mdYv2k7@xGF)%ZN { + const user = { id: String(users.length + 1), ...data }; + users.push(user); + return user; + }, + findById: async (id: string) => users.find((user) => user.id === id), + findMany: async () => users, + }, +}; diff --git a/packages/server/index.ts b/packages/server/index.ts new file mode 100644 index 0000000..5899aff --- /dev/null +++ b/packages/server/index.ts @@ -0,0 +1,27 @@ +import { z } from 'zod'; +import { createHTTPServer } from '@trpc/server/adapters/standalone'; +import { db } from './db'; +import { publicProcedure, router } from './trpc'; +const appRouter = router({ + userById: publicProcedure.input(z.string()).query(async (opts) => { + const { input } = opts; + const user = await db.user.findById(input); + return user; + }), + userCreate: publicProcedure.input(z.object({ name: z.string() })).mutation(async ({ input }) => { + const user = await db.user.create(input); + return user; + }), + userList: publicProcedure.query(async () => { + const users = await db.user.findMany(); + return users; + }), +}); + +const server = createHTTPServer({ + router: appRouter, +}); + +server.listen(3000); + +export type AppRouter = typeof appRouter; diff --git a/packages/server/package.json b/packages/server/package.json new file mode 100644 index 0000000..b4a2fa3 --- /dev/null +++ b/packages/server/package.json @@ -0,0 +1,13 @@ +{ + "name": "@monorepo/server", + "version": "1.0.0", + "description": "", + "main": "index.js", + "devDependencies": {}, + "scripts": { + "dev": "echo 'abc'", + "build": "tsc --build" + }, + "author": "", + "license": "ISC" +} diff --git a/packages/server/trpc.ts b/packages/server/trpc.ts new file mode 100644 index 0000000..0db673e --- /dev/null +++ b/packages/server/trpc.ts @@ -0,0 +1,6 @@ +import { initTRPC } from '@trpc/server'; + +const t = initTRPC.create(); + +export const router = t.router; +export const publicProcedure = t.procedure; diff --git a/packages/server/tsconfig.json b/packages/server/tsconfig.json new file mode 100644 index 0000000..67668e5 --- /dev/null +++ b/packages/server/tsconfig.json @@ -0,0 +1,111 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs" /* Specify what module code is generated. */, + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "include": ["*"] +} diff --git a/tsconfig.json b/tsconfig.json index 6dc728a..20a99e1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,31 +1,115 @@ { "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "preserve", - "incremental": true, - "baseUrl": ".", - "paths": { - "@/*": ["*"] - } + "composite": true, + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs" /* Specify what module code is generated. */, + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "include": ["next-env.d.ts", "pages", "components", "screens", "lib"], - "references": [ - { - "path": "./tsconfig.node.json" - } - ], - "exclude": ["node_modules"] + "include": ["**/*"] + // "references": [ + // { "path": "./packages/client/tsconfig.json" }, + // { "path": "./packages/server/tsconfig.json" } + // ] }