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 buildOutput 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 formatAll 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 lintAll 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 testOnly 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-checkThis 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
testcommand, 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
srcdirectory - Used by the
buildcommand to output JavaScript