Skip to content

Commit abf692e

Browse files
committed
chore: simplify warn
1 parent 82d5630 commit abf692e

File tree

1 file changed

+21
-26
lines changed

1 file changed

+21
-26
lines changed

src/core/definePage.ts

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -319,35 +319,30 @@ function extractQueryParams(
319319
} else if (paramProp.key.name === 'default') {
320320
if (typeof paramProp.value.extra?.raw === 'string') {
321321
paramInfo.default = paramProp.value.extra.raw
322+
} else if (paramProp.value.type === 'NumericLiteral') {
323+
paramInfo.default = String(paramProp.value.value)
324+
} else if (paramProp.value.type === 'StringLiteral') {
325+
paramInfo.default = JSON.stringify(paramProp.value.value)
326+
} else if (paramProp.value.type === 'BooleanLiteral') {
327+
paramInfo.default = String(paramProp.value.value)
328+
} else if (paramProp.value.type === 'NullLiteral') {
329+
paramInfo.default = 'null'
330+
} else if (
331+
paramProp.value.type === 'UnaryExpression' &&
332+
(paramProp.value.operator === '-' ||
333+
paramProp.value.operator === '+' ||
334+
paramProp.value.operator === '!' ||
335+
paramProp.value.operator === '~') &&
336+
paramProp.value.argument.type === 'NumericLiteral'
337+
) {
338+
// support negative numeric literals: -1, -1.5
339+
paramInfo.default = `${paramProp.value.operator}${paramProp.value.argument.value}`
340+
} else if (paramProp.value.type === 'ArrowFunctionExpression') {
341+
paramInfo.default = generate(paramProp.value).code
322342
} else {
323343
warn(
324-
`No raw value parsed in definePage() for query param "${paramName}". This is a bug, open an issue on https://github.com/posva/unplugin-vue-router and provide the definePage() code.`
344+
`Unrecognized default value in definePage() for query param "${paramName}". Typeof value: "${paramProp.value.type}". This is a bug or a missing type of value, open an issue on https://github.com/posva/unplugin-vue-router and provide the definePage() code.`
325345
)
326-
if (paramProp.value.type === 'NumericLiteral') {
327-
paramInfo.default = String(paramProp.value.value)
328-
} else if (paramProp.value.type === 'StringLiteral') {
329-
paramInfo.default = JSON.stringify(paramProp.value.value)
330-
} else if (paramProp.value.type === 'BooleanLiteral') {
331-
paramInfo.default = String(paramProp.value.value)
332-
} else if (paramProp.value.type === 'NullLiteral') {
333-
paramInfo.default = 'null'
334-
} else if (
335-
paramProp.value.type === 'UnaryExpression' &&
336-
(paramProp.value.operator === '-' ||
337-
paramProp.value.operator === '+' ||
338-
paramProp.value.operator === '!' ||
339-
paramProp.value.operator === '~') &&
340-
paramProp.value.argument.type === 'NumericLiteral'
341-
) {
342-
// support negative numeric literals: -1, -1.5
343-
paramInfo.default = `${paramProp.value.operator}${paramProp.value.argument.value}`
344-
} else if (paramProp.value.type === 'ArrowFunctionExpression') {
345-
paramInfo.default = generate(paramProp.value).code
346-
} else {
347-
warn(
348-
`Unrecognized default value in definePage() for query param "${paramName}". Typeof value: ${paramProp.value.type}. This is a bug, open an issue on https://github.com/posva/unplugin-vue-router and provide the definePage() code.`
349-
)
350-
}
351346
}
352347
}
353348
}

0 commit comments

Comments
 (0)