├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── .prettierignore ├── .prettierrc.cjs ├── LICENSE ├── README.md ├── docs └── pattern-fan-in.md ├── examples ├── concurrent-prime-sieve │ ├── .gitignore │ ├── go.mod │ ├── index.js │ ├── main.go │ ├── main_test.go │ └── package.json ├── javascript-mixing-promises-and-channels │ ├── .gitignore │ ├── index.js │ └── package.json ├── pattern-fan-in-multiplex-log-streams │ ├── .gitignore │ ├── README.md │ ├── benchmark_test.go │ ├── go.mod │ ├── index.js │ └── package.json ├── simple-http-benchmark │ ├── README.md │ ├── deno-server-baseline │ │ ├── .gitignore │ │ ├── deno.json │ │ └── main.ts │ ├── deno-server-ping-pong │ │ ├── .gitignore │ │ ├── deno.json │ │ └── main.ts │ ├── go-server-baseline │ │ ├── go.mod │ │ └── main.go │ ├── go-server-ping-pong │ │ ├── go.mod │ │ └── main.go │ ├── node-server-baseline │ │ ├── .gitignore │ │ ├── index.js │ │ └── package.json │ └── node-server-ping-pong │ │ ├── .gitignore │ │ ├── index.js │ │ └── package.json └── umd-browser-debug │ ├── browser-concurrent-prime-seive-test.html │ ├── browser-mix-promises-test.html │ ├── browser.html │ ├── web-worker.html │ └── worker.js ├── jest.config.cjs ├── package.json ├── src ├── buffer.ts ├── case.ts ├── chan.ts ├── index.ts ├── math.ts ├── protocol.ts ├── select-factory.ts ├── select.ts ├── setImmediatePolyfill.ts └── yield.ts ├── test ├── buffer.test.ts ├── chan.test.ts ├── math.test.ts ├── protocol.test.ts ├── select-factory.test.ts └── select.test.ts └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/.editorconfig -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/.eslintignore -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/gts/" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ...require('gts/.prettierrc.json') 3 | } 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/README.md -------------------------------------------------------------------------------- /docs/pattern-fan-in.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/docs/pattern-fan-in.md -------------------------------------------------------------------------------- /examples/concurrent-prime-sieve/.gitignore: -------------------------------------------------------------------------------- 1 | /package-lock.json 2 | -------------------------------------------------------------------------------- /examples/concurrent-prime-sieve/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/concurrent-prime-sieve/go.mod -------------------------------------------------------------------------------- /examples/concurrent-prime-sieve/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/concurrent-prime-sieve/index.js -------------------------------------------------------------------------------- /examples/concurrent-prime-sieve/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/concurrent-prime-sieve/main.go -------------------------------------------------------------------------------- /examples/concurrent-prime-sieve/main_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/concurrent-prime-sieve/main_test.go -------------------------------------------------------------------------------- /examples/concurrent-prime-sieve/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/concurrent-prime-sieve/package.json -------------------------------------------------------------------------------- /examples/javascript-mixing-promises-and-channels/.gitignore: -------------------------------------------------------------------------------- 1 | /package-lock.json 2 | -------------------------------------------------------------------------------- /examples/javascript-mixing-promises-and-channels/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/javascript-mixing-promises-and-channels/index.js -------------------------------------------------------------------------------- /examples/javascript-mixing-promises-and-channels/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/javascript-mixing-promises-and-channels/package.json -------------------------------------------------------------------------------- /examples/pattern-fan-in-multiplex-log-streams/.gitignore: -------------------------------------------------------------------------------- 1 | /package-lock.json 2 | -------------------------------------------------------------------------------- /examples/pattern-fan-in-multiplex-log-streams/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/pattern-fan-in-multiplex-log-streams/README.md -------------------------------------------------------------------------------- /examples/pattern-fan-in-multiplex-log-streams/benchmark_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/pattern-fan-in-multiplex-log-streams/benchmark_test.go -------------------------------------------------------------------------------- /examples/pattern-fan-in-multiplex-log-streams/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/pattern-fan-in-multiplex-log-streams/go.mod -------------------------------------------------------------------------------- /examples/pattern-fan-in-multiplex-log-streams/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/pattern-fan-in-multiplex-log-streams/index.js -------------------------------------------------------------------------------- /examples/pattern-fan-in-multiplex-log-streams/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/pattern-fan-in-multiplex-log-streams/package.json -------------------------------------------------------------------------------- /examples/simple-http-benchmark/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/README.md -------------------------------------------------------------------------------- /examples/simple-http-benchmark/deno-server-baseline/.gitignore: -------------------------------------------------------------------------------- 1 | /deno.lock 2 | -------------------------------------------------------------------------------- /examples/simple-http-benchmark/deno-server-baseline/deno.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/deno-server-baseline/deno.json -------------------------------------------------------------------------------- /examples/simple-http-benchmark/deno-server-baseline/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/deno-server-baseline/main.ts -------------------------------------------------------------------------------- /examples/simple-http-benchmark/deno-server-ping-pong/.gitignore: -------------------------------------------------------------------------------- 1 | /deno.lock 2 | -------------------------------------------------------------------------------- /examples/simple-http-benchmark/deno-server-ping-pong/deno.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/deno-server-ping-pong/deno.json -------------------------------------------------------------------------------- /examples/simple-http-benchmark/deno-server-ping-pong/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/deno-server-ping-pong/main.ts -------------------------------------------------------------------------------- /examples/simple-http-benchmark/go-server-baseline/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/go-server-baseline/go.mod -------------------------------------------------------------------------------- /examples/simple-http-benchmark/go-server-baseline/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/go-server-baseline/main.go -------------------------------------------------------------------------------- /examples/simple-http-benchmark/go-server-ping-pong/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/go-server-ping-pong/go.mod -------------------------------------------------------------------------------- /examples/simple-http-benchmark/go-server-ping-pong/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/go-server-ping-pong/main.go -------------------------------------------------------------------------------- /examples/simple-http-benchmark/node-server-baseline/.gitignore: -------------------------------------------------------------------------------- 1 | /package-lock.json 2 | -------------------------------------------------------------------------------- /examples/simple-http-benchmark/node-server-baseline/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/node-server-baseline/index.js -------------------------------------------------------------------------------- /examples/simple-http-benchmark/node-server-baseline/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/node-server-baseline/package.json -------------------------------------------------------------------------------- /examples/simple-http-benchmark/node-server-ping-pong/.gitignore: -------------------------------------------------------------------------------- 1 | /package-lock.json 2 | -------------------------------------------------------------------------------- /examples/simple-http-benchmark/node-server-ping-pong/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/node-server-ping-pong/index.js -------------------------------------------------------------------------------- /examples/simple-http-benchmark/node-server-ping-pong/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/simple-http-benchmark/node-server-ping-pong/package.json -------------------------------------------------------------------------------- /examples/umd-browser-debug/browser-concurrent-prime-seive-test.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/umd-browser-debug/browser-concurrent-prime-seive-test.html -------------------------------------------------------------------------------- /examples/umd-browser-debug/browser-mix-promises-test.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/umd-browser-debug/browser-mix-promises-test.html -------------------------------------------------------------------------------- /examples/umd-browser-debug/browser.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/umd-browser-debug/browser.html -------------------------------------------------------------------------------- /examples/umd-browser-debug/web-worker.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/umd-browser-debug/web-worker.html -------------------------------------------------------------------------------- /examples/umd-browser-debug/worker.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/examples/umd-browser-debug/worker.js -------------------------------------------------------------------------------- /jest.config.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/jest.config.cjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/package.json -------------------------------------------------------------------------------- /src/buffer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/buffer.ts -------------------------------------------------------------------------------- /src/case.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/case.ts -------------------------------------------------------------------------------- /src/chan.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/chan.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/math.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/math.ts -------------------------------------------------------------------------------- /src/protocol.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/protocol.ts -------------------------------------------------------------------------------- /src/select-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/select-factory.ts -------------------------------------------------------------------------------- /src/select.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/select.ts -------------------------------------------------------------------------------- /src/setImmediatePolyfill.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/setImmediatePolyfill.ts -------------------------------------------------------------------------------- /src/yield.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/src/yield.ts -------------------------------------------------------------------------------- /test/buffer.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/test/buffer.test.ts -------------------------------------------------------------------------------- /test/chan.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/test/chan.test.ts -------------------------------------------------------------------------------- /test/math.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/test/math.test.ts -------------------------------------------------------------------------------- /test/protocol.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/test/protocol.test.ts -------------------------------------------------------------------------------- /test/select-factory.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/test/select-factory.test.ts -------------------------------------------------------------------------------- /test/select.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/test/select.test.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joeycumines/ts-chan/HEAD/tsconfig.json --------------------------------------------------------------------------------