Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@tldraw/indices

Package Overview
Dependencies
Maintainers
4
Versions
178
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tldraw/indices

A tiny little drawing app (fractional indices).

  • 2.0.0-canary.e43b0103fdf5
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
4
Created
Source

@tldraw/indices

Welcome to indices by tldraw. This library provides functions for features that rely on fractional indexing. It is based on the observable Implementing Fractional Indexing by @DavidG.

Fractional indexing is a method for creating indices between other indices without running into precision errors. This is useful when items are modeled as object maps rather than as arrays.

For example, imagine a stack of 5 cards:

const cards = {
	A: 0,
	B: 1,
	C: 2,
	D: 3,
	E: 4,
}

In a naive implementation of indexing, moving card E to the "bottom" of the stack would mean changing every item in the map.

const cards = {
	A: 1,
	B: 2,
	C: 3,
	D: 4,
	E: 0, // <-- moved to back
}

each with an index between 0 and 51. In a naive implementation of indices, moving the top card (index 51) to the bottom of the deck would mean changing its index to 0, changing the previous bottom card's index to 1, and so forth incrementing every other card's index by one.

Installation

npm i @tldraw/indices
# or
yarn add @tldraw/indices

Usage

getIndexBetween

Get an index between two other indices.

getIndexAbove

Get an index above a given index.

getIndexBelow

Get an index below a given index.

getIndicesBetween

Get a number of indices between two indices.

getIndicesAbove

Get a number of indices above a given index.

getIndicesBelow

Get a number of indices below a given index.

getIndices

Get an array of indices with a given length.

sortByIndex

Sort an array of objects by their index property.

License

The source code in this repository (as well as our 2.0+ distributions and releases) are currently licensed under Apache-2.0. These licenses are subject to change in our upcoming 2.0 release. If you are planning to use tldraw in a commercial product, please reach out at hello@tldraw.com.

Keywords

FAQs

Package last updated on 22 May 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc