yow

You Only Wish module

Usage no npm install needed!

<script type="module">
  import yow from 'https://cdn.skypack.dev/yow';
</script>

README

Yow

Toolbox for Node. Contains stuff you only wished was there in the first place.

Installation

npm install yow --save

Methods

General Purpose

var sprintf = require('yow/sprintf');
var vsprintf = require('yow/vsprintf');
var once = require('yow/once');
var merge = require('yow/merge');
  • sprintf(args) - Just as you would expect. Uses the npm module 'sprintf-js'.
  • vsprintf(args) - Just as you would expect. Uses the npm module 'sprintf-js'.
  • once(fn, context) - Call a function just once and return the same result.
  • merge({}, objects...) - Like Object.assign() but does a deep merge.

File System

var mkdir = require('yow/mkdir')
var mkpath = require('yow/mkpath');
var fileExists = require('yow/fileExists');
var readJSON = require('yow/readJSON');
var writeJSON = require('yow/writeJSON');
  • mkdir(path) - Creates the directory you specify.
  • mkpath(path) - Creates the directory you specify. It will create multiple directories if they do not exit.
  • fileExists(path) - Nothing fancy, it just returns true/false.
  • readJSON(fileName) - Reads a JSON file and returns the contents.
  • writeJSON(fileName, object) - Writes an object to a JSON file.

Type Checks

var isArray = require('yow/isArray');
var isNumber = require('yow/isNumber');
var isString = require('yow/isString');
var isDate = require('yow/isDate');
var isFunction = require('yow/isFunction');
var isObject = require('yow/isObject');
var isInteger = require('yow/isInteger');
var isFloat = require('yow/isFloat');
  • isType(object, type) - Returns true/false if typeof equals 'type'.
  • isArray(object) - Is object an array?
  • isNumber(object) - Is object a JavaScript Number object?
  • isString(object) - Is object a String object?
  • isDate(object) - Is object a Date object (and contains a valid date)?
  • isFunction(object) - Is object a function object?
  • isObject(object) - Is object an object? BTW null is not an object.
  • isInteger(object) - Is object an integer?
  • isFloat(object) - Is object a float? Please note that isFloat(1.0) returns false.

Random

var random = require('yow/random');
  • random() - Returns Math.random().
  • random(integer) - Returns a random number from 0 to the integer specified (exclusive).
  • random(min, max) - Returns a random number from min to max (inclusive).
  • random(array) - Returns a randomly chosen object in the specified array.
  • random(object) - Returns a randomly chosen object property.

Also available as require('yow/random')

Range

var range = require('yow/range');
  • range(min, max, step) - Returns an range array generated by min, max, and step.

Console/Logging

require('yow/prefixConsole');
  • prefixConsole(fn) - Adds a prefix to all console methods.

Timer

var Timer = require('yow/timer');
var timer = new Timer();
  • timer.setTimer(delay, fn) - Executes the specified function fn after a delay. Previously set timers are cancelled.

  • timer.cancel() - Cancels the timer.

Request

var Request = require('yow/request');
var request = new Request(options);

A light-weight http/https request module.

function example() {

    var Request = require('yow/request');
    var yahoo = new Request('https://query.yahooapis.com');

    function getQuote(ticker) {
        var query = {};

        query.q        = 'select * from yahoo.finance.quotes where symbol =  "' + ticker + '"';
        query.format   = 'json';
        query.env      = 'store://datatables.org/alltableswithkeys';
        query.callback = '';

        yahoo.get('/v1/public/yql', {query:query}).then(function(response) {
            var quotes = response.body.query.results.quote;

            if (typeof qoutes != 'Array')
                quotes = [quotes];

            console.log(ticker, '=', quotes[0].LastTradePriceOnly);

        })

        .catch (function(error) {
            console.log(error);

        });

    }

    getQuote('AAPL');

};
  • request.request(options) - See https://nodejs.org/api/http.html#http_http_request_options_callback for documentation.
  • request.get(options) - Same as request('GET', options)
  • request.post(options) - Same as request('POST', options)
  • request.delete(options) - Same as request('DELETE', options)
  • request.put(options) - Same as request('PUT', options)