apple-news-format

Types for Apple News Format, including a small selection of string validation functions

Usage no npm install needed!

<script type="module">
  import appleNewsFormat from 'https://cdn.skypack.dev/apple-news-format';
</script>

README

Apple News Format Types

CircleCI

Current to ANF version: 1.17.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

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