4.0.0 • Published 1 year ago

bb26 v4.0.0

Weekly downloads
88
License
MIT
Repository
github
Last release
1 year ago

BB26

Badge indicating number of weekly downloads of BB26 from npm package registry Badge indicating percent test coverage of BB26

BB26 is a JavaScript library for working with bijective base-26 (BB26) numbers

What is bijective base-26 numeration?

You’re probably familiar with BB26 numeration. It’s used for spreadsheet columns, license plate serials, and (probably?) more.

Here’s an example of decimal (base-10) numbers (the numbers you use every day to count things) compared to their corresponding BB26 numbers:

Decimal: | 1 | 2 | 3 | ... | 24 | 25 | 26 | 27 | 28 | 29 | ...
   BB26: | A | B | C | ... |  X |  Y |  Z | AA | AB | AC | ...

Install

Note

This package is a native ECMAScript Module (ESM). If your project is not ESM, read Sindre Sorhus’s Pure ESM package article.

npm install bb26

API

increment()

function increment(string: string): string;

Increments a bijective base-26 string by one numeral.

import { increment } from "bb26";

increment("A");  // 'B'
increment("Z");  // 'AA'
increment("AA"); // 'AB'

random()

function random(upper: string): string;
function random(lower: string, upper: string): string;

Produces a random string between the inclusive lower and upper bounds. If only one argument is provided, a string between 'A' and the given string is returned.

import { random } from "bb26";

random("AAA");         // 'NE'
random("AAA", "AAAA"); // 'KXZ'

range()

function range(end: string): string[];
function range(start: string, end: string): string[];

Creates an array of bijective base-26 numerals progressing from start up to, but not including, end. If end is not specified, it's set to start with start then set to 'A'.

import { range } from "bb26";

range("B");       // ['A']
range("C");       // ['A', 'B']
range("B", "C");  // ['B']
range("B", "D");  // ['B', 'C']
range("Z", "AC"); // ['Z', 'AA', 'AB']

toBb26()

function toBb26(number: number): string;

Converts a decimal number to a bijective base-26 string.

import { toBb26 } from "bb26";

toBb26(1);  // 'A'
toBb26(2);  // 'B'
toBb26(26); // 'Z'
toBb26(27); // 'AA'
toBb26(28); // 'AB'

toDecimal()

function toDecimal(string: string): number;

Converts a bijective base-26 string to a decimal number.

import { toDecimal } from "bb26";

toDecimal("A");  // 1
toDecimal("B");  // 2
toDecimal("Z");  // 26
toDecimal("AA"); // 27
toDecimal("AB"); // 28
4.0.0

1 year ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.2.1

2 years ago

2.2.0

3 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

1.0.0

4 years ago

2.0.0

4 years ago

0.4.0

4 years ago

0.3.2

4 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago