New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

typize

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typize

Dynamic type detection for Javascript

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

Infer the data-type of your variables

Sometimes you want to dynamically infer/guess the best datatype to allocate to a variable.

This module was written as a part of a CMS that guesses the most appropriate data-type to save data in where the user has not defined it.

Getting started

npm install --save typize

OR if you fancy yarn

yarn add typize

Start Checking Types

const  typize = require('typize');

var values = ["http://www.ietf.org/rfc/rfc2732.txt", '💯', new Date(), '2015-1-11 13:57:24'];

values.forEach(function (value) {

    var res = typize(value);
    console.log(JSON.stringify(res, 0, 4));
    
})

This will output:

{
    "value": {
        "original": "http://www.ietf.org/rfc/rfc2732.txt",
        "inferred": "http://www.ietf.org/rfc/rfc2732.txt"
    },
    "schema": {
        "type": "text",
        "format": "remote_file"
    }
}
{
    "value": {
        "original": "💯",
        "inferred": "💯"
    },
    "schema": {
        "type": "text",
        "format": "emoji"
    }
}
{
    "value": {
        "original": "2018-02-09T20:21:05.295Z",
        "inferred": "2018-02-09T20:21:05.295Z"
    },
    "schema": {
        "type": "date"
    }
}
{
    "value": {
        "original": "2015-1-11 13:57:24",
        "inferred": "2015-01-11T10:57:24.000Z"
    },
    "schema": {
        "type": "date_time"
    }
}                                                                  

Understanding the results

First, I wrote this module for a project I was working on to be able to detect data-types but also attempt to infer what type of strings I had.

So I added two properties:

  • value.inferred : This property holds the value of the data as converted to the inferred datatype. For example, a value of "1" will be inferred to as an "integer" datatype and thus "value.inferred" will be the numeral 1.
  • schema.format : This value indicates whether any more detailed data-types can be inferred from strings. The example above tells us that "http://www.ietf.org/rfc/rfc2732.txt" is not only a string but also a "remote_file". Formats include:
    • emoji
    • email
    • url
    • list (for comma delimited values such as "man,woman,child")
    • color
    • file
    • remote_file
    • markup

Check out the tests

Install dev dependencies & check out the various tests by running:

npm test

Disclaimer

NOTE: This module attempts to best guess the user data-type and will not be accurate 100% of the time. Use cautiously.

Keywords

dynamic

FAQs

Package last updated on 04 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts