@nexssp/data
Just library for datatypes.
Note
This library/module is the effect of the refactoring the Nexss Programmer @nexssp/cli which development has been started in 2018.
Examples
const { is, type } = require('@nexssp/data')
console.log(type(new Map()))
const Stream = require('stream')
console.log(type(new Stream.Readable()))
console.log(type({}))
console.log(type(() => {}))
console.log(type(Promise.resolve(1)))
console.log(is('object', {}))
console.log(is('array', []))
console.log(is('array', '[]'))
console.log(is('file', 'example.js'))
console.log(is('directory', 'example.js'))
console.log(is('directory', '../tests'))
Functions
- type (value) -> return one of the datatype: object, string, array, number, boolean, undefined, function, null, map, set, generatorfunction, promise, stream, url, json
- is (type, value) -> check for the types + is('directory',v), is('dir',v), **is('file',v), **is('url',v), , is('json',v)
- compare (v1, v2) -> compares 2 values. If any of them is function, it will run first and then compare
- isEmpty (value) -> check if anything is empty like array, object, string.
Valid Datatypes
exports.valid = {
object: () => [{}, { x: 1 }, { x: 1, y: { nested: true } }],
string: () => ['', 'mystring'],
array: () => [[0], [1, 2]],
number: () => [1, 1234, 36936936936936936936936936936936936936936936936936],
boolean: () => [true, false],
undefined: () => [undefined],
function: () => [() => {}, function () {}, () => 'somestring'],
asyncfunction: () => [async () => {}, async function () {}],
null: () => [null],
map: () => [
new Map(),
new Map([
['key1', 'value1'],
['key2', 'value2'],
]),
],
set: () => [
new Set(),
new Set([
['key1', 'value1'],
['key2', 'value2'],
]),
],
generatorfunction: () => [function* x() {}],
promise: () => [Promise.resolve() ],
stream: () => [
new stream.Readable(),
new stream.Writable(),
new stream.Transform(),
new stream.Stream(),
new stream.Duplex(),
new stream.PassThrough(),
],
file: () => [path.resolve(`lib/data.js`)],
directory: () => [path.resolve(`lib`)],
dir: () => [path.resolve(`lib`)],
url: () => ['https://abc.ce', 'https://abc.de'],
json: () => ['{"x":1}', '{"val":{"nested":5}}'],
regexp: () => [new RegExp(/x/)],
}