Package Exports
- @jsonhero/value-types
- @jsonhero/value-types/lib/index.js
- @jsonhero/value-types/lib/type
- @jsonhero/value-types/lib/type.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@jsonhero/value-types) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
JSON Hero Value Types
Easily get value type information from JavaScript objects
Installing
npm install @jsonhero/value-typesImporting
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',
};