bijective-link-shortener

1.5.4 • Public • Published

bijective-link-shortener

Build Status

Coverage Status

npm version

Bijective encode and decode functions to convert between Base 10 and Base 58 (default). I'm using this for a link shortener.

For more on bijective functions and link shortening, please see:

Installation

npm install bijective-link-shortener -S

Demo site

https://ls.icjia.cloud/

Default encoding alphabet

123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ

58 characters (default). No number '0', no upper-case letter 'O', no upper-case letter 'I', no uppercase letter 'l'.

The default alphabet can be set manually and/or randomized. See API below.

Basic Usage with default encoding alphabet

const baseConvert = require('bijective-link-shortener')
 
const databaseId = 2347247
 
baseConvert.encode(databaseId) // 'd2KM'
 
baseConvert.decode('d2KM') // 2347247

API

baseConvert.encode(num): Returns string. Encodes a given seed value (such as a unique database ID) into a string based on the selected encoding alphabet.

baseConvert.decode(str): Returns integer. Decodes a given string value (such as a short URL string) into a number based on the selected encoding alphabet.

baseConvert.setAlphabet(str): Returns string. Assign a new encoding alpahbet and echoes it back.

baseConvert.getAlphabet(): Returns string. Current encoding alphabet.

baseConvert.getBase(): Returns integer. The length of current encoding alphabet. For example, a 58 character encoding alphabet equals a Base 58 conversion. A 33 character encoding equals a Base 33 conversion.

baseConvert.isInteger(num): Returns boolean. Indicates whether a given number is an integer.

baseConvert.isPositive(num): Returns boolean. Indicates whether a given number is positive.

baseConvert.isUnique(str): Returns boolean. Indicates whether given string has no repeating characters.

baseConvert.randomizeAlphabet(): Returns string. Shuffles current encoding alphabet.

Readme

Keywords

none

Package Sidebar

Install

npm i bijective-link-shortener

Weekly Downloads

2

Version

1.5.4

License

MIT

Last publish

Collaborators

  • cschweda