date-and-time 3.1.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -15
- package/date-and-time.js +26 -27
- package/date-and-time.min.js +1 -1
- package/esm/date-and-time.es.js +26 -27
- package/esm/date-and-time.es.min.js +1 -1
- package/esm/date-and-time.mjs +26 -27
- package/package.json +4 -4
- package/rollup.config.mjs +0 -356
package/README.md
CHANGED
|
@@ -25,17 +25,16 @@ npm i date-and-time
|
|
|
25
25
|
|
|
26
26
|
## Recent Changes
|
|
27
27
|
|
|
28
|
+
- 3.3.0
|
|
29
|
+
- Refactored `format()`, `isValid()`, and `preparse()`, further improved performance.
|
|
30
|
+
|
|
31
|
+
- 3.2.0
|
|
32
|
+
- Refactored `compile()`, `format()`, and `preparse()`, slightly improved performance.
|
|
33
|
+
|
|
28
34
|
- 3.1.1
|
|
29
35
|
- Fixed an issue where `format()` could output incorrect UTC times in locales with daylight savings time.
|
|
30
36
|
- Refactored `formatTZ()` of `timezone` plugin.
|
|
31
37
|
|
|
32
|
-
- 3.1.0
|
|
33
|
-
- Improved accuracy of `parseTZ()` in `timezone` plugin.
|
|
34
|
-
- Organized some test modules.
|
|
35
|
-
|
|
36
|
-
- 3.0.3
|
|
37
|
-
- Fixed TypeScript types exports in `package.json`.
|
|
38
|
-
|
|
39
38
|
## Usage
|
|
40
39
|
|
|
41
40
|
- ES Modules:
|
|
@@ -189,7 +188,7 @@ You can also use the following tokens by importing plugins. See [PLUGINS.md](./P
|
|
|
189
188
|
|
|
190
189
|
#### Note 1. Comments
|
|
191
190
|
|
|
192
|
-
|
|
191
|
+
Parts of the given format string enclosed in square brackets are considered comments and are output as is, regardless of whether they are tokens or not.
|
|
193
192
|
|
|
194
193
|
```javascript
|
|
195
194
|
date.format(new Date(), 'DD-[MM]-YYYY'); // => '02-MM-2015'
|
|
@@ -198,7 +197,7 @@ date.format(new Date(), '[DD-[MM]-YYYY]'); // => 'DD-[MM]-YYYY'
|
|
|
198
197
|
|
|
199
198
|
#### Note 2. Output as UTC
|
|
200
199
|
|
|
201
|
-
This function
|
|
200
|
+
This function outputs the date and time in the local time zone of the execution environment by default. If you want to output in UTC, set the UTC option (the third argument) to true. To output in any other time zone, you will need [a plugin](./PLUGINS.md).
|
|
202
201
|
|
|
203
202
|
```javascript
|
|
204
203
|
date.format(new Date(), 'hh:mm A [GMT]Z'); // => '11:14 PM GMT-0800'
|
|
@@ -270,7 +269,7 @@ You can also use the following tokens by importing plugins. See [PLUGINS.md](./P
|
|
|
270
269
|
|
|
271
270
|
#### Note 1. Invalid Date
|
|
272
271
|
|
|
273
|
-
If
|
|
272
|
+
If this function fails to parse, it will return `Invalid Date`. Notice that the `Invalid Date` is a Date object, not `NaN` or `null`. You can tell whether the Date object is invalid as follows:
|
|
274
273
|
|
|
275
274
|
```javascript
|
|
276
275
|
const today = date.parse('Jam 1 2017', 'MMM D YYYY');
|
|
@@ -282,7 +281,7 @@ if (isNaN(today.getTime())) {
|
|
|
282
281
|
|
|
283
282
|
#### Note 2. Input as UTC
|
|
284
283
|
|
|
285
|
-
This function
|
|
284
|
+
This function uses the local time zone offset value of the execution environment by default if the given string does not contain a time zone offset value. To make it use UTC instead, set the UTC option (the third argument) to true. If you want it to use any other time zone, you will need [a plugin](./PLUGINS.md).
|
|
286
285
|
|
|
287
286
|
```javascript
|
|
288
287
|
date.parse('11:14:05 PM', 'hh:mm:ss A'); // => Jan 1 1970 23:14:05 GMT-0800
|
|
@@ -319,9 +318,9 @@ date.parse('11:14:05', 'hh:mm:ss'); // => Jan 1 1970 11:14:05 GMT-0800
|
|
|
319
318
|
date.parse('11:14:05 PM', 'hh:mm:ss A'); // => Jan 1 1970 23:14:05 GMT-0800
|
|
320
319
|
```
|
|
321
320
|
|
|
322
|
-
#### Note 6. Token
|
|
321
|
+
#### Note 6. Token invalidation
|
|
323
322
|
|
|
324
|
-
|
|
323
|
+
Any part of the given format string that you do not want to be recognized as a token should be enclosed in square brackets. They are considered comments and will not be parsed.
|
|
325
324
|
|
|
326
325
|
```javascript
|
|
327
326
|
date.parse('12 hours 34 minutes', 'HH hours mm minutes'); // => Invalid Date
|
|
@@ -330,7 +329,7 @@ date.parse('12 hours 34 minutes', 'HH [hours] mm [minutes]'); // => Jan 1 1970
|
|
|
330
329
|
|
|
331
330
|
#### Note 7. Wildcard
|
|
332
331
|
|
|
333
|
-
|
|
332
|
+
Whitespace acts as a wildcard token. This token will not parse the corresponding parts of the date and time strings. This behavior is similar to enclosing part of a format string in square brackets (Token invalidation), but with the flexibility that the contents do not have to match, as long as the number of characters in the corresponding parts match.
|
|
334
333
|
|
|
335
334
|
```javascript
|
|
336
335
|
// This will be an error.
|
|
@@ -341,7 +340,7 @@ date.parse('2015/01/02 11:14:05', 'YYYY/MM/DD '); // => Jan 2 2015 00:
|
|
|
341
340
|
|
|
342
341
|
#### Note 8. Ellipsis
|
|
343
342
|
|
|
344
|
-
|
|
343
|
+
`...` token ignores subsequent corresponding date and time strings. Use this token only at the end of a format string. The above example can be also written like this:
|
|
345
344
|
|
|
346
345
|
```javascript
|
|
347
346
|
date.parse('2015/01/02 11:14:05', 'YYYY/MM/DD...'); // => Jan 2 2015 00:00:00 GMT-0800
|
package/date-and-time.js
CHANGED
|
@@ -151,12 +151,7 @@
|
|
|
151
151
|
* @returns {Array.<string>} A compiled object
|
|
152
152
|
*/
|
|
153
153
|
proto.compile = function (formatString) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
while ((keys = re.exec(formatString))) {
|
|
157
|
-
pattern[pattern.length] = keys[0];
|
|
158
|
-
}
|
|
159
|
-
return pattern;
|
|
154
|
+
return [formatString].concat(formatString.match(/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g) || []);
|
|
160
155
|
};
|
|
161
156
|
|
|
162
157
|
/**
|
|
@@ -168,6 +163,7 @@
|
|
|
168
163
|
*/
|
|
169
164
|
proto.format = function (dateObj, arg, utc) {
|
|
170
165
|
var ctx = this || date, pattern = typeof arg === 'string' ? ctx.compile(arg) : arg,
|
|
166
|
+
formatter = ctx._formatter,
|
|
171
167
|
d = (function () {
|
|
172
168
|
if (utc) {
|
|
173
169
|
var u = new Date(dateObj.getTime());
|
|
@@ -185,11 +181,13 @@
|
|
|
185
181
|
}
|
|
186
182
|
return dateObj;
|
|
187
183
|
}()),
|
|
188
|
-
|
|
184
|
+
comment = /^\[(.*)\]$/, str = '';
|
|
189
185
|
|
|
190
186
|
for (var i = 1, len = pattern.length, token; i < len; i++) {
|
|
191
187
|
token = pattern[i];
|
|
192
|
-
str += formatter[token]
|
|
188
|
+
str += formatter[token]
|
|
189
|
+
? formatter.post(formatter[token](d, pattern[0]))
|
|
190
|
+
: comment.test(token) ? token.replace(comment, '$1') : token;
|
|
193
191
|
}
|
|
194
192
|
return str;
|
|
195
193
|
};
|
|
@@ -203,33 +201,35 @@
|
|
|
203
201
|
*/
|
|
204
202
|
proto.preparse = function (dateString, arg) {
|
|
205
203
|
var ctx = this || date, pattern = typeof arg === 'string' ? ctx.compile(arg) : arg,
|
|
204
|
+
parser = ctx._parser,
|
|
206
205
|
dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 0, _match: 0 },
|
|
207
|
-
comment =
|
|
206
|
+
wildcard = ' ', comment = /^\[(.*)\]$/, ellipsis = '...';
|
|
208
207
|
|
|
209
208
|
dateString = parser.pre(dateString);
|
|
210
|
-
for (var i = 1, len = pattern.length, token, result; i < len; i++) {
|
|
209
|
+
for (var i = 1, len = pattern.length, token, str, result; i < len; i++) {
|
|
211
210
|
token = pattern[i];
|
|
211
|
+
str = dateString.substring(dt._index);
|
|
212
|
+
|
|
212
213
|
if (parser[token]) {
|
|
213
|
-
result = parser[token](
|
|
214
|
+
result = parser[token](str, pattern[0]);
|
|
214
215
|
if (!result.length) {
|
|
215
|
-
|
|
216
|
+
break;
|
|
216
217
|
}
|
|
217
|
-
offset += result.length;
|
|
218
218
|
dt[result.token || token.charAt(0)] = result.value;
|
|
219
|
+
dt._index += result.length;
|
|
219
220
|
dt._match++;
|
|
220
|
-
} else if (token ===
|
|
221
|
-
|
|
222
|
-
} else if (comment.test(token) && !
|
|
223
|
-
|
|
224
|
-
} else if (token ===
|
|
225
|
-
|
|
221
|
+
} else if (token === str.charAt(0) || token === wildcard) {
|
|
222
|
+
dt._index++;
|
|
223
|
+
} else if (comment.test(token) && !str.indexOf(token.replace(comment, '$1'))) {
|
|
224
|
+
dt._index += token.length - 2;
|
|
225
|
+
} else if (token === ellipsis) {
|
|
226
|
+
dt._index = dateString.length;
|
|
226
227
|
break;
|
|
227
228
|
} else {
|
|
228
229
|
break;
|
|
229
230
|
}
|
|
230
231
|
}
|
|
231
|
-
dt.H = dt.H || parser.h12(dt.h, dt.A);
|
|
232
|
-
dt._index = offset;
|
|
232
|
+
dt.H = dt.H || parser.h12(dt.h, dt.A);
|
|
233
233
|
dt._length = dateString.length;
|
|
234
234
|
return dt;
|
|
235
235
|
};
|
|
@@ -262,14 +262,13 @@
|
|
|
262
262
|
* @returns {boolean} Whether the date and time string is a valid date and time
|
|
263
263
|
*/
|
|
264
264
|
proto.isValid = function (arg1, arg2) {
|
|
265
|
-
var ctx = this || date, dt = typeof arg1 === 'string' ? ctx.preparse(arg1, arg2) : arg1
|
|
266
|
-
last = [31, 28 + ctx.isLeapYear(dt.Y) | 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][dt.M - 1];
|
|
265
|
+
var ctx = this || date, dt = typeof arg1 === 'string' ? ctx.preparse(arg1, arg2) : arg1;
|
|
267
266
|
|
|
268
267
|
return !(
|
|
269
|
-
dt._index < 1 || dt._length < 1 || dt._index - dt._length || dt._match < 1
|
|
270
|
-
dt.Y < 1 || dt.Y > 9999 || dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D >
|
|
271
|
-
dt.H < 0 || dt.H > 23 || dt.m < 0 || dt.m > 59 || dt.s < 0 || dt.s > 59 || dt.S < 0 || dt.S > 999
|
|
272
|
-
dt.Z < -840 || dt.Z > 720
|
|
268
|
+
dt._index < 1 || dt._length < 1 || dt._index - dt._length || dt._match < 1
|
|
269
|
+
|| dt.Y < 1 || dt.Y > 9999 || dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D > new Date(dt.Y, dt.M, 0).getDate()
|
|
270
|
+
|| dt.H < 0 || dt.H > 23 || dt.m < 0 || dt.m > 59 || dt.s < 0 || dt.s > 59 || dt.S < 0 || dt.S > 999
|
|
271
|
+
|| dt.Z < -840 || dt.Z > 720
|
|
273
272
|
);
|
|
274
273
|
};
|
|
275
274
|
|
package/date-and-time.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).date=t()}(this,(function(){"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* @preserve date-and-time (c) KNOWLEDGECODE | MIT
|
|
4
|
-
*/var e,t,n={},r={},i="en",u={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"]},s={YYYY:function(e){return("000"+e.getFullYear()).slice(-4)},YY:function(e){return("0"+e.getFullYear()).slice(-2)},Y:function(e){return""+e.getFullYear()},MMMM:function(e){return this.res.MMMM[e.getMonth()]},MMM:function(e){return this.res.MMM[e.getMonth()]},MM:function(e){return("0"+(e.getMonth()+1)).slice(-2)},M:function(e){return""+(e.getMonth()+1)},DD:function(e){return("0"+e.getDate()).slice(-2)},D:function(e){return""+e.getDate()},HH:function(e){return("0"+e.getHours()).slice(-2)},H:function(e){return""+e.getHours()},A:function(e){return this.res.A[e.getHours()>11|0]},hh:function(e){return("0"+(e.getHours()%12||12)).slice(-2)},h:function(e){return""+(e.getHours()%12||12)},mm:function(e){return("0"+e.getMinutes()).slice(-2)},m:function(e){return""+e.getMinutes()},ss:function(e){return("0"+e.getSeconds()).slice(-2)},s:function(e){return""+e.getSeconds()},SSS:function(e){return("00"+e.getMilliseconds()).slice(-3)},SS:function(e){return("0"+(e.getMilliseconds()/10|0)).slice(-2)},S:function(e){return""+(e.getMilliseconds()/100|0)},dddd:function(e){return this.res.dddd[e.getDay()]},ddd:function(e){return this.res.ddd[e.getDay()]},dd:function(e){return this.res.dd[e.getDay()]},Z:function(e){var t=e.getTimezoneOffset()/.6|0;return(t>0?"-":"+")+("000"+Math.abs(t-(t%100*.4|0))).slice(-4)},ZZ:function(e){var t=e.getTimezoneOffset(),n=Math.abs(t);return(t>0?"-":"+")+("0"+(n/60|0)).slice(-2)+":"+("0"+n%60).slice(-2)},post:function(e){return e},res:u},o={YYYY:function(e){return this.exec(/^\d{4}/,e)},Y:function(e){return this.exec(/^\d{1,4}/,e)},MMMM:function(e){var t=this.find(this.res.MMMM,e);return t.value++,t},MMM:function(e){var t=this.find(this.res.MMM,e);return t.value++,t},MM:function(e){return this.exec(/^\d\d/,e)},M:function(e){return this.exec(/^\d\d?/,e)},DD:function(e){return this.exec(/^\d\d/,e)},D:function(e){return this.exec(/^\d\d?/,e)},HH:function(e){return this.exec(/^\d\d/,e)},H:function(e){return this.exec(/^\d\d?/,e)},A:function(e){return this.find(this.res.A,e)},hh:function(e){return this.exec(/^\d\d/,e)},h:function(e){return this.exec(/^\d\d?/,e)},mm:function(e){return this.exec(/^\d\d/,e)},m:function(e){return this.exec(/^\d\d?/,e)},ss:function(e){return this.exec(/^\d\d/,e)},s:function(e){return this.exec(/^\d\d?/,e)},SSS:function(e){return this.exec(/^\d{1,3}/,e)},SS:function(e){var t=this.exec(/^\d\d?/,e);return t.value*=10,t},S:function(e){var t=this.exec(/^\d/,e);return t.value*=100,t},Z:function(e){var t=this.exec(/^[+-]\d{2}[0-5]\d/,e);return t.value=-60*(t.value/100|0)-t.value%100,t},ZZ:function(e){var t=/^([+-])(\d{2}):([0-5]\d)/.exec(e)||["","","",""];return{value:0-(60*(t[1]+t[2]|0)+(t[1]+t[3]|0)),length:t[0].length}},h12:function(e,t){return(12===e?0:e)+12*t},exec:function(e,t){var n=(e.exec(t)||[""])[0];return{value:0|n,length:n.length}},find:function(e,t){for(var n,r=-1,i=0,u=0,s=e.length;u<s;u++)n=e[u],!t.indexOf(n)&&n.length>i&&(r=u,i=n.length);return{value:r,length:i}},pre:function(e){return e},res:u},c=function(e,t,n,r){var i,u={};for(i in e)u[i]=e[i];for(i in t||{})!!n^!!u[i]||(u[i]=t[i]);return r&&(u.res=r),u},a={_formatter:s,_parser:o};return a.compile=function(e){
|
|
4
|
+
*/var e,t,n={},r={},i="en",u={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"]},s={YYYY:function(e){return("000"+e.getFullYear()).slice(-4)},YY:function(e){return("0"+e.getFullYear()).slice(-2)},Y:function(e){return""+e.getFullYear()},MMMM:function(e){return this.res.MMMM[e.getMonth()]},MMM:function(e){return this.res.MMM[e.getMonth()]},MM:function(e){return("0"+(e.getMonth()+1)).slice(-2)},M:function(e){return""+(e.getMonth()+1)},DD:function(e){return("0"+e.getDate()).slice(-2)},D:function(e){return""+e.getDate()},HH:function(e){return("0"+e.getHours()).slice(-2)},H:function(e){return""+e.getHours()},A:function(e){return this.res.A[e.getHours()>11|0]},hh:function(e){return("0"+(e.getHours()%12||12)).slice(-2)},h:function(e){return""+(e.getHours()%12||12)},mm:function(e){return("0"+e.getMinutes()).slice(-2)},m:function(e){return""+e.getMinutes()},ss:function(e){return("0"+e.getSeconds()).slice(-2)},s:function(e){return""+e.getSeconds()},SSS:function(e){return("00"+e.getMilliseconds()).slice(-3)},SS:function(e){return("0"+(e.getMilliseconds()/10|0)).slice(-2)},S:function(e){return""+(e.getMilliseconds()/100|0)},dddd:function(e){return this.res.dddd[e.getDay()]},ddd:function(e){return this.res.ddd[e.getDay()]},dd:function(e){return this.res.dd[e.getDay()]},Z:function(e){var t=e.getTimezoneOffset()/.6|0;return(t>0?"-":"+")+("000"+Math.abs(t-(t%100*.4|0))).slice(-4)},ZZ:function(e){var t=e.getTimezoneOffset(),n=Math.abs(t);return(t>0?"-":"+")+("0"+(n/60|0)).slice(-2)+":"+("0"+n%60).slice(-2)},post:function(e){return e},res:u},o={YYYY:function(e){return this.exec(/^\d{4}/,e)},Y:function(e){return this.exec(/^\d{1,4}/,e)},MMMM:function(e){var t=this.find(this.res.MMMM,e);return t.value++,t},MMM:function(e){var t=this.find(this.res.MMM,e);return t.value++,t},MM:function(e){return this.exec(/^\d\d/,e)},M:function(e){return this.exec(/^\d\d?/,e)},DD:function(e){return this.exec(/^\d\d/,e)},D:function(e){return this.exec(/^\d\d?/,e)},HH:function(e){return this.exec(/^\d\d/,e)},H:function(e){return this.exec(/^\d\d?/,e)},A:function(e){return this.find(this.res.A,e)},hh:function(e){return this.exec(/^\d\d/,e)},h:function(e){return this.exec(/^\d\d?/,e)},mm:function(e){return this.exec(/^\d\d/,e)},m:function(e){return this.exec(/^\d\d?/,e)},ss:function(e){return this.exec(/^\d\d/,e)},s:function(e){return this.exec(/^\d\d?/,e)},SSS:function(e){return this.exec(/^\d{1,3}/,e)},SS:function(e){var t=this.exec(/^\d\d?/,e);return t.value*=10,t},S:function(e){var t=this.exec(/^\d/,e);return t.value*=100,t},Z:function(e){var t=this.exec(/^[+-]\d{2}[0-5]\d/,e);return t.value=-60*(t.value/100|0)-t.value%100,t},ZZ:function(e){var t=/^([+-])(\d{2}):([0-5]\d)/.exec(e)||["","","",""];return{value:0-(60*(t[1]+t[2]|0)+(t[1]+t[3]|0)),length:t[0].length}},h12:function(e,t){return(12===e?0:e)+12*t},exec:function(e,t){var n=(e.exec(t)||[""])[0];return{value:0|n,length:n.length}},find:function(e,t){for(var n,r=-1,i=0,u=0,s=e.length;u<s;u++)n=e[u],!t.indexOf(n)&&n.length>i&&(r=u,i=n.length);return{value:r,length:i}},pre:function(e){return e},res:u},c=function(e,t,n,r){var i,u={};for(i in e)u[i]=e[i];for(i in t||{})!!n^!!u[i]||(u[i]=t[i]);return r&&(u.res=r),u},a={_formatter:s,_parser:o};return a.compile=function(e){return[e].concat(e.match(/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g)||[])},a.format=function(e,n,r){for(var i,u=this||t,s="string"==typeof n?u.compile(n):n,o=u._formatter,c=function(){if(r){var t=new Date(e.getTime());return t.getFullYear=t.getUTCFullYear,t.getMonth=t.getUTCMonth,t.getDate=t.getUTCDate,t.getHours=t.getUTCHours,t.getMinutes=t.getUTCMinutes,t.getSeconds=t.getUTCSeconds,t.getMilliseconds=t.getUTCMilliseconds,t.getDay=t.getUTCDay,t.getTimezoneOffset=function(){return 0},t}return e}(),a=/^\[(.*)\]$/,d="",f=1,l=s.length;f<l;f++)d+=o[i=s[f]]?o.post(o[i](c,s[0])):a.test(i)?i.replace(a,"$1"):i;return d},a.preparse=function(e,n){var r=this||t,i="string"==typeof n?r.compile(n):n,u=r._parser,s={Y:1970,M:1,D:1,H:0,A:0,h:0,m:0,s:0,S:0,Z:0,_index:0,_length:0,_match:0},o=/^\[(.*)\]$/;e=u.pre(e);for(var c,a,d,f=1,l=i.length;f<l;f++)if(c=i[f],a=e.substring(s._index),u[c]){if(!(d=u[c](a,i[0])).length)break;s[d.token||c.charAt(0)]=d.value,s._index+=d.length,s._match++}else if(c===a.charAt(0)||" "===c)s._index++;else{if(!o.test(c)||a.indexOf(c.replace(o,"$1"))){if("..."===c){s._index=e.length;break}break}s._index+=c.length-2}return s.H=s.H||u.h12(s.h,s.A),s._length=e.length,s},a.parse=function(e,n,r){var i=this||t,u="string"==typeof n?i.compile(n):n,s=i.preparse(e,u);return i.isValid(s)?(s.M-=s.Y<100?22801:1,r||~i._parser.find(u,"ZZ").value?new Date(Date.UTC(s.Y,s.M,s.D,s.H,s.m+s.Z,s.s,s.S)):new Date(s.Y,s.M,s.D,s.H,s.m,s.s,s.S)):new Date(NaN)},a.isValid=function(e,n){var r="string"==typeof e?(this||t).preparse(e,n):e;return!(r._index<1||r._length<1||r._index-r._length||r._match<1||r.Y<1||r.Y>9999||r.M<1||r.M>12||r.D<1||r.D>new Date(r.Y,r.M,0).getDate()||r.H<0||r.H>23||r.m<0||r.m>59||r.s<0||r.s>59||r.S<0||r.S>999||r.Z<-840||r.Z>720)},a.transform=function(e,n,r,i){const u=this||t;return u.format(u.parse(e,n),r,i)},a.addYears=function(e,n,r){return(this||t).addMonths(e,12*n,r)},a.addMonths=function(e,n,r){var i=new Date(e.getTime());if(r){if(i.setUTCMonth(i.getUTCMonth()+n),i.getUTCDate()<e.getUTCDate())return(this||t).addDays(i,-i.getUTCDate(),r)}else if(i.setMonth(i.getMonth()+n),i.getDate()<e.getDate())return(this||t).addDays(i,-i.getDate(),r);return i},a.addDays=function(e,n,r){return(this||t).addHours(e,24*n,r)},a.addHours=function(e,n,r){return(this||t).addMinutes(e,60*n,r)},a.addMinutes=function(e,n,r){return(this||t).addSeconds(e,60*n,r)},a.addSeconds=function(e,n,r){return(this||t).addMilliseconds(e,1e3*n,r)},a.addMilliseconds=function(e,t,n){var r=new Date(e.getTime());return n?r.setUTCMilliseconds(r.getUTCMilliseconds()+t):r.setMilliseconds(r.getMilliseconds()+t),r},a.subtract=function(e,t){var n=e.getTime()-t.getTime();return{toMilliseconds:function(){return n},toSeconds:function(){return n/1e3},toMinutes:function(){return n/6e4},toHours:function(){return n/36e5},toDays:function(){return n/864e5}}},a.isLeapYear=function(e){return!((e%4||!(e%100))&&e%400)},a.isSameDay=function(e,t){return e.toDateString()===t.toDateString()},a.locale=function(e,t){n[e]||(n[e]=t)},a.plugin=function(e,t){r[e]||(r[e]=t)},e=c(a),(t=c(a)).locale=function(d){var f="function"==typeof d?d:t.locale[d];if(!f)return i;i=f(a);var l=n[i]||{},h=c(u,l.res,!0),g=c(s,l.formatter,!0,h),M=c(o,l.parser,!0,h);for(var p in t._formatter=e._formatter=g,t._parser=e._parser=M,r)t.extend(r[p]);return i},t.extend=function(e){var n=c(t._parser.res,e.res),r=e.extender||{};for(var i in t._formatter=c(t._formatter,e.formatter,!1,n),t._parser=c(t._parser,e.parser,!1,n),r)t[i]||(t[i]=r[i])},t.plugin=function(n){var i="function"==typeof n?n:t.plugin[n];i&&t.extend(r[i(a,e)]||{})},t}));
|
package/esm/date-and-time.es.js
CHANGED
|
@@ -145,12 +145,7 @@ var locales = {},
|
|
|
145
145
|
* @returns {Array.<string>} A compiled object
|
|
146
146
|
*/
|
|
147
147
|
proto.compile = function (formatString) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
while ((keys = re.exec(formatString))) {
|
|
151
|
-
pattern[pattern.length] = keys[0];
|
|
152
|
-
}
|
|
153
|
-
return pattern;
|
|
148
|
+
return [formatString].concat(formatString.match(/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g) || []);
|
|
154
149
|
};
|
|
155
150
|
|
|
156
151
|
/**
|
|
@@ -162,6 +157,7 @@ proto.compile = function (formatString) {
|
|
|
162
157
|
*/
|
|
163
158
|
proto.format = function (dateObj, arg, utc) {
|
|
164
159
|
var ctx = this || date, pattern = typeof arg === 'string' ? ctx.compile(arg) : arg,
|
|
160
|
+
formatter = ctx._formatter,
|
|
165
161
|
d = (function () {
|
|
166
162
|
if (utc) {
|
|
167
163
|
var u = new Date(dateObj.getTime());
|
|
@@ -179,11 +175,13 @@ proto.format = function (dateObj, arg, utc) {
|
|
|
179
175
|
}
|
|
180
176
|
return dateObj;
|
|
181
177
|
}()),
|
|
182
|
-
|
|
178
|
+
comment = /^\[(.*)\]$/, str = '';
|
|
183
179
|
|
|
184
180
|
for (var i = 1, len = pattern.length, token; i < len; i++) {
|
|
185
181
|
token = pattern[i];
|
|
186
|
-
str += formatter[token]
|
|
182
|
+
str += formatter[token]
|
|
183
|
+
? formatter.post(formatter[token](d, pattern[0]))
|
|
184
|
+
: comment.test(token) ? token.replace(comment, '$1') : token;
|
|
187
185
|
}
|
|
188
186
|
return str;
|
|
189
187
|
};
|
|
@@ -197,33 +195,35 @@ proto.format = function (dateObj, arg, utc) {
|
|
|
197
195
|
*/
|
|
198
196
|
proto.preparse = function (dateString, arg) {
|
|
199
197
|
var ctx = this || date, pattern = typeof arg === 'string' ? ctx.compile(arg) : arg,
|
|
198
|
+
parser = ctx._parser,
|
|
200
199
|
dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 0, _match: 0 },
|
|
201
|
-
comment =
|
|
200
|
+
wildcard = ' ', comment = /^\[(.*)\]$/, ellipsis = '...';
|
|
202
201
|
|
|
203
202
|
dateString = parser.pre(dateString);
|
|
204
|
-
for (var i = 1, len = pattern.length, token, result; i < len; i++) {
|
|
203
|
+
for (var i = 1, len = pattern.length, token, str, result; i < len; i++) {
|
|
205
204
|
token = pattern[i];
|
|
205
|
+
str = dateString.substring(dt._index);
|
|
206
|
+
|
|
206
207
|
if (parser[token]) {
|
|
207
|
-
result = parser[token](
|
|
208
|
+
result = parser[token](str, pattern[0]);
|
|
208
209
|
if (!result.length) {
|
|
209
|
-
|
|
210
|
+
break;
|
|
210
211
|
}
|
|
211
|
-
offset += result.length;
|
|
212
212
|
dt[result.token || token.charAt(0)] = result.value;
|
|
213
|
+
dt._index += result.length;
|
|
213
214
|
dt._match++;
|
|
214
|
-
} else if (token ===
|
|
215
|
-
|
|
216
|
-
} else if (comment.test(token) && !
|
|
217
|
-
|
|
218
|
-
} else if (token ===
|
|
219
|
-
|
|
215
|
+
} else if (token === str.charAt(0) || token === wildcard) {
|
|
216
|
+
dt._index++;
|
|
217
|
+
} else if (comment.test(token) && !str.indexOf(token.replace(comment, '$1'))) {
|
|
218
|
+
dt._index += token.length - 2;
|
|
219
|
+
} else if (token === ellipsis) {
|
|
220
|
+
dt._index = dateString.length;
|
|
220
221
|
break;
|
|
221
222
|
} else {
|
|
222
223
|
break;
|
|
223
224
|
}
|
|
224
225
|
}
|
|
225
|
-
dt.H = dt.H || parser.h12(dt.h, dt.A);
|
|
226
|
-
dt._index = offset;
|
|
226
|
+
dt.H = dt.H || parser.h12(dt.h, dt.A);
|
|
227
227
|
dt._length = dateString.length;
|
|
228
228
|
return dt;
|
|
229
229
|
};
|
|
@@ -256,14 +256,13 @@ proto.parse = function (dateString, arg, utc) {
|
|
|
256
256
|
* @returns {boolean} Whether the date and time string is a valid date and time
|
|
257
257
|
*/
|
|
258
258
|
proto.isValid = function (arg1, arg2) {
|
|
259
|
-
var ctx = this || date, dt = typeof arg1 === 'string' ? ctx.preparse(arg1, arg2) : arg1
|
|
260
|
-
last = [31, 28 + ctx.isLeapYear(dt.Y) | 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][dt.M - 1];
|
|
259
|
+
var ctx = this || date, dt = typeof arg1 === 'string' ? ctx.preparse(arg1, arg2) : arg1;
|
|
261
260
|
|
|
262
261
|
return !(
|
|
263
|
-
dt._index < 1 || dt._length < 1 || dt._index - dt._length || dt._match < 1
|
|
264
|
-
dt.Y < 1 || dt.Y > 9999 || dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D >
|
|
265
|
-
dt.H < 0 || dt.H > 23 || dt.m < 0 || dt.m > 59 || dt.s < 0 || dt.s > 59 || dt.S < 0 || dt.S > 999
|
|
266
|
-
dt.Z < -840 || dt.Z > 720
|
|
262
|
+
dt._index < 1 || dt._length < 1 || dt._index - dt._length || dt._match < 1
|
|
263
|
+
|| dt.Y < 1 || dt.Y > 9999 || dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D > new Date(dt.Y, dt.M, 0).getDate()
|
|
264
|
+
|| dt.H < 0 || dt.H > 23 || dt.m < 0 || dt.m > 59 || dt.s < 0 || dt.s > 59 || dt.S < 0 || dt.S > 999
|
|
265
|
+
|| dt.Z < -840 || dt.Z > 720
|
|
267
266
|
);
|
|
268
267
|
};
|
|
269
268
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @preserve date-and-time (c) KNOWLEDGECODE | MIT
|
|
3
3
|
*/
|
|
4
|
-
var e,t,n={},r={},i="en",u={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"]},s={YYYY:function(e){return("000"+e.getFullYear()).slice(-4)},YY:function(e){return("0"+e.getFullYear()).slice(-2)},Y:function(e){return""+e.getFullYear()},MMMM:function(e){return this.res.MMMM[e.getMonth()]},MMM:function(e){return this.res.MMM[e.getMonth()]},MM:function(e){return("0"+(e.getMonth()+1)).slice(-2)},M:function(e){return""+(e.getMonth()+1)},DD:function(e){return("0"+e.getDate()).slice(-2)},D:function(e){return""+e.getDate()},HH:function(e){return("0"+e.getHours()).slice(-2)},H:function(e){return""+e.getHours()},A:function(e){return this.res.A[e.getHours()>11|0]},hh:function(e){return("0"+(e.getHours()%12||12)).slice(-2)},h:function(e){return""+(e.getHours()%12||12)},mm:function(e){return("0"+e.getMinutes()).slice(-2)},m:function(e){return""+e.getMinutes()},ss:function(e){return("0"+e.getSeconds()).slice(-2)},s:function(e){return""+e.getSeconds()},SSS:function(e){return("00"+e.getMilliseconds()).slice(-3)},SS:function(e){return("0"+(e.getMilliseconds()/10|0)).slice(-2)},S:function(e){return""+(e.getMilliseconds()/100|0)},dddd:function(e){return this.res.dddd[e.getDay()]},ddd:function(e){return this.res.ddd[e.getDay()]},dd:function(e){return this.res.dd[e.getDay()]},Z:function(e){var t=e.getTimezoneOffset()/.6|0;return(t>0?"-":"+")+("000"+Math.abs(t-(t%100*.4|0))).slice(-4)},ZZ:function(e){var t=e.getTimezoneOffset(),n=Math.abs(t);return(t>0?"-":"+")+("0"+(n/60|0)).slice(-2)+":"+("0"+n%60).slice(-2)},post:function(e){return e},res:u},o={YYYY:function(e){return this.exec(/^\d{4}/,e)},Y:function(e){return this.exec(/^\d{1,4}/,e)},MMMM:function(e){var t=this.find(this.res.MMMM,e);return t.value++,t},MMM:function(e){var t=this.find(this.res.MMM,e);return t.value++,t},MM:function(e){return this.exec(/^\d\d/,e)},M:function(e){return this.exec(/^\d\d?/,e)},DD:function(e){return this.exec(/^\d\d/,e)},D:function(e){return this.exec(/^\d\d?/,e)},HH:function(e){return this.exec(/^\d\d/,e)},H:function(e){return this.exec(/^\d\d?/,e)},A:function(e){return this.find(this.res.A,e)},hh:function(e){return this.exec(/^\d\d/,e)},h:function(e){return this.exec(/^\d\d?/,e)},mm:function(e){return this.exec(/^\d\d/,e)},m:function(e){return this.exec(/^\d\d?/,e)},ss:function(e){return this.exec(/^\d\d/,e)},s:function(e){return this.exec(/^\d\d?/,e)},SSS:function(e){return this.exec(/^\d{1,3}/,e)},SS:function(e){var t=this.exec(/^\d\d?/,e);return t.value*=10,t},S:function(e){var t=this.exec(/^\d/,e);return t.value*=100,t},Z:function(e){var t=this.exec(/^[+-]\d{2}[0-5]\d/,e);return t.value=-60*(t.value/100|0)-t.value%100,t},ZZ:function(e){var t=/^([+-])(\d{2}):([0-5]\d)/.exec(e)||["","","",""];return{value:0-(60*(t[1]+t[2]|0)+(t[1]+t[3]|0)),length:t[0].length}},h12:function(e,t){return(12===e?0:e)+12*t},exec:function(e,t){var n=(e.exec(t)||[""])[0];return{value:0|n,length:n.length}},find:function(e,t){for(var n,r=-1,i=0,u=0,s=e.length;u<s;u++)n=e[u],!t.indexOf(n)&&n.length>i&&(r=u,i=n.length);return{value:r,length:i}},pre:function(e){return e},res:u},a=function(e,t,n,r){var i,u={};for(i in e)u[i]=e[i];for(i in t||{})!!n^!!u[i]||(u[i]=t[i]);return r&&(u.res=r),u},c={_formatter:s,_parser:o};c.compile=function(e){
|
|
4
|
+
var e,t,n={},r={},i="en",u={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"]},s={YYYY:function(e){return("000"+e.getFullYear()).slice(-4)},YY:function(e){return("0"+e.getFullYear()).slice(-2)},Y:function(e){return""+e.getFullYear()},MMMM:function(e){return this.res.MMMM[e.getMonth()]},MMM:function(e){return this.res.MMM[e.getMonth()]},MM:function(e){return("0"+(e.getMonth()+1)).slice(-2)},M:function(e){return""+(e.getMonth()+1)},DD:function(e){return("0"+e.getDate()).slice(-2)},D:function(e){return""+e.getDate()},HH:function(e){return("0"+e.getHours()).slice(-2)},H:function(e){return""+e.getHours()},A:function(e){return this.res.A[e.getHours()>11|0]},hh:function(e){return("0"+(e.getHours()%12||12)).slice(-2)},h:function(e){return""+(e.getHours()%12||12)},mm:function(e){return("0"+e.getMinutes()).slice(-2)},m:function(e){return""+e.getMinutes()},ss:function(e){return("0"+e.getSeconds()).slice(-2)},s:function(e){return""+e.getSeconds()},SSS:function(e){return("00"+e.getMilliseconds()).slice(-3)},SS:function(e){return("0"+(e.getMilliseconds()/10|0)).slice(-2)},S:function(e){return""+(e.getMilliseconds()/100|0)},dddd:function(e){return this.res.dddd[e.getDay()]},ddd:function(e){return this.res.ddd[e.getDay()]},dd:function(e){return this.res.dd[e.getDay()]},Z:function(e){var t=e.getTimezoneOffset()/.6|0;return(t>0?"-":"+")+("000"+Math.abs(t-(t%100*.4|0))).slice(-4)},ZZ:function(e){var t=e.getTimezoneOffset(),n=Math.abs(t);return(t>0?"-":"+")+("0"+(n/60|0)).slice(-2)+":"+("0"+n%60).slice(-2)},post:function(e){return e},res:u},o={YYYY:function(e){return this.exec(/^\d{4}/,e)},Y:function(e){return this.exec(/^\d{1,4}/,e)},MMMM:function(e){var t=this.find(this.res.MMMM,e);return t.value++,t},MMM:function(e){var t=this.find(this.res.MMM,e);return t.value++,t},MM:function(e){return this.exec(/^\d\d/,e)},M:function(e){return this.exec(/^\d\d?/,e)},DD:function(e){return this.exec(/^\d\d/,e)},D:function(e){return this.exec(/^\d\d?/,e)},HH:function(e){return this.exec(/^\d\d/,e)},H:function(e){return this.exec(/^\d\d?/,e)},A:function(e){return this.find(this.res.A,e)},hh:function(e){return this.exec(/^\d\d/,e)},h:function(e){return this.exec(/^\d\d?/,e)},mm:function(e){return this.exec(/^\d\d/,e)},m:function(e){return this.exec(/^\d\d?/,e)},ss:function(e){return this.exec(/^\d\d/,e)},s:function(e){return this.exec(/^\d\d?/,e)},SSS:function(e){return this.exec(/^\d{1,3}/,e)},SS:function(e){var t=this.exec(/^\d\d?/,e);return t.value*=10,t},S:function(e){var t=this.exec(/^\d/,e);return t.value*=100,t},Z:function(e){var t=this.exec(/^[+-]\d{2}[0-5]\d/,e);return t.value=-60*(t.value/100|0)-t.value%100,t},ZZ:function(e){var t=/^([+-])(\d{2}):([0-5]\d)/.exec(e)||["","","",""];return{value:0-(60*(t[1]+t[2]|0)+(t[1]+t[3]|0)),length:t[0].length}},h12:function(e,t){return(12===e?0:e)+12*t},exec:function(e,t){var n=(e.exec(t)||[""])[0];return{value:0|n,length:n.length}},find:function(e,t){for(var n,r=-1,i=0,u=0,s=e.length;u<s;u++)n=e[u],!t.indexOf(n)&&n.length>i&&(r=u,i=n.length);return{value:r,length:i}},pre:function(e){return e},res:u},a=function(e,t,n,r){var i,u={};for(i in e)u[i]=e[i];for(i in t||{})!!n^!!u[i]||(u[i]=t[i]);return r&&(u.res=r),u},c={_formatter:s,_parser:o};c.compile=function(e){return[e].concat(e.match(/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g)||[])},c.format=function(e,n,r){for(var i,u=this||t,s="string"==typeof n?u.compile(n):n,o=u._formatter,a=function(){if(r){var t=new Date(e.getTime());return t.getFullYear=t.getUTCFullYear,t.getMonth=t.getUTCMonth,t.getDate=t.getUTCDate,t.getHours=t.getUTCHours,t.getMinutes=t.getUTCMinutes,t.getSeconds=t.getUTCSeconds,t.getMilliseconds=t.getUTCMilliseconds,t.getDay=t.getUTCDay,t.getTimezoneOffset=function(){return 0},t}return e}(),c=/^\[(.*)\]$/,d="",f=1,l=s.length;f<l;f++)d+=o[i=s[f]]?o.post(o[i](a,s[0])):c.test(i)?i.replace(c,"$1"):i;return d},c.preparse=function(e,n){var r=this||t,i="string"==typeof n?r.compile(n):n,u=r._parser,s={Y:1970,M:1,D:1,H:0,A:0,h:0,m:0,s:0,S:0,Z:0,_index:0,_length:0,_match:0},o=/^\[(.*)\]$/;e=u.pre(e);for(var a,c,d,f=1,l=i.length;f<l;f++)if(a=i[f],c=e.substring(s._index),u[a]){if(!(d=u[a](c,i[0])).length)break;s[d.token||a.charAt(0)]=d.value,s._index+=d.length,s._match++}else if(a===c.charAt(0)||" "===a)s._index++;else{if(!o.test(a)||c.indexOf(a.replace(o,"$1"))){if("..."===a){s._index=e.length;break}break}s._index+=a.length-2}return s.H=s.H||u.h12(s.h,s.A),s._length=e.length,s},c.parse=function(e,n,r){var i=this||t,u="string"==typeof n?i.compile(n):n,s=i.preparse(e,u);return i.isValid(s)?(s.M-=s.Y<100?22801:1,r||~i._parser.find(u,"ZZ").value?new Date(Date.UTC(s.Y,s.M,s.D,s.H,s.m+s.Z,s.s,s.S)):new Date(s.Y,s.M,s.D,s.H,s.m,s.s,s.S)):new Date(NaN)},c.isValid=function(e,n){var r="string"==typeof e?(this||t).preparse(e,n):e;return!(r._index<1||r._length<1||r._index-r._length||r._match<1||r.Y<1||r.Y>9999||r.M<1||r.M>12||r.D<1||r.D>new Date(r.Y,r.M,0).getDate()||r.H<0||r.H>23||r.m<0||r.m>59||r.s<0||r.s>59||r.S<0||r.S>999||r.Z<-840||r.Z>720)},c.transform=function(e,n,r,i){const u=this||t;return u.format(u.parse(e,n),r,i)},c.addYears=function(e,n,r){return(this||t).addMonths(e,12*n,r)},c.addMonths=function(e,n,r){var i=new Date(e.getTime());if(r){if(i.setUTCMonth(i.getUTCMonth()+n),i.getUTCDate()<e.getUTCDate())return(this||t).addDays(i,-i.getUTCDate(),r)}else if(i.setMonth(i.getMonth()+n),i.getDate()<e.getDate())return(this||t).addDays(i,-i.getDate(),r);return i},c.addDays=function(e,n,r){return(this||t).addHours(e,24*n,r)},c.addHours=function(e,n,r){return(this||t).addMinutes(e,60*n,r)},c.addMinutes=function(e,n,r){return(this||t).addSeconds(e,60*n,r)},c.addSeconds=function(e,n,r){return(this||t).addMilliseconds(e,1e3*n,r)},c.addMilliseconds=function(e,t,n){var r=new Date(e.getTime());return n?r.setUTCMilliseconds(r.getUTCMilliseconds()+t):r.setMilliseconds(r.getMilliseconds()+t),r},c.subtract=function(e,t){var n=e.getTime()-t.getTime();return{toMilliseconds:function(){return n},toSeconds:function(){return n/1e3},toMinutes:function(){return n/6e4},toHours:function(){return n/36e5},toDays:function(){return n/864e5}}},c.isLeapYear=function(e){return!((e%4||!(e%100))&&e%400)},c.isSameDay=function(e,t){return e.toDateString()===t.toDateString()},c.locale=function(e,t){n[e]||(n[e]=t)},c.plugin=function(e,t){r[e]||(r[e]=t)},e=a(c),(t=a(c)).locale=function(d){var f="function"==typeof d?d:t.locale[d];if(!f)return i;i=f(c);var l=n[i]||{},h=a(u,l.res,!0),g=a(s,l.formatter,!0,h),M=a(o,l.parser,!0,h);for(var D in t._formatter=e._formatter=g,t._parser=e._parser=M,r)t.extend(r[D]);return i},t.extend=function(e){var n=a(t._parser.res,e.res),r=e.extender||{};for(var i in t._formatter=a(t._formatter,e.formatter,!1,n),t._parser=a(t._parser,e.parser,!1,n),r)t[i]||(t[i]=r[i])},t.plugin=function(n){var i="function"==typeof n?n:t.plugin[n];i&&t.extend(r[i(c,e)]||{})};var d=t;export{d as default};
|
package/esm/date-and-time.mjs
CHANGED
|
@@ -145,12 +145,7 @@ var locales = {},
|
|
|
145
145
|
* @returns {Array.<string>} A compiled object
|
|
146
146
|
*/
|
|
147
147
|
proto.compile = function (formatString) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
while ((keys = re.exec(formatString))) {
|
|
151
|
-
pattern[pattern.length] = keys[0];
|
|
152
|
-
}
|
|
153
|
-
return pattern;
|
|
148
|
+
return [formatString].concat(formatString.match(/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g) || []);
|
|
154
149
|
};
|
|
155
150
|
|
|
156
151
|
/**
|
|
@@ -162,6 +157,7 @@ proto.compile = function (formatString) {
|
|
|
162
157
|
*/
|
|
163
158
|
proto.format = function (dateObj, arg, utc) {
|
|
164
159
|
var ctx = this || date, pattern = typeof arg === 'string' ? ctx.compile(arg) : arg,
|
|
160
|
+
formatter = ctx._formatter,
|
|
165
161
|
d = (function () {
|
|
166
162
|
if (utc) {
|
|
167
163
|
var u = new Date(dateObj.getTime());
|
|
@@ -179,11 +175,13 @@ proto.format = function (dateObj, arg, utc) {
|
|
|
179
175
|
}
|
|
180
176
|
return dateObj;
|
|
181
177
|
}()),
|
|
182
|
-
|
|
178
|
+
comment = /^\[(.*)\]$/, str = '';
|
|
183
179
|
|
|
184
180
|
for (var i = 1, len = pattern.length, token; i < len; i++) {
|
|
185
181
|
token = pattern[i];
|
|
186
|
-
str += formatter[token]
|
|
182
|
+
str += formatter[token]
|
|
183
|
+
? formatter.post(formatter[token](d, pattern[0]))
|
|
184
|
+
: comment.test(token) ? token.replace(comment, '$1') : token;
|
|
187
185
|
}
|
|
188
186
|
return str;
|
|
189
187
|
};
|
|
@@ -197,33 +195,35 @@ proto.format = function (dateObj, arg, utc) {
|
|
|
197
195
|
*/
|
|
198
196
|
proto.preparse = function (dateString, arg) {
|
|
199
197
|
var ctx = this || date, pattern = typeof arg === 'string' ? ctx.compile(arg) : arg,
|
|
198
|
+
parser = ctx._parser,
|
|
200
199
|
dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 0, _match: 0 },
|
|
201
|
-
comment =
|
|
200
|
+
wildcard = ' ', comment = /^\[(.*)\]$/, ellipsis = '...';
|
|
202
201
|
|
|
203
202
|
dateString = parser.pre(dateString);
|
|
204
|
-
for (var i = 1, len = pattern.length, token, result; i < len; i++) {
|
|
203
|
+
for (var i = 1, len = pattern.length, token, str, result; i < len; i++) {
|
|
205
204
|
token = pattern[i];
|
|
205
|
+
str = dateString.substring(dt._index);
|
|
206
|
+
|
|
206
207
|
if (parser[token]) {
|
|
207
|
-
result = parser[token](
|
|
208
|
+
result = parser[token](str, pattern[0]);
|
|
208
209
|
if (!result.length) {
|
|
209
|
-
|
|
210
|
+
break;
|
|
210
211
|
}
|
|
211
|
-
offset += result.length;
|
|
212
212
|
dt[result.token || token.charAt(0)] = result.value;
|
|
213
|
+
dt._index += result.length;
|
|
213
214
|
dt._match++;
|
|
214
|
-
} else if (token ===
|
|
215
|
-
|
|
216
|
-
} else if (comment.test(token) && !
|
|
217
|
-
|
|
218
|
-
} else if (token ===
|
|
219
|
-
|
|
215
|
+
} else if (token === str.charAt(0) || token === wildcard) {
|
|
216
|
+
dt._index++;
|
|
217
|
+
} else if (comment.test(token) && !str.indexOf(token.replace(comment, '$1'))) {
|
|
218
|
+
dt._index += token.length - 2;
|
|
219
|
+
} else if (token === ellipsis) {
|
|
220
|
+
dt._index = dateString.length;
|
|
220
221
|
break;
|
|
221
222
|
} else {
|
|
222
223
|
break;
|
|
223
224
|
}
|
|
224
225
|
}
|
|
225
|
-
dt.H = dt.H || parser.h12(dt.h, dt.A);
|
|
226
|
-
dt._index = offset;
|
|
226
|
+
dt.H = dt.H || parser.h12(dt.h, dt.A);
|
|
227
227
|
dt._length = dateString.length;
|
|
228
228
|
return dt;
|
|
229
229
|
};
|
|
@@ -256,14 +256,13 @@ proto.parse = function (dateString, arg, utc) {
|
|
|
256
256
|
* @returns {boolean} Whether the date and time string is a valid date and time
|
|
257
257
|
*/
|
|
258
258
|
proto.isValid = function (arg1, arg2) {
|
|
259
|
-
var ctx = this || date, dt = typeof arg1 === 'string' ? ctx.preparse(arg1, arg2) : arg1
|
|
260
|
-
last = [31, 28 + ctx.isLeapYear(dt.Y) | 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][dt.M - 1];
|
|
259
|
+
var ctx = this || date, dt = typeof arg1 === 'string' ? ctx.preparse(arg1, arg2) : arg1;
|
|
261
260
|
|
|
262
261
|
return !(
|
|
263
|
-
dt._index < 1 || dt._length < 1 || dt._index - dt._length || dt._match < 1
|
|
264
|
-
dt.Y < 1 || dt.Y > 9999 || dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D >
|
|
265
|
-
dt.H < 0 || dt.H > 23 || dt.m < 0 || dt.m > 59 || dt.s < 0 || dt.s > 59 || dt.S < 0 || dt.S > 999
|
|
266
|
-
dt.Z < -840 || dt.Z > 720
|
|
262
|
+
dt._index < 1 || dt._length < 1 || dt._index - dt._length || dt._match < 1
|
|
263
|
+
|| dt.Y < 1 || dt.Y > 9999 || dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D > new Date(dt.Y, dt.M, 0).getDate()
|
|
264
|
+
|| dt.H < 0 || dt.H > 23 || dt.m < 0 || dt.m > 59 || dt.s < 0 || dt.s > 59 || dt.S < 0 || dt.S > 999
|
|
265
|
+
|| dt.Z < -840 || dt.Z > 720
|
|
267
266
|
);
|
|
268
267
|
};
|
|
269
268
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "date-and-time",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "A Minimalist DateTime utility for Node.js and the browser",
|
|
5
5
|
"main": "date-and-time.js",
|
|
6
6
|
"module": "esm/date-and-time.es.js",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@rollup/plugin-terser": "^0.4.4",
|
|
53
53
|
"expect.js": "^0.3.1",
|
|
54
|
-
"mocha": "^10.
|
|
55
|
-
"rollup": "^4.
|
|
56
|
-
"tsd": "^0.
|
|
54
|
+
"mocha": "^10.4.0",
|
|
55
|
+
"rollup": "^4.17.2",
|
|
56
|
+
"tsd": "^0.31.0"
|
|
57
57
|
}
|
|
58
58
|
}
|
package/rollup.config.mjs
DELETED
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import terser from '@rollup/plugin-terser';
|
|
2
|
-
|
|
3
|
-
export default [
|
|
4
|
-
{
|
|
5
|
-
input: 'src/index.js',
|
|
6
|
-
output: [
|
|
7
|
-
{ file: 'esm/date-and-time.es.js', format: 'es' },
|
|
8
|
-
{ file: 'esm/date-and-time.mjs', format: 'es' },
|
|
9
|
-
{ file: 'date-and-time.js', format: 'umd', name: 'date', esModule: false }
|
|
10
|
-
]
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
input: 'src/locale/ar.js',
|
|
14
|
-
output: [
|
|
15
|
-
{ file: 'esm/locale/ar.es.js', format: 'es' },
|
|
16
|
-
{ file: 'esm/locale/ar.mjs', format: 'es' },
|
|
17
|
-
{ file: 'locale/ar.js', format: 'umd', name: 'date.locale.ar', esModule: false }
|
|
18
|
-
]
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
input: 'src/locale/az.js',
|
|
22
|
-
output: [
|
|
23
|
-
{ file: 'esm/locale/az.es.js', format: 'es' },
|
|
24
|
-
{ file: 'esm/locale/az.mjs', format: 'es' },
|
|
25
|
-
{ file: 'locale/az.js', format: 'umd', name: 'date.locale.az', esModule: false }
|
|
26
|
-
]
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
input: 'src/locale/bn.js',
|
|
30
|
-
output: [
|
|
31
|
-
{ file: 'esm/locale/bn.es.js', format: 'es' },
|
|
32
|
-
{ file: 'esm/locale/bn.mjs', format: 'es' },
|
|
33
|
-
{ file: 'locale/bn.js', format: 'umd', name: 'date.locale.bn', esModule: false }
|
|
34
|
-
]
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
input: 'src/locale/cs.js',
|
|
38
|
-
output: [
|
|
39
|
-
{ file: 'esm/locale/cs.es.js', format: 'es' },
|
|
40
|
-
{ file: 'esm/locale/cs.mjs', format: 'es' },
|
|
41
|
-
{ file: 'locale/cs.js', format: 'umd', name: 'date.locale.cs', esModule: false }
|
|
42
|
-
]
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
input: 'src/locale/de.js',
|
|
46
|
-
output: [
|
|
47
|
-
{ file: 'esm/locale/de.es.js', format: 'es' },
|
|
48
|
-
{ file: 'esm/locale/de.mjs', format: 'es' },
|
|
49
|
-
{ file: 'locale/de.js', format: 'umd', name: 'date.locale.de', esModule: false }
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
input: 'src/locale/dk.js',
|
|
54
|
-
output: [
|
|
55
|
-
{ file: 'esm/locale/dk.es.js', format: 'es' },
|
|
56
|
-
{ file: 'esm/locale/dk.mjs', format: 'es' },
|
|
57
|
-
{ file: 'locale/dk.js', format: 'umd', name: 'date.locale.dk', esModule: false }
|
|
58
|
-
]
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
input: 'src/locale/el.js',
|
|
62
|
-
output: [
|
|
63
|
-
{ file: 'esm/locale/el.es.js', format: 'es' },
|
|
64
|
-
{ file: 'esm/locale/el.mjs', format: 'es' },
|
|
65
|
-
{ file: 'locale/el.js', format: 'umd', name: 'date.locale.el', esModule: false }
|
|
66
|
-
]
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
input: 'src/locale/en.js',
|
|
70
|
-
output: [
|
|
71
|
-
{ file: 'esm/locale/en.es.js', format: 'es' },
|
|
72
|
-
{ file: 'esm/locale/en.mjs', format: 'es' },
|
|
73
|
-
{ file: 'locale/en.js', format: 'umd', name: 'date.locale.en', esModule: false }
|
|
74
|
-
]
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
input: 'src/locale/es.js',
|
|
78
|
-
output: [
|
|
79
|
-
{ file: 'esm/locale/es.es.js', format: 'es' },
|
|
80
|
-
{ file: 'esm/locale/es.mjs', format: 'es' },
|
|
81
|
-
{ file: 'locale/es.js', format: 'umd', name: 'date.locale.es', esModule: false }
|
|
82
|
-
]
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
input: 'src/locale/fa.js',
|
|
86
|
-
output: [
|
|
87
|
-
{ file: 'esm/locale/fa.es.js', format: 'es' },
|
|
88
|
-
{ file: 'esm/locale/fa.mjs', format: 'es' },
|
|
89
|
-
{ file: 'locale/fa.js', format: 'umd', name: 'date.locale.fa', esModule: false }
|
|
90
|
-
]
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
input: 'src/locale/fr.js',
|
|
94
|
-
output: [
|
|
95
|
-
{ file: 'esm/locale/fr.es.js', format: 'es' },
|
|
96
|
-
{ file: 'esm/locale/fr.mjs', format: 'es' },
|
|
97
|
-
{ file: 'locale/fr.js', format: 'umd', name: 'date.locale.fr', esModule: false }
|
|
98
|
-
]
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
input: 'src/locale/hi.js',
|
|
102
|
-
output: [
|
|
103
|
-
{ file: 'esm/locale/hi.es.js', format: 'es' },
|
|
104
|
-
{ file: 'esm/locale/hi.mjs', format: 'es' },
|
|
105
|
-
{ file: 'locale/hi.js', format: 'umd', name: 'date.locale.hi', esModule: false }
|
|
106
|
-
]
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
input: 'src/locale/hu.js',
|
|
110
|
-
output: [
|
|
111
|
-
{ file: 'esm/locale/hu.es.js', format: 'es' },
|
|
112
|
-
{ file: 'esm/locale/hu.mjs', format: 'es' },
|
|
113
|
-
{ file: 'locale/hu.js', format: 'umd', name: 'date.locale.hu', esModule: false }
|
|
114
|
-
]
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
input: 'src/locale/id.js',
|
|
118
|
-
output: [
|
|
119
|
-
{ file: 'esm/locale/id.es.js', format: 'es' },
|
|
120
|
-
{ file: 'esm/locale/id.mjs', format: 'es' },
|
|
121
|
-
{ file: 'locale/id.js', format: 'umd', name: 'date.locale.id', esModule: false }
|
|
122
|
-
]
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
input: 'src/locale/it.js',
|
|
126
|
-
output: [
|
|
127
|
-
{ file: 'esm/locale/it.es.js', format: 'es' },
|
|
128
|
-
{ file: 'esm/locale/it.mjs', format: 'es' },
|
|
129
|
-
{ file: 'locale/it.js', format: 'umd', name: 'date.locale.it', esModule: false }
|
|
130
|
-
]
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
input: 'src/locale/ja.js',
|
|
134
|
-
output: [
|
|
135
|
-
{ file: 'esm/locale/ja.es.js', format: 'es' },
|
|
136
|
-
{ file: 'esm/locale/ja.mjs', format: 'es' },
|
|
137
|
-
{ file: 'locale/ja.js', format: 'umd', name: 'date.locale.ja', esModule: false }
|
|
138
|
-
]
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
input: 'src/locale/jv.js',
|
|
142
|
-
output: [
|
|
143
|
-
{ file: 'esm/locale/jv.es.js', format: 'es' },
|
|
144
|
-
{ file: 'esm/locale/jv.mjs', format: 'es' },
|
|
145
|
-
{ file: 'locale/jv.js', format: 'umd', name: 'date.locale.jv', esModule: false }
|
|
146
|
-
]
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
input: 'src/locale/ko.js',
|
|
150
|
-
output: [
|
|
151
|
-
{ file: 'esm/locale/ko.es.js', format: 'es' },
|
|
152
|
-
{ file: 'esm/locale/ko.mjs', format: 'es' },
|
|
153
|
-
{ file: 'locale/ko.js', format: 'umd', name: 'date.locale.ko', esModule: false }
|
|
154
|
-
]
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
input: 'src/locale/my.js',
|
|
158
|
-
output: [
|
|
159
|
-
{ file: 'esm/locale/my.es.js', format: 'es' },
|
|
160
|
-
{ file: 'esm/locale/my.mjs', format: 'es' },
|
|
161
|
-
{ file: 'locale/my.js', format: 'umd', name: 'date.locale.my', esModule: false }
|
|
162
|
-
]
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
input: 'src/locale/nl.js',
|
|
166
|
-
output: [
|
|
167
|
-
{ file: 'esm/locale/nl.es.js', format: 'es' },
|
|
168
|
-
{ file: 'esm/locale/nl.mjs', format: 'es' },
|
|
169
|
-
{ file: 'locale/nl.js', format: 'umd', name: 'date.locale.nl', esModule: false }
|
|
170
|
-
]
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
input: 'src/locale/pa-in.js',
|
|
174
|
-
output: [
|
|
175
|
-
{ file: 'esm/locale/pa-in.es.js', format: 'es' },
|
|
176
|
-
{ file: 'esm/locale/pa-in.mjs', format: 'es' },
|
|
177
|
-
{ file: 'locale/pa-in.js', format: 'umd', name: 'date.locale.pa-in', esModule: false }
|
|
178
|
-
]
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
input: 'src/locale/pl.js',
|
|
182
|
-
output: [
|
|
183
|
-
{ file: 'esm/locale/pl.es.js', format: 'es' },
|
|
184
|
-
{ file: 'esm/locale/pl.mjs', format: 'es' },
|
|
185
|
-
{ file: 'locale/pl.js', format: 'umd', name: 'date.locale.pl', esModule: false }
|
|
186
|
-
]
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
input: 'src/locale/pt.js',
|
|
190
|
-
output: [
|
|
191
|
-
{ file: 'esm/locale/pt.es.js', format: 'es' },
|
|
192
|
-
{ file: 'esm/locale/pt.mjs', format: 'es' },
|
|
193
|
-
{ file: 'locale/pt.js', format: 'umd', name: 'date.locale.pt', esModule: false }
|
|
194
|
-
]
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
input: 'src/locale/ro.js',
|
|
198
|
-
output: [
|
|
199
|
-
{ file: 'esm/locale/ro.es.js', format: 'es' },
|
|
200
|
-
{ file: 'esm/locale/ro.mjs', format: 'es' },
|
|
201
|
-
{ file: 'locale/ro.js', format: 'umd', name: 'date.locale.ro', esModule: false }
|
|
202
|
-
]
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
input: 'src/locale/ru.js',
|
|
206
|
-
output: [
|
|
207
|
-
{ file: 'esm/locale/ru.es.js', format: 'es' },
|
|
208
|
-
{ file: 'esm/locale/ru.mjs', format: 'es' },
|
|
209
|
-
{ file: 'locale/ru.js', format: 'umd', name: 'date.locale.ru', esModule: false }
|
|
210
|
-
]
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
input: 'src/locale/rw.js',
|
|
214
|
-
output: [
|
|
215
|
-
{ file: 'esm/locale/rw.es.js', format: 'es' },
|
|
216
|
-
{ file: 'esm/locale/rw.mjs', format: 'es' },
|
|
217
|
-
{ file: 'locale/rw.js', format: 'umd', name: 'date.locale.rw', esModule: false }
|
|
218
|
-
]
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
input: 'src/locale/sr.js',
|
|
222
|
-
output: [
|
|
223
|
-
{ file: 'esm/locale/sr.es.js', format: 'es' },
|
|
224
|
-
{ file: 'esm/locale/sr.mjs', format: 'es' },
|
|
225
|
-
{ file: 'locale/sr.js', format: 'umd', name: 'date.locale.sr', esModule: false }
|
|
226
|
-
]
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
input: 'src/locale/sv.js',
|
|
230
|
-
output: [
|
|
231
|
-
{ file: 'esm/locale/sv.es.js', format: 'es' },
|
|
232
|
-
{ file: 'esm/locale/sv.mjs', format: 'es' },
|
|
233
|
-
{ file: 'locale/sv.js', format: 'umd', name: 'date.locale.sv', esModule: false }
|
|
234
|
-
]
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
input: 'src/locale/th.js',
|
|
238
|
-
output: [
|
|
239
|
-
{ file: 'esm/locale/th.es.js', format: 'es' },
|
|
240
|
-
{ file: 'esm/locale/th.mjs', format: 'es' },
|
|
241
|
-
{ file: 'locale/th.js', format: 'umd', name: 'date.locale.th', esModule: false }
|
|
242
|
-
]
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
input: 'src/locale/tr.js',
|
|
246
|
-
output: [
|
|
247
|
-
{ file: 'esm/locale/tr.es.js', format: 'es' },
|
|
248
|
-
{ file: 'esm/locale/tr.mjs', format: 'es' },
|
|
249
|
-
{ file: 'locale/tr.js', format: 'umd', name: 'date.locale.tr', esModule: false }
|
|
250
|
-
]
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
input: 'src/locale/uk.js',
|
|
254
|
-
output: [
|
|
255
|
-
{ file: 'esm/locale/uk.es.js', format: 'es' },
|
|
256
|
-
{ file: 'esm/locale/uk.mjs', format: 'es' },
|
|
257
|
-
{ file: 'locale/uk.js', format: 'umd', name: 'date.locale.uk', esModule: false }
|
|
258
|
-
]
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
input: 'src/locale/uz.js',
|
|
262
|
-
output: [
|
|
263
|
-
{ file: 'esm/locale/uz.es.js', format: 'es' },
|
|
264
|
-
{ file: 'esm/locale/uz.mjs', format: 'es' },
|
|
265
|
-
{ file: 'locale/uz.js', format: 'umd', name: 'date.locale.uz', esModule: false }
|
|
266
|
-
]
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
input: 'src/locale/vi.js',
|
|
270
|
-
output: [
|
|
271
|
-
{ file: 'esm/locale/vi.es.js', format: 'es' },
|
|
272
|
-
{ file: 'esm/locale/vi.mjs', format: 'es' },
|
|
273
|
-
{ file: 'locale/vi.js', format: 'umd', name: 'date.locale.vi', esModule: false }
|
|
274
|
-
]
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
input: 'src/locale/zh-cn.js',
|
|
278
|
-
output: [
|
|
279
|
-
{ file: 'esm/locale/zh-cn.es.js', format: 'es' },
|
|
280
|
-
{ file: 'esm/locale/zh-cn.mjs', format: 'es' },
|
|
281
|
-
{ file: 'locale/zh-cn.js', format: 'umd', name: 'date.locale.zh-cn', esModule: false }
|
|
282
|
-
]
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
input: 'src/locale/zh-tw.js',
|
|
286
|
-
output: [
|
|
287
|
-
{ file: 'esm/locale/zh-tw.es.js', format: 'es' },
|
|
288
|
-
{ file: 'esm/locale/zh-tw.mjs', format: 'es' },
|
|
289
|
-
{ file: 'locale/zh-tw.js', format: 'umd', name: 'date.locale.zh-tw', esModule: false }
|
|
290
|
-
]
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
input: 'src/plugin/day-of-week.js',
|
|
294
|
-
output: [
|
|
295
|
-
{ file: 'esm/plugin/day-of-week.es.js', format: 'es' },
|
|
296
|
-
{ file: 'esm/plugin/day-of-week.mjs', format: 'es' },
|
|
297
|
-
{ file: 'plugin/day-of-week.js', format: 'umd', name: 'date.plugin.day-of-week', esModule: false }
|
|
298
|
-
]
|
|
299
|
-
},
|
|
300
|
-
{
|
|
301
|
-
input: 'src/plugin/meridiem.js',
|
|
302
|
-
output: [
|
|
303
|
-
{ file: 'esm/plugin/meridiem.es.js', format: 'es' },
|
|
304
|
-
{ file: 'esm/plugin/meridiem.mjs', format: 'es' },
|
|
305
|
-
{ file: 'plugin/meridiem.js', format: 'umd', name: 'date.plugin.meridiem', esModule: false }
|
|
306
|
-
]
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
input: 'src/plugin/microsecond.js',
|
|
310
|
-
output: [
|
|
311
|
-
{ file: 'esm/plugin/microsecond.es.js', format: 'es' },
|
|
312
|
-
{ file: 'esm/plugin/microsecond.mjs', format: 'es' },
|
|
313
|
-
{ file: 'plugin/microsecond.js', format: 'umd', name: 'date.plugin.microsecond', esModule: false }
|
|
314
|
-
]
|
|
315
|
-
},
|
|
316
|
-
{
|
|
317
|
-
input: 'src/plugin/ordinal.js',
|
|
318
|
-
output: [
|
|
319
|
-
{ file: 'esm/plugin/ordinal.es.js', format: 'es' },
|
|
320
|
-
{ file: 'esm/plugin/ordinal.mjs', format: 'es' },
|
|
321
|
-
{ file: 'plugin/ordinal.js', format: 'umd', name: 'date.plugin.ordinal', esModule: false }
|
|
322
|
-
]
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
input: 'src/plugin/timespan.js',
|
|
326
|
-
output: [
|
|
327
|
-
{ file: 'esm/plugin/timespan.es.js', format: 'es' },
|
|
328
|
-
{ file: 'esm/plugin/timespan.mjs', format: 'es' },
|
|
329
|
-
{ file: 'plugin/timespan.js', format: 'umd', name: 'date.plugin.timespan', esModule: false }
|
|
330
|
-
]
|
|
331
|
-
},
|
|
332
|
-
{
|
|
333
|
-
input: 'src/plugin/timezone.js',
|
|
334
|
-
output: [
|
|
335
|
-
{ file: 'esm/plugin/timezone.es.js', format: 'es' },
|
|
336
|
-
{ file: 'esm/plugin/timezone.mjs', format: 'es' },
|
|
337
|
-
{ file: 'plugin/timezone.js', format: 'umd', name: 'date.plugin.timezone', esModule: false }
|
|
338
|
-
]
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
input: 'src/plugin/two-digit-year.js',
|
|
342
|
-
output: [
|
|
343
|
-
{ file: 'esm/plugin/two-digit-year.es.js', format: 'es' },
|
|
344
|
-
{ file: 'esm/plugin/two-digit-year.mjs', format: 'es' },
|
|
345
|
-
{ file: 'plugin/two-digit-year.js', format: 'umd', name: 'date.plugin.two-digit-year', esModule: false }
|
|
346
|
-
]
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
input: 'src/index.js',
|
|
350
|
-
output: [
|
|
351
|
-
{ file: 'esm/date-and-time.es.min.js', format: 'es' },
|
|
352
|
-
{ file: 'date-and-time.min.js', format: 'umd', name: 'date', esModule: false }
|
|
353
|
-
],
|
|
354
|
-
plugins: [terser()]
|
|
355
|
-
}
|
|
356
|
-
];
|