Add support for coercing null or undefined
This commit is contained in:
parent
3252c741ec
commit
5ce10bed57
2 changed files with 11 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@endeavorance/parsec",
|
"name": "@endeavorance/parsec",
|
||||||
"version": "0.4.0",
|
"version": "0.5.0",
|
||||||
"author": "Endeavorance",
|
"author": "Endeavorance",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"module": "dist/index.js",
|
"module": "dist/index.js",
|
||||||
|
|
14
src/index.ts
14
src/index.ts
|
@ -203,9 +203,12 @@ export const Parse = {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
optional<T>(parser: (val: unknown) => T): (val: unknown) => T | undefined {
|
optional<T>(
|
||||||
|
parser: (val: unknown) => T,
|
||||||
|
coerceNull = false,
|
||||||
|
): (val: unknown) => T | undefined {
|
||||||
return (val: unknown) => {
|
return (val: unknown) => {
|
||||||
if (val === undefined) {
|
if (val === undefined || (coerceNull && val === null)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,9 +216,12 @@ export const Parse = {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
nullable<T>(parser: (val: unknown) => T): (val: unknown) => T | null {
|
nullable<T>(
|
||||||
|
parser: (val: unknown) => T,
|
||||||
|
coerceUndefined = false,
|
||||||
|
): (val: unknown) => T | null {
|
||||||
return (val: unknown) => {
|
return (val: unknown) => {
|
||||||
if (val === null) {
|
if (val === null || (coerceUndefined && val === undefined)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue