JSPM

@jsonhero/value-types

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q22836F
  • License MIT

Easily get value type information from JavaScript objects

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-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',
};