Skip to content

Latest commit

 

History

History
110 lines (69 loc) · 3.64 KB

README.md

File metadata and controls

110 lines (69 loc) · 3.64 KB

npm version Deno

Licence

@rimbu/table

Welcome to @rimbu/table! A Table is an immutable 2-dimensional Map, containing row keys and column keys, where a combination of a row and column key can contain one value. This structure is ideal for scenarios where you need to manage data in a grid-like format.

Key Features:

  • Immutable Structure: Ensures data integrity by preventing modifications to the original table.
  • 2-Dimensional Mapping: Efficiently map combinations of row and column keys to values.
  • Flexible and Type-Safe: Supports generic and type-variant tables for robust type safety.

Exported Types:

Name Description
Table<R, C, V> A generic Table with row keys of type R, column keys of type C, and values of type V.
VariantTable<R, C, V> A type-variant Table with row keys of type R, column keys of type C, and values of type V.

Documentation

For complete documentation, please visit the Table page in the Rimbu Docs, or directly explore the Rimbu Table API Docs.

Try It Out

Experience @rimbu/table in action! Try Out Rimbu on CodeSandBox.

Installation

Compabitity

Package Managers

Yarn:

yarn add @rimbu/table

npm:

npm install @rimbu/table

Bun:

bun add @rimbu/table

Deno Setup

Create or edit import_map.json in your project root:

{
  "imports": {
    "@rimbu/": "https://deno.land/x/rimbu@x.y.z/"
  }
}

Replace x.y.z with the desired version.

In this way you can use relative imports from Rimbu in your code, like so:

import { List } from '@rimbu/core/mod.ts';
import { HashMap } from '@rimbu/hashed/mod.ts';

Note that for sub-packages, due to conversion limitations it is needed to import the index.ts instead of mod.ts, like so:

import { HashMap } from '@rimbu/hashed/map/index.ts';

To run your script (let's assume the entry point is in src/main.ts):

deno run --import-map import_map.json src/main.ts

Author

Created and maintained by Arvid Nicolaas.

Contributing

We welcome contributions! Please read our Contributing guide.

Contributors

Made with contributors-img.

License

This project is licensed under the MIT License. See the LICENSE for details.