Skip to content

Commit 968f63a

Browse files
authored
fix: parse date objects from config files (#6236)
1 parent 4622b42 commit 968f63a

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

workspaces/config/lib/parse-field.js

+5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const parseField = (f, key, opts, listElement = false) => {
2020
const isUmask = typeList.has(typeDefs.Umask.type)
2121
const isNumber = typeList.has(typeDefs.Number.type)
2222
const isList = !listElement && typeList.has(Array)
23+
const isDate = typeList.has(typeDefs.Date.type)
2324

2425
if (Array.isArray(f)) {
2526
return !isList ? f : f.map(field => parseField(field, key, opts, true))
@@ -53,6 +54,10 @@ const parseField = (f, key, opts, listElement = false) => {
5354

5455
f = envReplace(f, env)
5556

57+
if (isDate) {
58+
return new Date(f)
59+
}
60+
5661
if (isPath) {
5762
const homePattern = platform === 'win32' ? /^~(\/|\\)/ : /^~\//
5863
if (homePattern.test(f) && home) {

workspaces/config/test/parse-field.js

+2
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,5 @@ t.equal(parseField('1234', 'maxsockets', opts), 1234, 'number is parsed')
3434
t.equal(parseField('0888', 'umask', opts), '0888',
3535
'invalid umask is not parsed (will warn later)')
3636
t.equal(parseField('0777', 'umask', opts), 0o777, 'valid umask is parsed')
37+
38+
t.same(parseField('2020', 'before', opts), new Date('2020'), 'date is parsed')

0 commit comments

Comments
 (0)