Security News
Bun 1.2 Released with 90% Node.js Compatibility and Built-in S3 Object Support
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
difference-engine
Advanced tools
difference-engine
npm i -P difference-engine
Features are available as static methods on the class:
import DifferenceEngine from 'difference-engine'
And as functions exported from the module:
import {
inclusive,
exclusive
} from 'difference-engine'
Examples use the static form.
inclusive
Accepts two arrays. Returns an array containing items which appear in both arrays.
const alpha = ['A', 'B', 'C']
const omega = ['C', 'D', 'E']
const array = DifferenceEngine.inclusive(alpha, omega) // returns ['C']
exclusive
Accepts two arrays. Returns an array containing items which appear in the first array but not the second.
const alpha = ['A', 'B', 'C']
const omega = ['C', 'D', 'E']
const array = DifferenceEngine.exclusive(alpha, omega) // returns ['A', 'B']
Features are available as static methods on the class:
import { ArrayEngine } from 'difference-engine'
And as functions exported from the module:
import ArrayEngine, {
indexOf,
iterateForward,
iterateReverse,
iterateBetween,
max,
min,
bite
} from 'difference-engine/array-engine'
Examples use the static form.
indexOf
const array = ['A', 'B', 'C', 'D', 'E']
const index = ArrayEngine.indexOf(array, 'E') // returns 4
bite
Accepts an array and two indexes. Returns a slice from the array.
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, 0, 0) // returns ['A']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, 0, 4) // returns ['A', 'B', 'C', 'D', 'E']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, 4, 0) // returns ['E', 'D', 'C', 'B', 'A']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, 4, 4) // returns ['E']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, -4, 0) // returns ['A']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, -4, 4) // returns ['A', 'B', 'C', 'D', 'E']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, -4, -4) // returns ['E', 'D', 'C', 'B', 'A']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, 4, -4) // returns ['E', 'D', 'C', 'B', 'A']
const alpha = ['A', 'B', 'C', 'D', 'E']
const omega = ArrayEngine.bite(alpha, 0, -4) // returns ['A']
iterateForward
Accepts an array and a function. Iterates from start to end.
const array = ['A', 'B', 'C', 'D', 'E']
ArrayEngine.iterateForward(array, () => {})
iterateReverse
Accepts an array and a function. Iterates from end to start.
const array = ['A', 'B', 'C', 'D', 'E']
ArrayEngine.iterateReverse(array, () => {})
iterateBetween
Accepts an array, a start index, an end index, and a function.
If the first index is less than the second index, it behaves as iterateForward
.
If the first index is greater than the second index, it behaves as iterateReverse
.
const array = ['A', 'B', 'C', 'D', 'E']
ArrayEngine.iterateBetween(array, 1, 3, () => {})
max
Accepts an array. Returns the largest item (when compared as a number).
const array = ['A', 'B', 'C', 'D', 'E']
const value = ArrayEngine.max(array) // returns 'E'
const array = [1, 2, 3, 4, 5]
const value = ArrayEngine.max(array) // returns 5
min
Accepts an array. Returns the smallest item (when compared as a number).
const array = ['A', 'B', 'C', 'D', 'E']
const value = ArrayEngine.min(array) // returns 'A'
const array = [1, 2, 3, 4, 5]
const value = ArrayEngine.min(array) // returns 1
Features are available as static methods on the class:
import { NumberEngine } from 'difference-engine'
And as functions exported from the module:
import NumberEngine, {
fibonacci,
haversine,
fromOctToDec,
fromHexToDec,
Weight,
Temperature,
Distance
} from 'difference-engine/number-engine'
Examples use the static form.
fibonacci
Accepts an index. Returns the number in a Fibonacci sequence corresponding to the index.
const fibonacci = NumberEngine.fibonacci(0) // returns 0
const fibonacci = NumberEngine.fibonacci(1) // returns 1
const fibonacci = NumberEngine.fibonacci(2) // returns 1
const fibonacci = NumberEngine.fibonacci(3) // returns 2
haversine
Accepts an object with fields describing latitude and longitude points from
and to
.
Returns a value in kilometres or miles.
const points = { from: { lat: 51.4934, lng: 0.0098 }, to: { lat: 40.7128, lng: 74.0060 } }
const km = NumberEngine.haversine(points).km() // returns the distance in kilometres
const mi = NumberEngine.haversine(points).mi() // returns the distance in miles
fromOctToDec
Accepts a string representing an octal. Returns a decimal.
const dec = NumberEngine.fromOctToDec('20') // returns 16
fromHexToDec
Accepts a string representing a hexadecimal. Returns a decimal.
const dec = NumberEngine.fromHexToDec('10') // returns 16
Weight
Convert a number from one unit to another.
As static methods on the class:
import { NumberEngine: { Weight } } from 'difference-engine'
And as functions exported from the module:
import Weight, {
fromKgToGr,
fromKgToMg,
fromKgToOz,
fromKgToLb,
fromKgToSt,
fromGrToKg,
fromGrToMg,
fromGrToOz,
fromGrToLb,
fromGrToSt,
fromMgToKg,
fromMgToGr,
fromMgToOz,
fromMgToLb,
fromMgToSt,
fromOzToKg,
fromOzToGr,
fromOzToMg,
fromOzToLb,
fromOzToSt,
fromLbToKg,
fromLbToGr,
fromLbToMg,
fromLbToOz,
fromLbToSt,
fromStToKg,
fromStToGr,
fromStToMg,
fromStToLb,
fromStToOz,
convert
} from 'difference-engine/number-engine/weight'
Examples use the static form.
const gr = Weight.fromKgToGr(10)
const mg = Weight.fromKgToMg(10)
const oz = Weight.fromKgToOz(10)
const lb = Weight.fromKgToLb(10)
const st = Weight.fromKgToSt(10)
Or, using convert
.
const gr = Weight.convert(10).fromKg.toGr()
const mg = Weight.convert(10).fromKg.toMg()
const oz = Weight.convert(10).fromKg.toOz()
const lb = Weight.convert(10).fromKg.toLb()
const st = Weight.convert(10).fromKg.toSt()
const kg = Weight.fromGrToKg(10)
const mg = Weight.fromGrToMg(10)
const oz = Weight.fromGrToOz(10)
const lb = Weight.fromGrToLb(10)
const st = Weight.fromGrToSt(10)
Or, using convert
.
const kg = Weight.convert(10).fromGr.toKg()
const mg = Weight.convert(10).fromGr.toMg()
const oz = Weight.convert(10).fromGr.toOz()
const lb = Weight.convert(10).fromGr.toLb()
const st = Weight.convert(10).fromGr.toSt()
const kg = Weight.fromMgToKg(10)
const gr = Weight.fromMgToGr(10)
const oz = Weight.fromMgToOz(10)
const lb = Weight.fromMgToLb(10)
const st = Weight.fromMgToSt(10)
Or, using convert
.
const kg = Weight.convert(10).fromMg.toKg()
const gr = Weight.convert(10).fromMg.toGr()
const oz = Weight.convert(10).fromMg.toOz()
const lb = Weight.convert(10).fromMg.toLb()
const st = Weight.convert(10).fromMg.toSt()
const kg = Weight.fromOzToKg(10)
const gr = Weight.fromOzToGr(10)
const mg = Weight.fromOzToMg(10)
const lb = Weight.fromOzToLb(10)
const st = Weight.fromOzToSt(10)
Or, using convert
.
const kg = Weight.convert(10).fromOz.toKg()
const gr = Weight.convert(10).fromOz.toGr()
const mg = Weight.convert(10).fromOz.toMg()
const lb = Weight.convert(10).fromOz.toLb()
const st = Weight.convert(10).fromOz.toSt()
const kg = Weight.fromLbToKg(10)
const gr = Weight.fromLbToGr(10)
const mg = Weight.fromLbToMg(10)
const oz = Weight.fromLbToOz(10)
const st = Weight.fromLbToSt(10)
Or, using convert
.
const kg = Weight.convert(10).fromLb.toKg()
const gr = Weight.convert(10).fromLb.toGr()
const mg = Weight.convert(10).fromLb.toMg()
const oz = Weight.convert(10).fromLb.toOz()
const st = Weight.convert(10).fromLb.toSt()
const kg = Weight.fromStToKg(10)
const gr = Weight.fromStToGr(10)
const mg = Weight.fromStToMg(10)
const lb = Weight.fromStToLb(10)
const oz = Weight.fromStToOz(10)
Or, using convert
.
const kg = Weight.convert(10).fromSt.toKg()
const gr = Weight.convert(10).fromSt.toGr()
const mg = Weight.convert(10).fromSt.toMg()
const lb = Weight.convert(10).fromSt.toLb()
const oz = Weight.convert(10).fromSt.toOz()
Temperature
Convert a number from one unit to another.
As static methods on the class:
import { NumberEngine: { Temperature } } from 'difference-engine'
And as functions exported from the module:
import Temperature, {
fromCToF,
fromFToC
} from 'difference-engine/number-engine/temperature'
Examples use the static form.
const value = Temperature.fromCToF(10)
const value = Temperature.fromFToC(10)
Distance
Convert a number from one unit to another.
As static methods on the class:
import { NumberEngine: { Distance } } from 'difference-engine'
And as functions exported from the module:
import Distance, {
fromKmToMt,
fromKmToCm,
fromKmToMm,
fromKmToIn,
fromKmToFt,
fromKmToYd,
fromKmToMi,
fromMtToKm,
fromMtToCm,
fromMtToMm,
fromMtToIn,
fromMtToFt,
fromMtToYd,
fromMtToMi,
fromCmToKm,
fromCmToMt,
fromCmToMm,
fromCmToIn,
fromCmToFt,
fromCmToYd,
fromCmToMi,
fromMmToKm,
fromMmToMt,
fromMmToCm,
fromMmToIn,
fromMmToFt,
fromMmToYd,
fromMmToMi,
fromInToKm,
fromInToMt,
fromInToCm,
fromInToMm,
fromInToFt,
fromInToYd,
fromInToMi,
fromFtToKm,
fromFtToMt,
fromFtToCm,
fromFtToMm,
fromFtToIn,
fromFtToYd,
fromFtToMi,
fromYdToKm,
fromYdToMt,
fromYdToCm,
fromYdToMm,
fromYdToIn,
fromYdToFt,
fromYdToMi,
fromMiToKm,
fromMiToMt,
fromMiToCm,
fromMiToMm,
fromMiToIn,
fromMiToFt,
fromMiToYd,
convert
} from 'difference-engine/number-engine/distance'
Examples use the static form.
const mt = Distance.fromKmToMt(10)
const cm = Distance.fromKmToCm(10)
const mm = Distance.fromKmToMm(10)
const in = Distance.fromKmToIn(10)
const ft = Distance.fromKmToFt(10)
const yd = Distance.fromKmToYd(10)
const mi = Distance.fromKmToMi(10)
Or, using convert
.
const mt = Distance.convert(10).fromKm.toMt()
const cm = Distance.convert(10).fromKm.toCm()
const mm = Distance.convert(10).fromKm.toMm()
const in = Distance.convert(10).fromKm.toIn()
const ft = Distance.convert(10).fromKm.toFt()
const yd = Distance.convert(10).fromKm.toYd()
const mi = Distance.convert(10).fromKm.toMi()
const km = Distance.fromMtToKm(10)
const cm = Distance.fromMtToCm(10)
const mm = Distance.fromMtToMm(10)
const in = Distance.fromMtToIn(10)
const ft = Distance.fromMtToFt(10)
const yd = Distance.fromMtToYd(10)
const mi = Distance.fromMtToMi(10)
Or, using convert
.
const km = Distance.convert(10).fromMt.toKm()
const cm = Distance.convert(10).fromMt.toCm()
const mm = Distance.convert(10).fromMt.toMm()
const in = Distance.convert(10).fromMt.toIn()
const ft = Distance.convert(10).fromMt.toFt()
const yd = Distance.convert(10).fromMt.toYd()
const mi = Distance.convert(10).fromMt.toMi()
const km = Distance.fromCmToKm(10)
const mt = Distance.fromCmToMt(10)
const mm = Distance.fromCmToMm(10)
const in = Distance.fromCmToIn(10)
const ft = Distance.fromCmToFt(10)
const yd = Distance.fromCmToYd(10)
const mi = Distance.fromCmToMi(10)
Or, using convert
.
const km = Distance.convert(10).fromCm.toKm()
const mt = Distance.convert(10).fromCm.toMt()
const mm = Distance.convert(10).fromCm.toMm()
const in = Distance.convert(10).fromCm.toIn()
const ft = Distance.convert(10).fromCm.toFt()
const yd = Distance.convert(10).fromCm.toYd()
const mi = Distance.convert(10).fromCm.toMi()
const km = Distance.fromMmToKm(10)
const mt = Distance.fromMmToMt(10)
const cm = Distance.fromMmToCm(10)
const in = Distance.fromMmToIn(10)
const ft = Distance.fromMmToFt(10)
const yd = Distance.fromMmToYd(10)
const mi = Distance.fromMmToMi(10)
Or, using convert
.
const km = Distance.convert(10).fromMm.toKm()
const mt = Distance.convert(10).fromMm.toMt()
const cm = Distance.convert(10).fromMm.toCm()
const in = Distance.convert(10).fromMm.toIn()
const ft = Distance.convert(10).fromMm.toFt()
const yd = Distance.convert(10).fromMm.toYd()
const mi = Distance.convert(10).fromMm.toMi()
const km = Distance.fromInToKm(10)
const mt = Distance.fromInToMt(10)
const cm = Distance.fromInToCm(10)
const mm = Distance.fromInToMm(10)
const ft = Distance.fromInToFt(10)
const yd = Distance.fromInToYd(10)
const mi = Distance.fromInToMi(10)
Or, using convert
.
const km = Distance.convert(10).fromIn.toKm()
const mt = Distance.convert(10).fromIn.toMt()
const cm = Distance.convert(10).fromIn.toCm()
const mm = Distance.convert(10).fromIn.toMm()
const ft = Distance.convert(10).fromIn.toFt()
const yd = Distance.convert(10).fromIn.toYd()
const mi = Distance.convert(10).fromIn.toMi()
const km = Distance.fromFtToKm(10)
const mt = Distance.fromFtToMt(10)
const cm = Distance.fromFtToCm(10)
const mm = Distance.fromFtToMm(10)
const in = Distance.fromFtToIn(10)
const yd = Distance.fromFtToYd(10)
const mi = Distance.fromFtToMi(10)
Or, using convert
.
const km = Distance.convert(10).fromFt.toKm()
const mt = Distance.convert(10).fromFt.toMt()
const cm = Distance.convert(10).fromFt.toCm()
const mm = Distance.convert(10).fromFt.toMm()
const in = Distance.convert(10).fromFt.toIn()
const yd = Distance.convert(10).fromFt.toYd()
const mi = Distance.convert(10).fromFt.toMi()
const km = Distance.fromYdToKm(10)
const mt = Distance.fromYdToMt(10)
const cm = Distance.fromYdToCm(10)
const mm = Distance.fromYdToMm(10)
const in = Distance.fromYdToIn(10)
const ft = Distance.fromYdToFt(10)
const mi = Distance.fromYdToMi(10)
Or, using convert
.
const km = Distance.convert(10).fromYd.toKm()
const mt = Distance.convert(10).fromYd.toMt()
const cm = Distance.convert(10).fromYd.toCm()
const mm = Distance.convert(10).fromYd.toMm()
const in = Distance.convert(10).fromYd.toIn()
const ft = Distance.convert(10).fromYd.toFt()
const mi = Distance.convert(10).fromYd.toMi()
const km = Distance.fromMiToKm(10)
const mt = Distance.fromMiToMt(10)
const cm = Distance.fromMiToCm(10)
const mm = Distance.fromMiToMm(10)
const in = Distance.fromMiToIn(10)
const ft = Distance.fromMiToFt(10)
const yd = Distance.fromMiToYd(10)
Or, using convert
.
const km = Distance.convert(10).fromMi.toKm()
const mt = Distance.convert(10).fromMi.toMt()
const cm = Distance.convert(10).fromMi.toCm()
const mm = Distance.convert(10).fromMi.toMm()
const in = Distance.convert(10).fromMi.toIn()
const ft = Distance.convert(10).fromMi.toFt()
const yd = Distance.convert(10).fromMi.toYd()
import { StringEngine } from 'difference-engine'
charAt
Accepts a string and a number which is an index. Returns the character for the entity at the index.
const string = StringEngine.charAt('Hello, World', 5) // returns ','
const string = StringEngine.charAt('Hello, World', 5) // returns ','
charCodeAt
Accepts a string and a number which is an index. Returns the character code for the entity at the index.
const number = StringEngine.charCodeAt('Hello, World', 5) // returns 44
const number = StringEngine.charCodeAt('Hello, World', 5) // returns 44
charOf
Accepts a string which is an HTML entity. Returns the character for the entity.
const string = StringEngine.charOf(',') // returns ','
const string = StringEngine.charOf(',') // returns ','
charCodeOf
Accepts a string which is an HTML entity. Returns the character code for the entity.
const number = StringEngine.charCodeOf(',') // returns 44
const number = StringEngine.charCodeOf(',') // returns 44
entityAt
Accepts a string and a number which is an index.
Where the character at the index is an entity, it returns the entity.
const string = StringEngine.entityAt('Hello, World', 5) // returns ','
const string = StringEngine.entityAt('Hello, World', 6) // returns ' '
Where the character at the index has an entity name, it returns the entity name.
const string = StringEngine.entityAt('Hello, World', 5) // returns ','
Where the character at the index has an entity code, it returns the entity code.
const string = StringEngine.entityAt('Hello, World', 6) // returns ' '
entityCodeAt
Accepts a string and a number which is an index.
Where the character at the index has an entity code, it returns the entity code.
const string = StringEngine.entityCodeAt('Hello, World', 5) // returns ','
Where the character at the index is an entity code, it returns the entity code.
const string = StringEngine.entityCodeAt('Hello, World', 5) // returns ','
Where the character at the index is an entity name, it returns the entity code for the char at the index.
const string = StringEngine.entityCodeAt('Hello, World', 5) // returns '&'
entityNameAt
Accepts a string and a number which is an index.
Where the character at the index has an entity name, it returns the entity name.
const string = StringEngine.entityNameAt('Hello, World', 5) // returns ','
Where the character at the index is an entity name, it returns the entity name.
const string = StringEngine.entityNameAt('Hello, World', 5) // returns ','
Where the character at the index is an entity code, it returns the entity name for the char at the index.
const string = StringEngine.entityNameAt('Hello, World', 5) // returns '&'
entityOf
Accepts a string and a number which is an index.
Where the character at the index is an entity, it returns the entity.
const string = StringEngine.entityOf(',') // returns ','
const string = StringEngine.entityOf(' ') // returns ' '
fromCodePoint
Accepts a number which is a character code point. Returns the character for that code point.
const string = StringEngine.fromCodePoint(43) // returns '+'
charFromEntityCode
Accepts a string which is an HTML entity code. Returns the character for that entity.
const string = StringEngine.charFromEntityCode('+') // returns '+'
charFromEntityName
Accepts a string which is an HTML entity name. Returns the character for that entity.
const string = StringEngine.charFromEntityCode('+') // returns '+'
toEntityCode
Accepts a string. Returns a string replaced with the HTML entity code for each character.
const string = StringEngine.toEntityCode('Hello, World') // returns 'Hello, World'
toEntityName
Accepts a string. Returns a string replaced with the HTML entity name for each character where it is known, otherwise the character is not replaced.
const string = StringEngine.toEntityName('Hello, World') // returns 'Hello, World'
entityCodeFromChar
Accepts a single-character string. Returns a string representing the HTML entity code for that character.
const entityCode = StringEngine.entityCodeFromChar('+') // returns '+'
The entity is computed from the character code point.
entityNameFromChar
Accepts a single-character string. Returns a string representing the HTML entity code for that character.
const entityName = StringEngine.entityNameFromChar('+') // returns '+'
Where the character has no entity or the entity is not known it returns the character.
entityCodeOf
See entityCodeFromChar
.
entityNameOf
See entityNameFromChar
.
fromDecToOct
Accepts number. Returns a string representing an octal.
const oct = StringEngine.fromDecToOct(16) // returns '20'
fromDecToHex
Accepts number. Returns a string representing a hexadecimal.
const hex = StringEngine.fromDecToHex(16) // returns '10'
reverse
Accepts a string. Returns the string with characters in reverse order.
const string = StringEngine.reverse('ABCDE') // returns 'EDCBA'
FAQs
Difference Engine
The npm package difference-engine receives a total of 3 weekly downloads. As such, difference-engine popularity was classified as not popular.
We found that difference-engine demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.