Skip to content

Commit 0084d7e

Browse files
committed
v4.1.0
1 parent 58be293 commit 0084d7e

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

packages/typed-binary/README.md

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<div align="center">
2+
3+
![typed binary (light mode)](/docs/media/logo-light.svg)
4+
5+
Describe binary structures with full TypeScript support.
6+
7+
[Website](https://iwoplaza.github.io/typed-binary)[Documentation](https://iwoplaza.github.io/typed-binary/guides/getting-started)
8+
9+
![Basic Type and Documentation Inference](/docs/media/code-showcase-light.svg)
10+
11+
<!-- https://ray.so/#code=aW1wb3J0IGJpbiBmcm9tICd0eXBlZC1iaW5hcnknOwoKLyogREVGSU5FICovCgpjb25zdCBWZWMzZiA9IGJpbi50dXBsZU9mKFtiaW4uZjMyLCBiaW4uZjMyLCBiaW4uZjMyXSk7CmNvbnN0IFBsYXllciA9IGJpbi5vYmplY3QoewogIG5hbWU6IGJpbi5zdHJpbmcsCiAgcG9zaXRpb246IFZlYzNmLAp9KTsKCnR5cGUgUGxheWVyID0gYmluLlBhcnNlZDx0eXBlb2YgUGxheWVyPjsKLy8gICBePyB7IG5hbWU6IHN0cmluZywgcG9zaXRpb246IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB9CgovKiBXUklURSAqLwoKY29uc3QgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKFBsYXllci5tYXhTaXplKTsKY29uc3Qgd3JpdGVyID0gbmV3IGJpbi5CdWZmZXJXcml0ZXIoYnVmZmVyKTsKClBsYXllci53cml0ZSh3cml0ZXIsIHsKICBuYW1lOiAiSm9obiIsCiAgLy8gRVJST1I6IEV4cGVjdGVkIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSwgZ290IFtudW1iZXIsIG51bWJlcl0KICBwb3NpdGlvbjogWzEsIDJdLAp9KTsKCi8qIFJFQUQgKi8KCmNvbnN0IHJlYWRlciA9IG5ldyBiaW4uQnVmZmVyUmVhZGVyKGJ1ZmZlcik7CmNvbnN0IHBsYXllciA9IFBsYXllci5yZWFkKHJlYWRlcik7Ci8vICAgIF4_IHsgbmFtZTogc3RyaW5nLCBwb3NpdGlvbjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIH0&language=typescript&title=main.ts&theme=raindrop&padding=16&width=710&background=false&darkMode=true -->
12+
13+
</div>
14+
15+
# Why Typed Binary?
16+
17+
Serialize and deserialize typed schemas without the need for redundant interfaces or an external DSL. Schemas themselves define what type they encode and decode, and **the IDE knows it**!
18+
19+
- Since value types are inferred from the schemas themselves, there is a **single source-of-truth**.
20+
- No external DSL necessary to define the schemas, meaning you have instant feedback without the need to compile the interface definitions.
21+
- It's platform independent (use it in Node.js as well as in in Browsers)
22+
- While being made with TypeScript in mind, it also works in plain JavaScript.
23+
24+
# Documentation
25+
26+
The [typed binary documentation](https://iwoplaza.github.io/typed-binary/guides/getting-started) is a great starting point for learning how to use the library.
27+
28+
# Installation
29+
30+
```sh
31+
# using npm
32+
npm install typed-binary
33+
34+
# using pnpm
35+
pnpm add typed-binary
36+
37+
# using yarn
38+
yarn add typed-binary
39+
```
40+
41+
> To properly enable type inference, **TypeScript 4.5** and up is required because of it's newly added [Tail-Recursion Elimination on Conditional Types](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#tail-recursion-elimination-on-conditional-types) feature,
42+
43+
# Running examples
44+
45+
There are a handful of examples provided. To run any one of them make sure to clone the [typed-binary](https://github.com/iwoplaza/typed-binary) repository first, then go into the `examples/` directory. To setup the examples environment, run `pnpm install`, which will fetch dependencies, build the parent project and link it to the 'examples' project.
46+
47+
Pick an example that peaks interest, and run `pnpm example:exampleName`.

packages/typed-binary/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "typed-binary",
3-
"version": "4.0.1",
3+
"version": "4.1.0",
44
"description": "Describe binary structures with full TypeScript support. Encode and decode into pure JavaScript objects.",
55
"packageManager": "[email protected]+sha256.691fe176eea9a8a80df20e4976f3dfb44a04841ceb885638fe2a26174f81e65e",
66
"type": "module",

0 commit comments

Comments
 (0)