|
1 |
| -# NativeContracts |
2 |
| -JavaScript Native Contracts |
| 1 | +# JavaScript Native Contracts |
| 2 | + |
| 3 | +- [**Callable**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/0-callable.js) — Any value that can be invoked with `()` operator |
| 4 | +- **Function** — Callable object, with optional `this` binding or arrow |
| 5 | +- **AsyncFunction** — Promise-returning `Function` |
| 6 | +- [**Callback**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/1-callback.js) — A function passed to another function to be called later |
| 7 | +- **Callback-last-error-first** — Callback contract or convention `(error, result)` signature, where `error` is `Error | null`, and `result` is returned if no error |
| 8 | +- [**Thenable**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/3-thenable.js) — Any object with a `.then(fn)` method |
| 9 | +- [**Promise**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/4-promise.js) — Thenable with `then`, `catch`, and `finally` |
| 10 | +- [**Iterable**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/5-iterable.js) — Has `[Symbol.iterator]()` that returns an `Iterator` |
| 11 | +- [**AsyncIterable**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/6-async.js) — Has `[Symbol.asyncIterator]()` that returns an `AsyncIterator` |
| 12 | +- **Iterator** — Has `.next()` returning `{ value, done }` structure |
| 13 | +- [**Generator**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/7-generator.js) — A function producing an `Iterator` (sync or async), supporting `next()`, `throw()`, `return()` |
| 14 | +- [**Array-like**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/8-array-like.js) — Object with indexed keys `0`, `1`, ... and numeric `.length`, but no array methods |
| 15 | +- [**Observable**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/9-observable.js) — Push-based data sours available for subscription |
| 16 | +- **EventTarget** — DOM standard interface with `.addEventListener(event, handler)` |
| 17 | +- **EventEmitter** — Node.js style event emitter with `.on(event, handler)` and `.emit(event, ...args)` |
| 18 | +- [**Stream**](https://github.com/HowProgrammingWorks/NativeContracts/tree/main/JavaScript/a-stream.js) — Abstraction for flow (readable/writable/duplex) with backpressure support |
0 commit comments