@metreeca/core - v0.9.17
    Preparing search index...

    Module language

    Language tags and ranges.

    Provides branded types and utilities for working with BCP 47 language tags (Tag) and RFC 4647 language ranges (TagRange). Use asTag and asTagRange to create validated instances, isTag and isTagRange as type guards, and matchTag to test tags against range patterns.

    Language Tags

    import { isTag, asTag } from "@metreeca/core";

    if (isTag(value)) {
    // value is typed as Tag
    }

    const languageTag = asTag("en-US"); // US English
    const simpleTag = asTag("fr"); // French
    const complexTag = asTag("zh-Hans-CN"); // Simplified Chinese (China)

    Language Ranges

    import { isTagRange, asTagRange } from "@metreeca/core";

    if (isTagRange(value)) {
    // value is typed as TagRange
    }

    const wildcard = asTagRange("*"); // matches any language
    const english = asTagRange("en-*"); // matches any English variant
    const swiss = asTagRange("*-CH"); // matches any language in Switzerland

    Matching

    import { matchTag, asTag, asTagRange } from "@metreeca/core";

    matchTag(asTag("de-CH"), asTagRange("de-*")); // true - Swiss German matches German range

    Type Aliases

    Tag

    Language tag as defined by BCP 47/RFC 5646.

    TagRange

    Language range as defined by BCP 47/RFC 4647.

    Functions

    isTag

    Checks if a value is a valid language tag.

    asTag

    Creates a validated language tag from a string.

    isTagRange

    Checks if a value is a valid language range.

    asTagRange

    Creates a validated language range from a string.

    matchTag

    Checks if a language tag matches a language range.