Skip to content

Typings, interfaces, and basic validation methods for Apple News Format

License

Notifications You must be signed in to change notification settings

sevenwestmedia-labs/apple-news-format

 
 

Repository files navigation

Apple News Format Types

CircleCI

Current to ANF version: 1.26.0

This is a collection of TypeScript types for the Apple News Format fields, metadata, and components.

Included are a small selection of validation functions for certain fields that contain restrictions on the strings that are passed in.

Usage

Install from npm using your desired package manager

npm install apple-news-format

TypeScript

Simply import the AppleNews namespace from the package.

import AppleNews from "apple-news-format";
// or
import { AppleNews } from "apple-news-format";

You can also import individual types, methods, and namespaces from the individual modules.

import { URI } from "apple-news-format/lib/primitives";
import * as Components from "apple-news-format/lib/components";
import { Image } from "apple-news-format/lib/images";

type Body = Components.Text.Body;

function buildImageComponent(path: string): Image {
  const imagePath: URI = URI(path);

  if (!imagePath) {
    throw new TypeError("Image URI was invalid!");
  }

  const imageComponent: Image = {
    role: "image",
    URL: imagePath,
  };

  return imageComponent;
}

JavaScript

You can import the specific validation functions listed as available below by targeting the specific modules.

const { URI } = require("apple-news-format/lib/primitives");
// OR require("apple-news-format/lib/primitives/uri");

Validation Functions

  • Color
    • Tests for a valid color string. Ex: "#RRGGBB"
  • SupportedUnits
    • Tests for a valid unit type. Ex: "80vw"
  • URI
    • Tests for a properly formed URI, and valid media types. Ex: "bundle://a-video.mp4"
  • Identifier URI
    • Tests for a properly formed internal URI targeting other parts of the document. Ex: "#info"
  • ListItemStyleCharacter
    • Tests for a single valid character for use in lists. Ex: "•"
  • DateTime
    • Tests for a valid ISO 8601 date time string
    • TODO: Make test more explicit
  • HTMLTableData
    • Tests for a valid string containing and opening and closing <table> tag.
    • TODO: Test for appropriate children elements: <thead>, <tbody>, <tr>, <td>, etc.

License

MIT


© 2019 Robert Fairley

About

Typings, interfaces, and basic validation methods for Apple News Format

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.0%
  • JavaScript 1.0%