A Node.js Implementation of the Cloudflare Socket API
npm install @arrowood.dev/socketA Node.js Implementation of the Cloudflare Socket API
```
npm i @arrowood.dev/socket
Requirements:
- Node.js v18.x
- pnpm v8.6.12 (recommend using corepack)
The formatting, linting, and typechecking of this repo are based off of @vercel/style-guide.
This project uses TypeScript for building. This must be manually executed using:
`sh`
pnpm build
Output will be in the dist folder.
This project uses prettier for formatting. Code is formatted automatically when you commit, and you can run the formatter manually using:
`sh`
pnpm format
All files (except those listed in .prettierignore) will be formatted.
Prettier is configured by .prettierrc.js. It is based on @vercel/style-guide/prettier.
This project uses eslint for linting. Code is linted automatically when you commit, and you can run the linter manually using:
`sh`
pnpm lint
All files (except those listed in .eslintignore) will be linted.
ESLint is configured by .eslintrc.js. It is based on @vercel/style-guide/eslint/node
This project uses node-tap for testing. Run tests using:
`sh`
pnpm test
Only test files matching the pattern test/*.test.ts will be executed.
Testing utility functions should be stored in test/utils.ts and be well documented.
To manually type-check the repo without producing a build, use:
`sh`
pnpm type-check
This project uses TypeScript. There exists multiple TypeScript config files; each serves a different purpose.
- tsconfig.base.json
- The base configuration, itself based on @vercel/style-guide/typescript.
- It does not _include_ any files as it is meant to be extended from.
- tsconfig.json
- The default configuration.
- Used by various tools such as eslint, the test command, and the type-check` command.src
- Includes all TypeScript files in the repo.
- Does not output anything.
- tsconfig.build.json
- The build configuration.
- Only includes the directorybuild` command to output JavaScript
- Used by the