1.0.1 • Published 4 years ago

@jsonhero/value-types v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

JSON Hero Value Types

Easily get value type information from JavaScript objects

Installing

npm install @jsonhero/value-types

Importing

You can require

const { getType } = require('@jsonhero/value-types');

Or if you're using TypeScript:

import { getType } from '@jsonhero/value-types';

Getting started

Primitive types

Primitive nameExample
Nullnull or undefined
Booleantrue or false
Number5.321
BigIntBigInt(9007199254740991)
String'Legendary'
Object{ key: value }
Array['value1', 'value2']

Boolean

let type = getType(true);
//will return an object like this
type = {
  primitiveType: 'Boolean',
  isCollection: false,
  hasSecondaryType: false,
  hasTertiaryType: false,
};

Array

let type = getType(['item1', 'item2']);
//will return an object like this
type = {
  primitiveType: 'Array',
  isCollection: true,
  hasSecondaryType: false,
  hasTertiaryType: false,
};

Object

let type = getType({ key: 'value' });
//will return an object like this
type = {
  primitiveType: 'Object',
  isCollection: true,
  hasSecondaryType: false,
  hasTertiaryType: false,
};

Secondary types

Secondary types are more sophisticated, they always have a primitive type as well.

Secondary namePrimary nameExample
URLStringhttps://www.google.com/
EmailStringemail@example.co.jp
DateTimeString2016-05-25T09:24:15,123
ImageStringhttps://media.giphy.com/media/NEvPzZ8bd1V4Y/giphy.gif

URL is a secondary type from a string.

let type = getType('https://www.google.com/');
//will return an object like this
type = {
  primitiveType: 'String',
  isCollection: false,
  hasSecondaryType: true,
  secondaryType: 'URL',
  hasTertiaryType: false,
};

Image is a secondary type, which also has mimetype information in the tertiary type

let type = getType('https://media.giphy.com/media/NEvPzZ8bd1V4Y/giphy.gif');
//will return an object like this
type = {
  primitiveType: 'String',
  isCollection: false,
  hasSecondaryType: true,
  secondaryType: 'Image',
  hasTertiaryType: true,
  tertiaryType: 'image/gif',
};