A Node.js Implementation of connect()
, the TCP Socket API proposed within WinterCG, and implemented in Cloudflare Workers.
You can use this to provide the connect()
API in a Node.js environment.
If you need to provide an interface similar to net.connect()
or tls.connect()
from Node.js, from an environment, where only the proposed Socket API is available, pg-cloudflare
provides such an interface.
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:
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:
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:
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:
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:
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. - Includes all TypeScript files in the repo.
- Does not output anything.
- tsconfig.build.json
- The build configuration.
- Only includes the
src
directory - Used by the
build
command to output JavaScript