js-aux
v1.3.0
Published
A basic library that provides useful auxiliary functions.
Readme
JSAux is a collection of auxiliary/utility functions and types (for TypeScript projects).
All functions provided by JSAux are 100% compatible with JavaScript-only projects. Still, TypeScript is recommended since it checks for issues pre-compiling.
If your project is already JavaScript-based, but you still want to add type-checking, install TypeScript as a development dependency, and add // @ts-check to the top of your JS files.
For in-depth documentation, go to the JSAux section of the Genesis website.
Important
Features marked as "deprecated" are going to be removed at some point.
Installation
npm install js-auxESM & CJS compatibility
JSAux is compatible with both ES modules and CommonJS:
// CJS:
const { /* <function name> */ } = require('js-aux');
// ESM:
import { /* <function name> */ } from 'js-aux';Usage
Each function, type, interface, class, etc. JSAux provides is a named export. How you import functions, types, interfaces, and anything else JSAux provides is showcased above.
Auxiliary functions
import { clamp, sum, truncate } from 'js-aux';
clamp(50, 7, 44); // Returns 44
sum(33, 1, 2, 3, 599); // Returns 638
truncate('The quick brown fox jumps over the lazy dog.', 8); // Returns "The quic…"Auxiliary types
import { Dictionary, KeyValuePair } from 'js-aux';
const dictionary: Dictionary<string> = {
'entry1': 'Values must be strings',
'entry2': 'becauce we set the',
'entry3': 'value type to string',
};
interface HeterogenousDictionary {
numbers: KeyValuePair<string, number>[];
strings: KeyValuePair<string, string>[];
};
const heterogenousDictionary: HeterogenousDictionary = {
numbers: [
{
key: 'first number',
value: 1,
},
],
strings: [
{
key: 'This is a heterogenous dictionary',
value: 'which means that multiple, distinct types can exist'
},
],
};Aliasing
If you want to rename the types or functions, simply write:
import { Dictionary as Table } from 'js-aux';
const table: Table<string> = {
// ...
};Licence
JSAux's code is licenced under the Apache licence version 2.
The full licence text is present in these source files. In addition, this snippet of text is present at the top of all files:
Copyright 2025 Q
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.