A reference implementation of a list ordering system like JIRA's Lexorank algorithm.
This was forked from https://github.com/kvandake/lexorank-ts in October 2024 because, unfortunately, the maintainer appears to have abandoned their project.
Npm
npm install @dalet-oss/lexorank
Yarn
yarn add @dalet-oss/lexorank
import { LexoRank } from '@dalet-oss/lexorank';
// min
const minLexoRank = LexoRank.min();
// max
const maxLexoRank = LexoRank.max();
// middle
const middleLexoRank = LexoRank.middle();
// parse
const parsedLexoRank = LexoRank.parse('0|0i0000:');
import { LexoRank } from '@dalet-oss/lexorank';
// any lexoRank
const lexoRank = LexoRank.middle();
// generate next lexorank
const nextLexoRank = lexoRank.genNext();
// generate previous lexorank
const prevLexoRank = lexoRank.genPrev();
// toString
const lexoRankStr = lexoRank.toString();
LexRank calculation based on existing LexoRanks.
import { LexoRank } from '@dalet-oss/lexorank';
// any lexorank
const any1LexoRank = LexoRank.min();
// another lexorank
const any2LexoRank = any1LexoRank.genNext().genNext();
// calculate between
const betweenLexoRank = any1LexoRank.between(any2LexoRank);
// calculate between lexoRanks
const betweenLexoRanks = any1LexoRank.multipleBetween(any2LexoRank, 5);
MIT
I have not found information about the license of the algorithm LexoRank. If the rights are violated, please contact me to correct the current license.