UNPKG

2.26 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var TYPE;
4(function (TYPE) {
5 /**
6 * Raw text
7 */
8 TYPE[TYPE["literal"] = 0] = "literal";
9 /**
10 * Variable w/o any format, e.g `var` in `this is a {var}`
11 */
12 TYPE[TYPE["argument"] = 1] = "argument";
13 /**
14 * Variable w/ number format
15 */
16 TYPE[TYPE["number"] = 2] = "number";
17 /**
18 * Variable w/ date format
19 */
20 TYPE[TYPE["date"] = 3] = "date";
21 /**
22 * Variable w/ time format
23 */
24 TYPE[TYPE["time"] = 4] = "time";
25 /**
26 * Variable w/ select format
27 */
28 TYPE[TYPE["select"] = 5] = "select";
29 /**
30 * Variable w/ plural format
31 */
32 TYPE[TYPE["plural"] = 6] = "plural";
33})(TYPE = exports.TYPE || (exports.TYPE = {}));
34/**
35 * Type Guards
36 */
37function isLiteralElement(el) {
38 return el.type === TYPE.literal;
39}
40exports.isLiteralElement = isLiteralElement;
41function isArgumentElement(el) {
42 return el.type === TYPE.argument;
43}
44exports.isArgumentElement = isArgumentElement;
45function isNumberElement(el) {
46 return el.type === TYPE.number;
47}
48exports.isNumberElement = isNumberElement;
49function isDateElement(el) {
50 return el.type === TYPE.date;
51}
52exports.isDateElement = isDateElement;
53function isTimeElement(el) {
54 return el.type === TYPE.time;
55}
56exports.isTimeElement = isTimeElement;
57function isSelectElement(el) {
58 return el.type === TYPE.select;
59}
60exports.isSelectElement = isSelectElement;
61function isPluralElement(el) {
62 return el.type === TYPE.plural;
63}
64exports.isPluralElement = isPluralElement;
65function isNumberSkeleton(el) {
66 return !!(el && typeof el === 'object' && el.type === 0 /* number */);
67}
68exports.isNumberSkeleton = isNumberSkeleton;
69function isDateTimeSkeleton(el) {
70 return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);
71}
72exports.isDateTimeSkeleton = isDateTimeSkeleton;
73function createLiteralElement(value) {
74 return {
75 type: TYPE.literal,
76 value: value,
77 };
78}
79exports.createLiteralElement = createLiteralElement;
80function createNumberElement(value, style) {
81 return {
82 type: TYPE.number,
83 value: value,
84 style: style,
85 };
86}
87exports.createNumberElement = createNumberElement;