1.0.1 • Published 4 years ago
@jsonhero/value-types v1.0.1
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 name | Example |
---|---|
Null | null or undefined |
Boolean | true or false |
Number | 5.321 |
BigInt | BigInt(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 name | Primary name | Example |
---|---|---|
URL | String | https://www.google.com/ |
Email | String | email@example.co.jp |
DateTime | String | 2016-05-25T09:24:15,123 |
Image | String | https://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',
};