├── src
├── styles.css
├── server.tsx
└── client.tsx
├── public
├── favicon.ico
└── normalize.css
├── vite.config.ts
├── wrangler.json
├── index.html
├── README.md
├── package.json
├── .gitignore
└── tsconfig.json
/src/styles.css:
--------------------------------------------------------------------------------
1 | @import "tailwindcss";
2 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threepointone/partyvite/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import react from "@vitejs/plugin-react";
3 | import { cloudflare } from "@cloudflare/vite-plugin";
4 | import tailwindcss from "@tailwindcss/vite";
5 |
6 | export default defineConfig({
7 | plugins: [react(), cloudflare(), tailwindcss()],
8 | });
9 |
--------------------------------------------------------------------------------
/wrangler.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "my-party-server",
3 | "main": "./src/server.tsx",
4 | "compatibility_date": "2025-02-04",
5 | "compatibility_flags": ["nodejs_compat"],
6 | "assets": {
7 | "directory": "./public"
8 | },
9 | "durable_objects": {
10 | "bindings": [
11 | {
12 | "name": "MyServer",
13 | "class_name": "MyServer"
14 | }
15 | ]
16 | },
17 | "migrations": [
18 | {
19 | "tag": "v1",
20 | "new_classes": ["MyServer"]
21 | }
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Let's Party
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/server.tsx:
--------------------------------------------------------------------------------
1 | import { Connection, Server, routePartykitRequest } from "partyserver";
2 |
3 | type Env = {
4 | MyServer: DurableObjectNamespace;
5 | };
6 |
7 | export class MyServer extends Server {
8 | onMessage(connection: Connection, message: string) {
9 | console.log("message from client:", message);
10 | }
11 | }
12 |
13 | export default {
14 | async fetch(request: Request, env: Env, ctx: ExecutionContext) {
15 | return (
16 | (await routePartykitRequest(request, env)) ||
17 | new Response("Not found", {
18 | status: 404,
19 | })
20 | );
21 | },
22 | } satisfies ExportedHandler;
23 |
--------------------------------------------------------------------------------
/src/client.tsx:
--------------------------------------------------------------------------------
1 | import "./styles.css";
2 | import { createRoot } from "react-dom/client";
3 | import { usePartySocket } from "partysocket/react";
4 | import { useEffect } from "react";
5 |
6 | function App() {
7 | const socket = usePartySocket({
8 | party: "my-server",
9 | room: "room1",
10 | onMessage(message) {
11 | console.log("message from server:", message);
12 | },
13 | });
14 | useEffect(() => {
15 | socket.send("hello from the client!");
16 | }, [socket]);
17 | return (
18 |
19 |
Hello, browser!
20 |
21 | );
22 | }
23 |
24 | const root = createRoot(document.getElementById("root")!);
25 | root.render();
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## partyvite
2 |
3 | A (beta) starter template for 🎈 partyserver ⨉ ⚡️ vite ⨉ ⚛️ react ⨉ 🌊 tailwindcss ⨉ ⛅️ cloudflare workers ⨉ 📦 durable objects
4 |
5 | ```sh
6 | npm create cloudflare@latest -- --template threepointone/partyvite
7 | ```
8 |
9 | ## what next?
10 |
11 | - change the name of the package (in `package.json`)
12 | - change the name of the worker (in `wrangler.json`)
13 | - change the title of the page in `index.html`
14 |
15 | ## other versions:
16 |
17 | - Vue, by [Francisco Hermida](https://x.com/FranciscoHPro) at https://github.com/franciscohermida/partyvite-vue
18 | - `npm create cloudflare@latest -- --template franciscohermida/partyvite-vue`
19 | - Svelte, by [Josh Nussbaum](https://bsky.app/profile/joshnuss.com) at https://github.com/joshnuss/partyvite-svelte
20 | - `npm create cloudflare@latest -- --template joshnuss/partyvite-svelte`
21 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "partyvite-starter",
3 | "version": "0.0.0",
4 | "type": "module",
5 | "scripts": {
6 | "start": "vite dev",
7 | "deploy": "rm -rf dist && vite build && wrangler deploy",
8 | "check": "tsc"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "ISC",
13 | "description": "partyserver (x) vite",
14 | "devDependencies": {
15 | "@cloudflare/vite-plugin": "^1.0.4",
16 | "@cloudflare/workers-types": "^4.20250409.0",
17 | "@tailwindcss/vite": "^4.1.3",
18 | "@types/react": "^19.1.0",
19 | "@types/react-dom": "^19.1.2",
20 | "@vitejs/plugin-react": "^4.3.4",
21 | "tailwindcss": "^4.1.3",
22 | "typescript": "^5.8.3",
23 | "vite": "^6.2.5",
24 | "wrangler": "^4.9.1"
25 | },
26 | "dependencies": {
27 | "partyserver": "^0.0.66",
28 | "partysocket": "^1.1.3",
29 | "react": "^19.1.0",
30 | "react-dom": "^19.1.0"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Runtime data
14 | pids
15 | *.pid
16 | *.seed
17 | *.pid.lock
18 |
19 | # Directory for instrumented libs generated by jscoverage/JSCover
20 | lib-cov
21 |
22 | # Coverage directory used by tools like istanbul
23 | coverage
24 | *.lcov
25 |
26 | # nyc test coverage
27 | .nyc_output
28 |
29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 | .grunt
31 |
32 | # Bower dependency directory (https://bower.io/)
33 | bower_components
34 |
35 | # node-waf configuration
36 | .lock-wscript
37 |
38 | # Compiled binary addons (https://nodejs.org/api/addons.html)
39 | build/Release
40 |
41 | # Dependency directories
42 | node_modules/
43 | jspm_packages/
44 |
45 | # Snowpack dependency directory (https://snowpack.dev/)
46 | web_modules/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional stylelint cache
58 | .stylelintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variable files
76 | .env
77 | .env.development.local
78 | .env.test.local
79 | .env.production.local
80 | .env.local
81 |
82 | # parcel-bundler cache (https://parceljs.org/)
83 | .cache
84 | .parcel-cache
85 |
86 | # Next.js build output
87 | .next
88 | out
89 |
90 | # Nuxt.js build / generate output
91 | .nuxt
92 | dist
93 |
94 | # Gatsby files
95 | .cache/
96 | # Comment in the public line in if your project uses Gatsby and not Next.js
97 | # https://nextjs.org/blog/next-9-1#public-directory-support
98 | # public
99 |
100 | # vuepress build output
101 | .vuepress/dist
102 |
103 | # vuepress v2.x temp and cache directory
104 | .temp
105 | .cache
106 |
107 | # vitepress build output
108 | **/.vitepress/dist
109 |
110 | # vitepress cache directory
111 | **/.vitepress/cache
112 |
113 | # Docusaurus cache and generated files
114 | .docusaurus
115 |
116 | # Serverless directories
117 | .serverless/
118 |
119 | # FuseBox cache
120 | .fusebox/
121 |
122 | # DynamoDB Local files
123 | .dynamodb/
124 |
125 | # TernJS port file
126 | .tern-port
127 |
128 | # Stores VSCode versions used for testing VSCode extensions
129 | .vscode-test
130 |
131 | # yarn v2
132 | .yarn/cache
133 | .yarn/unplugged
134 | .yarn/build-state.yml
135 | .yarn/install-state.gz
136 | .pnp.*
137 |
138 |
139 | .wrangler
140 | .dev.vars
141 |
142 |
143 | .DS_Store
144 |
--------------------------------------------------------------------------------
/public/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
2 |
3 | /* Document
4 | ========================================================================== */
5 |
6 | /**
7 | * 1. Correct the line height in all browsers.
8 | * 2. Prevent adjustments of font size after orientation changes in iOS.
9 | */
10 |
11 | html {
12 | line-height: 1.15; /* 1 */
13 | -webkit-text-size-adjust: 100%; /* 2 */
14 | }
15 |
16 | /* Sections
17 | ========================================================================== */
18 |
19 | /**
20 | * Remove the margin in all browsers.
21 | */
22 |
23 | body {
24 | margin: 0;
25 | }
26 |
27 | /**
28 | * Render the `main` element consistently in IE.
29 | */
30 |
31 | main {
32 | display: block;
33 | }
34 |
35 | /**
36 | * Correct the font size and margin on `h1` elements within `section` and
37 | * `article` contexts in Chrome, Firefox, and Safari.
38 | */
39 |
40 | h1 {
41 | font-size: 2em;
42 | margin: 0.67em 0;
43 | }
44 |
45 | /* Grouping content
46 | ========================================================================== */
47 |
48 | /**
49 | * 1. Add the correct box sizing in Firefox.
50 | * 2. Show the overflow in Edge and IE.
51 | */
52 |
53 | hr {
54 | box-sizing: content-box; /* 1 */
55 | height: 0; /* 1 */
56 | overflow: visible; /* 2 */
57 | }
58 |
59 | /**
60 | * 1. Correct the inheritance and scaling of font size in all browsers.
61 | * 2. Correct the odd `em` font sizing in all browsers.
62 | */
63 |
64 | pre {
65 | font-family: monospace, monospace; /* 1 */
66 | font-size: 1em; /* 2 */
67 | }
68 |
69 | /* Text-level semantics
70 | ========================================================================== */
71 |
72 | /**
73 | * Remove the gray background on active links in IE 10.
74 | */
75 |
76 | a {
77 | background-color: transparent;
78 | }
79 |
80 | /**
81 | * 1. Remove the bottom border in Chrome 57-
82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
83 | */
84 |
85 | abbr[title] {
86 | border-bottom: none; /* 1 */
87 | text-decoration: underline; /* 2 */
88 | text-decoration: underline dotted; /* 2 */
89 | }
90 |
91 | /**
92 | * Add the correct font weight in Chrome, Edge, and Safari.
93 | */
94 |
95 | b,
96 | strong {
97 | font-weight: bolder;
98 | }
99 |
100 | /**
101 | * 1. Correct the inheritance and scaling of font size in all browsers.
102 | * 2. Correct the odd `em` font sizing in all browsers.
103 | */
104 |
105 | code,
106 | kbd,
107 | samp {
108 | font-family: monospace, monospace; /* 1 */
109 | font-size: 1em; /* 2 */
110 | }
111 |
112 | /**
113 | * Add the correct font size in all browsers.
114 | */
115 |
116 | small {
117 | font-size: 80%;
118 | }
119 |
120 | /**
121 | * Prevent `sub` and `sup` elements from affecting the line height in
122 | * all browsers.
123 | */
124 |
125 | sub,
126 | sup {
127 | font-size: 75%;
128 | line-height: 0;
129 | position: relative;
130 | vertical-align: baseline;
131 | }
132 |
133 | sub {
134 | bottom: -0.25em;
135 | }
136 |
137 | sup {
138 | top: -0.5em;
139 | }
140 |
141 | /* Embedded content
142 | ========================================================================== */
143 |
144 | /**
145 | * Remove the border on images inside links in IE 10.
146 | */
147 |
148 | img {
149 | border-style: none;
150 | }
151 |
152 | /* Forms
153 | ========================================================================== */
154 |
155 | /**
156 | * 1. Change the font styles in all browsers.
157 | * 2. Remove the margin in Firefox and Safari.
158 | */
159 |
160 | button,
161 | input,
162 | optgroup,
163 | select,
164 | textarea {
165 | font-family: inherit; /* 1 */
166 | font-size: 100%; /* 1 */
167 | line-height: 1.15; /* 1 */
168 | margin: 0; /* 2 */
169 | }
170 |
171 | /**
172 | * Show the overflow in IE.
173 | * 1. Show the overflow in Edge.
174 | */
175 |
176 | button,
177 | input {
178 | /* 1 */
179 | overflow: visible;
180 | }
181 |
182 | /**
183 | * Remove the inheritance of text transform in Edge, Firefox, and IE.
184 | * 1. Remove the inheritance of text transform in Firefox.
185 | */
186 |
187 | button,
188 | select {
189 | /* 1 */
190 | text-transform: none;
191 | }
192 |
193 | /**
194 | * Correct the inability to style clickable types in iOS and Safari.
195 | */
196 |
197 | button,
198 | [type="button"],
199 | [type="reset"],
200 | [type="submit"] {
201 | -webkit-appearance: button;
202 | }
203 |
204 | /**
205 | * Remove the inner border and padding in Firefox.
206 | */
207 |
208 | button::-moz-focus-inner,
209 | [type="button"]::-moz-focus-inner,
210 | [type="reset"]::-moz-focus-inner,
211 | [type="submit"]::-moz-focus-inner {
212 | border-style: none;
213 | padding: 0;
214 | }
215 |
216 | /**
217 | * Restore the focus styles unset by the previous rule.
218 | */
219 |
220 | button:-moz-focusring,
221 | [type="button"]:-moz-focusring,
222 | [type="reset"]:-moz-focusring,
223 | [type="submit"]:-moz-focusring {
224 | outline: 1px dotted ButtonText;
225 | }
226 |
227 | /**
228 | * Correct the padding in Firefox.
229 | */
230 |
231 | fieldset {
232 | padding: 0.35em 0.75em 0.625em;
233 | }
234 |
235 | /**
236 | * 1. Correct the text wrapping in Edge and IE.
237 | * 2. Correct the color inheritance from `fieldset` elements in IE.
238 | * 3. Remove the padding so developers are not caught out when they zero out
239 | * `fieldset` elements in all browsers.
240 | */
241 |
242 | legend {
243 | box-sizing: border-box; /* 1 */
244 | color: inherit; /* 2 */
245 | display: table; /* 1 */
246 | max-width: 100%; /* 1 */
247 | padding: 0; /* 3 */
248 | white-space: normal; /* 1 */
249 | }
250 |
251 | /**
252 | * Add the correct vertical alignment in Chrome, Firefox, and Opera.
253 | */
254 |
255 | progress {
256 | vertical-align: baseline;
257 | }
258 |
259 | /**
260 | * Remove the default vertical scrollbar in IE 10+.
261 | */
262 |
263 | textarea {
264 | overflow: auto;
265 | }
266 |
267 | /**
268 | * 1. Add the correct box sizing in IE 10.
269 | * 2. Remove the padding in IE 10.
270 | */
271 |
272 | [type="checkbox"],
273 | [type="radio"] {
274 | box-sizing: border-box; /* 1 */
275 | padding: 0; /* 2 */
276 | }
277 |
278 | /**
279 | * Correct the cursor style of increment and decrement buttons in Chrome.
280 | */
281 |
282 | [type="number"]::-webkit-inner-spin-button,
283 | [type="number"]::-webkit-outer-spin-button {
284 | height: auto;
285 | }
286 |
287 | /**
288 | * 1. Correct the odd appearance in Chrome and Safari.
289 | * 2. Correct the outline style in Safari.
290 | */
291 |
292 | [type="search"] {
293 | -webkit-appearance: textfield; /* 1 */
294 | outline-offset: -2px; /* 2 */
295 | }
296 |
297 | /**
298 | * Remove the inner padding in Chrome and Safari on macOS.
299 | */
300 |
301 | [type="search"]::-webkit-search-decoration {
302 | -webkit-appearance: none;
303 | }
304 |
305 | /**
306 | * 1. Correct the inability to style clickable types in iOS and Safari.
307 | * 2. Change font properties to `inherit` in Safari.
308 | */
309 |
310 | ::-webkit-file-upload-button {
311 | -webkit-appearance: button; /* 1 */
312 | font: inherit; /* 2 */
313 | }
314 |
315 | /* Interactive
316 | ========================================================================== */
317 |
318 | /*
319 | * Add the correct display in Edge, IE 10+, and Firefox.
320 | */
321 |
322 | details {
323 | display: block;
324 | }
325 |
326 | /*
327 | * Add the correct display in all browsers.
328 | */
329 |
330 | summary {
331 | display: list-item;
332 | }
333 |
334 | /* Misc
335 | ========================================================================== */
336 |
337 | /**
338 | * Add the correct display in IE 10+.
339 | */
340 |
341 | template {
342 | display: none;
343 | }
344 |
345 | /**
346 | * Add the correct display in IE 10.
347 | */
348 |
349 | [hidden] {
350 | display: none;
351 | }
352 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | /* Visit https://aka.ms/tsconfig to read more about this file */
4 |
5 | /* Projects */
6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12 |
13 | /* Language and Environment */
14 | "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
15 | "lib": [
16 | "ESNext",
17 | "DOM"
18 | ] /* Specify a set of bundled library declaration files that describe the target runtime environment. */,
19 | "jsx": "react-jsx" /* Specify what JSX code is generated. */,
20 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
21 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
22 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
23 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
24 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
25 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
26 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
27 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
28 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
29 |
30 | /* Modules */
31 | "module": "ESNext" /* Specify what module code is generated. */,
32 | // "rootDir": "./", /* Specify the root folder within your source files. */
33 | "moduleResolution": "bundler" /* Specify how TypeScript looks up a file from a given module specifier. */,
34 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
35 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
36 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
37 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
38 | "types": [
39 | "vite/client",
40 | "@cloudflare/workers-types"
41 | ] /* Specify type package names to be included without being referenced in a source file. */,
42 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
43 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
44 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
45 | // "rewriteRelativeImportExtensions": true, /* Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files. */
46 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
47 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
48 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
49 | // "noUncheckedSideEffectImports": true, /* Check side effect imports. */
50 | // "resolveJsonModule": true, /* Enable importing .json files. */
51 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
52 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */
53 |
54 | /* JavaScript Support */
55 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
56 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
57 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
58 |
59 | /* Emit */
60 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
61 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */
62 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
63 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
64 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
65 | "noEmit": true /* Disable emitting files from a compilation. */,
66 | // "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. */
67 | // "outDir": "./", /* Specify an output folder for all emitted files. */
68 | // "removeComments": true, /* Disable emitting comments. */
69 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
70 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
71 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
72 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
73 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
74 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
75 | // "newLine": "crlf", /* Set the newline character for emitting files. */
76 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
77 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
78 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
79 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
80 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
81 |
82 | /* Interop Constraints */
83 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
84 | // "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. */
85 | // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */
86 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
87 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
88 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
89 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
90 |
91 | /* Type Checking */
92 | "strict": true /* Enable all strict type-checking options. */,
93 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
94 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
95 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
96 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
97 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
98 | // "strictBuiltinIteratorReturn": true, /* Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'. */
99 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
100 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
101 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
102 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
103 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
104 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
105 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
106 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
107 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
108 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
109 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
110 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
111 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
112 |
113 | /* Completeness */
114 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
115 | "skipLibCheck": true /* Skip type checking all .d.ts files. */
116 | }
117 | }
118 |
--------------------------------------------------------------------------------