Getting Started
Install the package by running
yarn add @massiveinfinity/contentschema
or if you are using npm:
npm install --save @massiveinfinity/contentschema
Usage
import { helpers } from "@massiveinfinity/contentschema";
const v1Schema = {
schemaVersion: 1,
blocks: [...]
};
const v2Schema = helpers.migrate.v1ToV2(v1Schema);
console.log(v2Schema); // { schemaVersion: 2, blocks: [...] }
alternatively, you can import everything from the module into a module object:
import * as contentSchema from "@massiveinfinity/contentschema";
const v1Schema = {
schemaVersion: 1,
blocks: [...]
};
const v2Schema = contentSchema.helpers.migrate.v1ToV2(v1Schema);
console.log(v2Schema); // { schemaVersion: 2, blocks: [...] }
API
constants
BLOCK_TYPE
V1_BLOCK_TYPE
constants.BLOCK_TYPE.V1_BLOCK_TYPE
constants
Block types in schema version 1.
Constants | Description |
---|---|
SECTION | |
DISCUSSION | |
FEEDBACK | |
BUBBLE | |
OPEN |
V2_BLOCK_TYPE
constants.BLOCK_TYPE.V2_BLOCK_TYPE
constants
Block types in schema version 2.
Constants | Description |
---|---|
SECTION | |
SECTION_TITLE | |
SECTION_DESCRIPTION | |
SECTION_CONTENT | |
DISCUSSION | |
DISCUSSION_TITLE | |
COMMENT_SECTION | |
COMMENT | |
FEEDBACK | |
FEEDBACK_TITLE | |
FEEDBACK_DESCRIPTION | |
RADIO_GROUP | |
RADIO | |
RADIO_TITLE | |
RADIO_DESCRIPTION |
V1
BLOCK_TYPE
constants.V1.BLOCK_TYPE
constants
Similar to constants.BLOCK_TYPE.V1_BLOCK_TYPE
.
V2
BLOCK_TYPE
constants.V2.BLOCK_TYPE
constants
Similar to constants.BLOCK_TYPE.V2_BLOCK_TYPE
.
VERSION
constants.VERSION
constants
All schema version numbers.
Constants | Description |
---|---|
1 | Version 1 |
2 | Version 2 |
LATEST | Latest schema version available |
helpers
genId
helpers.genId()
function
Used to generate ID for content block.
signature (blockType: BLOCK_TYPE, depth: number, index: number) => ID: string
migrate
v1ToV2
helpers.migrate.v1ToV2()
function
Used to convert version 1 content schema to version 2 content schema. Returns version 2 content schema.
signature (v1ContentSchema: contentSchema) => v2ContentSchema: contentSchema