Skip to main content
Module

x/rimbu/ordered/README.md

Rimbu is a TypeScript library focused on immutable, performant, and type-safe collections and other tools.
Go to Latest
File

@rimbu/ordered

This packages contains an implementation of OrderedMap and OrderedSet, which are wrappers around other RMap and RSet implementations, and that add the capability to remember insertion order. Iterating over the collections will return the values in this insertion order.

This package exports the following types:

Name Description
OrderedMap<K, V> a map with entries of key type K and value type V, where key insertion order is maintained
OrderedSet<T> a set of value type T where insertion order is maintained

For complete documentation please visit the Rimbu Docs.

Or Try Me Out in CodeSandBox.

Installation

All types are exported through @rimbu/core. It is recommended to use that package.

To install separately:

Yarn/NPM

yarn add @rimbu/ordered

or

npm i @rimbu/ordered

Deno

Create a file called rimbu.ts and add the following:

export * from 'https://deno.land/x/rimbu/ordered/mod.ts';

Or using a pinned version (x.y.z):

export * from 'https://deno.land/x/rimbu/ordered@x.y.z/mod.ts';

Then import what you need from rimbu.ts:

import { OrderedMap } from './rimbu.ts';

Because Rimbu uses complex types, it’s recommended to use the --no-check flag (your editor should already have checked your code) and to specify a tsconfig.json file with the settings described below.

Running your script then becomes:

deno run --no-check --config tsconfig.json <your-script>.ts

Rimbu uses advanced and recursive typing, potentially making the TypeScript compiler quite slow in some cases, or causing infinite recursion. It is recommended to set the following values in the tsconfig.json file of your project:

{
  "compilerOptions": {
    "skipLibCheck": true,
    "noStrictGenericChecks": true
  }
}

Usage

import { OrderedSet } from '@rimbu/ordered';

console.log(OrderedSet.of(1, 3, 2, 3, 1).toString());

Author

Arvid Nicolaas

Contributing

Feel very welcome to contribute to further improve Rimbu. Please read our Contributing guide.

Contributors

Made with contributors-img.

License

Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas.

See LICENSE for more information.