aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/date-fns/lightFormat
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/date-fns/lightFormat')
-rw-r--r--node_modules/date-fns/lightFormat/index.d.ts4
-rw-r--r--node_modules/date-fns/lightFormat/index.js127
-rw-r--r--node_modules/date-fns/lightFormat/index.js.flow52
-rw-r--r--node_modules/date-fns/lightFormat/package.json5
4 files changed, 188 insertions, 0 deletions
diff --git a/node_modules/date-fns/lightFormat/index.d.ts b/node_modules/date-fns/lightFormat/index.d.ts
new file mode 100644
index 0000000..4aa361b
--- /dev/null
+++ b/node_modules/date-fns/lightFormat/index.d.ts
@@ -0,0 +1,4 @@
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+import { lightFormat } from 'date-fns'
+export default lightFormat
diff --git a/node_modules/date-fns/lightFormat/index.js b/node_modules/date-fns/lightFormat/index.js
new file mode 100644
index 0000000..2f8adbd
--- /dev/null
+++ b/node_modules/date-fns/lightFormat/index.js
@@ -0,0 +1,127 @@
+"use strict";
+
+var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = lightFormat;
+var _index = _interopRequireDefault(require("../toDate/index.js"));
+var _index2 = _interopRequireDefault(require("../_lib/format/lightFormatters/index.js"));
+var _index3 = _interopRequireDefault(require("../_lib/getTimezoneOffsetInMilliseconds/index.js"));
+var _index4 = _interopRequireDefault(require("../isValid/index.js"));
+var _index5 = _interopRequireDefault(require("../subMilliseconds/index.js"));
+var _index6 = _interopRequireDefault(require("../_lib/requiredArgs/index.js"));
+// This RegExp consists of three parts separated by `|`:
+// - (\w)\1* matches any sequences of the same letter
+// - '' matches two quote characters in a row
+// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
+// except a single quote symbol, which ends the sequence.
+// Two quote characters do not end the sequence.
+// If there is no matching single quote
+// then the sequence will continue until the end of the string.
+// - . matches any single character unmatched by previous parts of the RegExps
+var formattingTokensRegExp = /(\w)\1*|''|'(''|[^'])+('|$)|./g;
+var escapedStringRegExp = /^'([^]*?)'?$/;
+var doubleQuoteRegExp = /''/g;
+var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
+
+/**
+ * @name lightFormat
+ * @category Common Helpers
+ * @summary Format the date.
+ *
+ * @description
+ * Return the formatted date string in the given format. Unlike `format`,
+ * `lightFormat` doesn't use locales and outputs date using the most popular tokens.
+ *
+ * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.
+ * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ *
+ * The characters wrapped between two single quotes characters (') are escaped.
+ * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
+ *
+ * Format of the string is based on Unicode Technical Standard #35:
+ * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
+ *
+ * Accepted patterns:
+ * | Unit | Pattern | Result examples |
+ * |---------------------------------|---------|-----------------------------------|
+ * | AM, PM | a..aaa | AM, PM |
+ * | | aaaa | a.m., p.m. |
+ * | | aaaaa | a, p |
+ * | Calendar year | y | 44, 1, 1900, 2017 |
+ * | | yy | 44, 01, 00, 17 |
+ * | | yyy | 044, 001, 000, 017 |
+ * | | yyyy | 0044, 0001, 1900, 2017 |
+ * | Month (formatting) | M | 1, 2, ..., 12 |
+ * | | MM | 01, 02, ..., 12 |
+ * | Day of month | d | 1, 2, ..., 31 |
+ * | | dd | 01, 02, ..., 31 |
+ * | Hour [1-12] | h | 1, 2, ..., 11, 12 |
+ * | | hh | 01, 02, ..., 11, 12 |
+ * | Hour [0-23] | H | 0, 1, 2, ..., 23 |
+ * | | HH | 00, 01, 02, ..., 23 |
+ * | Minute | m | 0, 1, ..., 59 |
+ * | | mm | 00, 01, ..., 59 |
+ * | Second | s | 0, 1, ..., 59 |
+ * | | ss | 00, 01, ..., 59 |
+ * | Fraction of second | S | 0, 1, ..., 9 |
+ * | | SS | 00, 01, ..., 99 |
+ * | | SSS | 000, 001, ..., 999 |
+ * | | SSSS | ... |
+ *
+ * @param {Date|Number} date - the original date
+ * @param {String} format - the string of tokens
+ * @returns {String} the formatted date string
+ * @throws {TypeError} 2 arguments required
+ * @throws {RangeError} format string contains an unescaped latin alphabet character
+ *
+ * @example
+ * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')
+ * //=> '2014-02-11'
+ */
+
+function lightFormat(dirtyDate, formatStr) {
+ (0, _index6.default)(2, arguments);
+ var originalDate = (0, _index.default)(dirtyDate);
+ if (!(0, _index4.default)(originalDate)) {
+ throw new RangeError('Invalid time value');
+ }
+
+ // Convert the date in system timezone to the same date in UTC+00:00 timezone.
+ // This ensures that when UTC functions will be implemented, locales will be compatible with them.
+ // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376
+ var timezoneOffset = (0, _index3.default)(originalDate);
+ var utcDate = (0, _index5.default)(originalDate, timezoneOffset);
+ var tokens = formatStr.match(formattingTokensRegExp);
+
+ // The only case when formattingTokensRegExp doesn't match the string is when it's empty
+ if (!tokens) return '';
+ var result = tokens.map(function (substring) {
+ // Replace two single quote characters with one single quote character
+ if (substring === "''") {
+ return "'";
+ }
+ var firstCharacter = substring[0];
+ if (firstCharacter === "'") {
+ return cleanEscapedString(substring);
+ }
+ var formatter = _index2.default[firstCharacter];
+ if (formatter) {
+ return formatter(utcDate, substring);
+ }
+ if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
+ throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');
+ }
+ return substring;
+ }).join('');
+ return result;
+}
+function cleanEscapedString(input) {
+ var matches = input.match(escapedStringRegExp);
+ if (!matches) {
+ return input;
+ }
+ return matches[1].replace(doubleQuoteRegExp, "'");
+}
+module.exports = exports.default; \ No newline at end of file
diff --git a/node_modules/date-fns/lightFormat/index.js.flow b/node_modules/date-fns/lightFormat/index.js.flow
new file mode 100644
index 0000000..818d9c4
--- /dev/null
+++ b/node_modules/date-fns/lightFormat/index.js.flow
@@ -0,0 +1,52 @@
+// @flow
+// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
+
+export type Interval = {
+ start: Date | number,
+ end: Date | number,
+}
+
+export type Locale = {
+ code?: string,
+ formatDistance?: (...args: Array<any>) => any,
+ formatRelative?: (...args: Array<any>) => any,
+ localize?: {
+ ordinalNumber: (...args: Array<any>) => any,
+ era: (...args: Array<any>) => any,
+ quarter: (...args: Array<any>) => any,
+ month: (...args: Array<any>) => any,
+ day: (...args: Array<any>) => any,
+ dayPeriod: (...args: Array<any>) => any,
+ },
+ formatLong?: {
+ date: (...args: Array<any>) => any,
+ time: (...args: Array<any>) => any,
+ dateTime: (...args: Array<any>) => any,
+ },
+ match?: {
+ ordinalNumber: (...args: Array<any>) => any,
+ era: (...args: Array<any>) => any,
+ quarter: (...args: Array<any>) => any,
+ month: (...args: Array<any>) => any,
+ day: (...args: Array<any>) => any,
+ dayPeriod: (...args: Array<any>) => any,
+ },
+ options?: {
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
+ firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
+ },
+}
+
+export type Duration = {
+ years?: number,
+ months?: number,
+ weeks?: number,
+ days?: number,
+ hours?: number,
+ minutes?: number,
+ seconds?: number,
+}
+
+export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
+
+declare module.exports: (date: Date | number, format: string) => string
diff --git a/node_modules/date-fns/lightFormat/package.json b/node_modules/date-fns/lightFormat/package.json
new file mode 100644
index 0000000..612f5d2
--- /dev/null
+++ b/node_modules/date-fns/lightFormat/package.json
@@ -0,0 +1,5 @@
+{
+ "sideEffects": false,
+ "module": "../esm/lightFormat/index.js",
+ "typings": "../typings.d.ts"
+} \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage