A collection of useful enhancements for JavaScript and its lack of handy tools to make your day even more enjoyable.

Usage no npm install needed!

<script type="module">
  import sygtools from '';


Node.js SygTools

A collection of useful enhancements for JavaScript and its lack of handy tools to make your day even more enjoyable. Crafted by


Please note that this is my first node module release ever,
and a lot of functionality is still missing.

This version already comes with a small, useful tool, which I decided to call "List".
Check the Usage section for further information on how to use it and what to do with it.


npm install sygtools --save



var toolBox = require('sygtools');

Example: List

var List = toolBox.List;

// Create a new List object that will accept any kind of data.
var myList = new List();

// The Basics: add, get, set and remove data.
myList.add([1, 3, 5, 3, 4, 9]);
myList.remove([ 5, 9 ]);
myList.set(3, 7);
// ...see what I did there? <^-^>

// Let's create a second List for some more action.
// We now also provide a validation type (number), 
// meaning this List will only accept data of the JavaScript Type 'number'.
// Any JavaScript Type can be passed here - if you pass null, no validation will occur. 
// As the second parameter, we pass some data directly into initialization.
var myOtherList = new List('number', [3, 6, 7]);

// Comparison functions:
var matches =; // Will return [ 3, 7 ]
var difference = myList.differ(myOtherList); // Will return [ 1, 6 ]

// Why does JavaScript not natively support a clone() function? 
// Nevermind, I made one.
var arraysAreBad = myList.clone();
var useless = arraysAreBad.getAll();
var prettyUseful = List().fromArray(useless);

// Object-Oriented functions:
var users = new List();
users.add({ name: 'Derser', hobbies: [ 'Music', 'Mushroom', 'Unicorn' ]});
users.add({ name: 'Dave', food: { favourite: 'Sushi' }});
var derser = users.findOne('name', 'Derser');

Example: FileWizard

// Read a Json File directly and receive a new object
var myConfig = new FileWizard().parseJson('./config.json');

// ...also works asynchronously for larger files:
var myData = {};
new FileWizard().parseJsonAsync('./data.json', function(e, data)) {
    if (e) console.log(e);
    myData = data;

// ...more Features to come.

This will be expanded for richer documentation in the future.

Release History

* 0.1.0 Initial Release
* 0.2.0 Fixed a few consistency issues
* 0.2.1 Fixed a bug which made the module breathe fire
* 0.2.2 Keep finding bugs synchronously with publishing
* 0.2.3 Added unit tests and enhanced the find() and findeOne() methods of the List class.
* 0.2.4 Added Tests
* 0.2.5 Added a new Tool: The FileWizard. Pretty useless atm, will get enhanced each update.
* 0.2.6 Added an iteration loop function 'List.step(function(element) { })'