sygtools

0.2.7 • Public • Published

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 dave@sygade.eu

Important

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.

Installation

npm install sygtools --save

Usage

Require

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(3);
myList.add([1, 3, 5, 3, 4, 9]);
myList.remove([ 5, 9 ]);
myList.removeFirst();
myList.set(3, 7);
console.log(myList.getAll()); 
// ...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 = myList.compare(myOtherList); // 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);
console.log(prettyUseful.contains(1));

// 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');
console.log(derser.hobbies);

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) { })'

Package Sidebar

Install

npm i sygtools

Weekly Downloads

0

Version

0.2.7

License

ISC

Last publish

Collaborators

  • levarg
  • qrakhen