Skip to content

Commit 4de4e93

Browse files
committed
Add definitions and links
1 parent 69d0978 commit 4de4e93

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

README.md

+18-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,18 @@
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

Comments
 (0)