Public Software Packages

These software packages were written by Terry Morse, and are licensed for public use under the MIT License.


A fast, compact, and robust method to deep copy all JavaScript data types

deep-copy-all JavaScript object deep cloner is:

  • fast – ranking highly on common benchmark speed tests
  • compact – about 5k (minified)
  • robust – correctly handling all standard JavaScript data types, as well as custom types
Open Readme


A universal serializer and de-serializer for JavaScript data

serialize-anything serializes and de-serializes virtually all JavaScript standard and custom data types, with no data loss.

serialize-anything compares favorably to other commonly used serialize/deserialze methods, which convert only a subset of JavaScript data types.

Open Readme


A JavaScript class for immutable arrays

array-immutable is a JavaScript class identical to the built-in standard Array, but with all immutable methods.

array-immutable conforms to modern programming practices of immutable objects, pure functions, and method chaining.

Open Readme


Correctly round JavaScript numbers to a fixed number of decimal places

round-tofixed solves common problems when rounding decimal numbers in JavaScript. Unlike built-in methods, round-tofixed:

  • permits rounding to fixed number of decimal places
  • rounds correctly in all cases
Open Readme


A Boostrap CSS theme that responds to a computer's dark/light mode setting

bootsdark makes any Bootstrap web page dark/light responsive with just a single line of HTML.

Open Readme


Detects device capabilities for a browser.
  • touch-cable
  • mouse-capable
  • pointer-capable
  • pointer-capable
  • pointer tip size (coarse or fine)
  • user color preference (light or dark)
  • browser screen size (extra-small, small, ... , extra-large)
Open Readme