Skip to content

Default implementations for neotype_prelude equivalence relations, total orders, and semigroups for built-in JavaScript objects

License

Notifications You must be signed in to change notification settings

jmartinezmaes/neotype_extensions

Repository files navigation

neotype_extensions

Default implementations for neotype_prelude equivalence relations, total orders, and semigroups for built-in JavaScript objects

Build and Test NPM Version

Features

This library provides default implementations for the neotype_prelude Eq, Ord, and Semigroup interfaces for built-in JavaScript objects and their corresponding TypeScript definitions, including:

  • Primitives: boolean, number, bigint, string, and symbol
  • Generic containers:
    • Array and ReadonlyArray
    • Tuple literals and readonly tuple literals
    • Set and ReadonlySet
    • Map and ReadonlyMap
  • Dates, promises, and functions
  • Typed arrays

The specific implementations are:

Type Eq Ord Semigroup
Array
BigInt
BigInt64Array
BigUint64Array
Boolean
Date
Float32Array
Float64Array
Function
Int8Array
Int16Array
Int32Array
Map
Number
Promise
readonly tuple literal
ReadonlyArray
ReadonlyMap
ReadonlySet
Set
String
Symbol
tuple literal
Uint8Array
Uint8ClampedArray
Uint16Array
Uint32Array

Install

neotype_extensions is available on NPM.

npm install @neotype/extensions @neotype/prelude

Working with modules

This library provides a suite of ES6 modules. A .js suffix is required in all import statements. There are no exports. When imported, each module will augment a global object.

import "@neotype/extensions/boolean.js";
import "@neotype/extensions/number.js";
import "@neotype/extensions/promise.js";
import "@neotype/extensions/string.js";
// etc.

See each module's documentation for recommended import practices.

About

Default implementations for neotype_prelude equivalence relations, total orders, and semigroups for built-in JavaScript objects

Resources

License

Code of conduct

Stars

Watchers

Forks