Comparing version 2.0.0-beta.26 to 2.0.0-beta.27
@@ -200,2 +200,9 @@ "use strict"; | ||
}; | ||
var HANDLE = function (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
} | ||
throw ERROR; | ||
}; | ||
var parsedType = exports.getParsedType(data); | ||
@@ -320,6 +327,7 @@ switch (def.t) { | ||
PROMISE = PseudoPromise_1.PseudoPromise.all(data.map(function (item, i) { | ||
try { | ||
return PseudoPromise_1.PseudoPromise.resolve(def.type.parse(item, __assign(__assign({}, params), { path: __spread(params.path, [i]) }))); | ||
} | ||
catch (err) { | ||
return new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return def.type.parse(item, __assign(__assign({}, params), { path: __spread(params.path, [i]) })); | ||
}) | ||
.catch(function (err) { | ||
if (!(err instanceof ZodError_1.ZodError)) { | ||
@@ -329,4 +337,4 @@ throw err; | ||
ERROR.addIssues(err.issues); | ||
return PseudoPromise_1.PseudoPromise.resolve(util_1.INVALID); | ||
} | ||
return util_1.INVALID; | ||
}); | ||
})); | ||
@@ -352,9 +360,3 @@ break; | ||
}) | ||
.catch(function (err) { | ||
if (!(err instanceof ZodError_1.ZodError)) { | ||
throw err; | ||
} | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
}), | ||
.catch(HANDLE), | ||
new PseudoPromise_1.PseudoPromise() | ||
@@ -365,27 +367,10 @@ .then(function () { | ||
}) | ||
.catch(function (err) { | ||
if (!(err instanceof ZodError_1.ZodError)) { | ||
throw err; | ||
} | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
}), | ||
.catch(HANDLE), | ||
]) | ||
.then(function (item) { | ||
try { | ||
if (item[0] !== util_1.INVALID && item[1] !== util_1.INVALID) { | ||
returnedMap_1.set(item[0], item[1]); | ||
} | ||
else { | ||
} | ||
if (item[0] !== util_1.INVALID && item[1] !== util_1.INVALID) { | ||
returnedMap_1.set(item[0], item[1]); | ||
} | ||
catch (err) { } | ||
}) | ||
.catch(function (err) { | ||
if (!(err instanceof ZodError_1.ZodError)) { | ||
throw err; | ||
} | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
}); | ||
.catch(HANDLE); | ||
})) | ||
@@ -414,3 +399,3 @@ .then(function () { | ||
} | ||
var objectPromises = {}; | ||
var objectPromises_1 = {}; | ||
var shape = def.shape(); | ||
@@ -429,16 +414,20 @@ var shapeKeys_2 = Object.keys(shape); | ||
} | ||
if (!Object.keys(data).includes(key)) { | ||
try { | ||
var output = keyValidator.parse(undefined, __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
if (typeof data[key] === 'undefined' && !dataKeys.includes(key)) { | ||
objectPromises_1[key] = new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return keyValidator.parse(undefined, __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
}) | ||
.then(function (output) { | ||
if (output === undefined) { | ||
return PseudoPromise_1.NOSET; | ||
} | ||
else { | ||
objectPromises[key] = PseudoPromise_1.PseudoPromise.resolve(output); | ||
return output; | ||
} | ||
} | ||
catch (err) { | ||
}) | ||
.catch(function (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
var zerr = err; | ||
ERROR.addIssues(zerr.issues); | ||
objectPromises[key] = PseudoPromise_1.PseudoPromise.resolve(util_1.INVALID); | ||
objectPromises_1[key] = PseudoPromise_1.PseudoPromise.resolve(util_1.INVALID); | ||
} | ||
@@ -448,9 +437,8 @@ else { | ||
} | ||
} | ||
}); | ||
return "continue"; | ||
} | ||
objectPromises[key] = new PseudoPromise_1.PseudoPromise() | ||
objectPromises_1[key] = new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
var parsedValue = keyValidator.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
return parsedValue; | ||
return keyValidator.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
}) | ||
@@ -486,3 +474,3 @@ .catch(function (err) { | ||
var key = extraKeys_1_1.value; | ||
objectPromises[key] = PseudoPromise_1.PseudoPromise.resolve(data[key]); | ||
objectPromises_1[key] = PseudoPromise_1.PseudoPromise.resolve(data[key]); | ||
} | ||
@@ -514,16 +502,13 @@ } | ||
var _loop_2 = function (key) { | ||
objectPromises[key] = new PseudoPromise_1.PseudoPromise().then(function () { | ||
try { | ||
var parsedValue = def.catchall.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
return parsedValue; | ||
objectPromises_1[key] = new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
var parsedValue = def.catchall.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
return parsedValue; | ||
}) | ||
.catch(function (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
var zerr = err; | ||
ERROR.addIssues(zerr.issues); | ||
return util_1.INVALID; | ||
} | ||
else { | ||
throw err; | ||
} | ||
else { | ||
throw err; | ||
} | ||
@@ -546,3 +531,3 @@ }); | ||
} | ||
PROMISE = PseudoPromise_1.PseudoPromise.object(objectPromises) | ||
PROMISE = PseudoPromise_1.PseudoPromise.object(objectPromises_1) | ||
.then(function (resolvedObject) { | ||
@@ -570,20 +555,19 @@ Object.assign(RESULT.output, resolvedObject); | ||
PROMISE = PseudoPromise_1.PseudoPromise.all(def.options.map(function (opt, _j) { | ||
try { | ||
var parseProm = opt.parse(data, params); | ||
var unionValueProm = PseudoPromise_1.PseudoPromise.resolve(parseProm); | ||
return new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return opt.parse(data, params); | ||
}) | ||
.then(function (optionData) { | ||
isValid_1 = true; | ||
return unionValueProm; | ||
} | ||
catch (err) { | ||
return optionData; | ||
}) | ||
.catch(function (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
unionErrors_1.push(err); | ||
return PseudoPromise_1.PseudoPromise.resolve(util_1.INVALID); | ||
return util_1.INVALID; | ||
} | ||
throw err; | ||
} | ||
}); | ||
})) | ||
.then(function (unionResults) { | ||
return util_1.util.find(unionResults, function (val) { return val !== util_1.INVALID; }); | ||
}) | ||
.then(function (unionResult) { | ||
if (!isValid_1) { | ||
@@ -602,5 +586,8 @@ var nonTypeErrors = unionErrors_1.filter(function (err) { | ||
} | ||
return util_1.INVALID; | ||
THROW(); | ||
} | ||
return unionResult; | ||
return unionResults; | ||
}) | ||
.then(function (unionResults) { | ||
return util_1.util.find(unionResults, function (val) { return val !== util_1.INVALID; }); | ||
}); | ||
@@ -610,26 +597,12 @@ break; | ||
PROMISE = PseudoPromise_1.PseudoPromise.all([ | ||
new PseudoPromise_1.PseudoPromise().then(function () { | ||
try { | ||
return def.left.parse(data, params); | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
} | ||
throw err; | ||
} | ||
}), | ||
new PseudoPromise_1.PseudoPromise().then(function () { | ||
try { | ||
return def.right.parse(data, params); | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
} | ||
throw err; | ||
} | ||
}), | ||
new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return def.left.parse(data, params); | ||
}) | ||
.catch(HANDLE), | ||
new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return def.right.parse(data, params); | ||
}) | ||
.catch(HANDLE), | ||
]).then(function (_a) { | ||
@@ -660,14 +633,7 @@ var _b = __read(_a, 2), parsedLeft = _b[0], parsedRight = _b[1]; | ||
} | ||
PROMISE = new PseudoPromise_1.PseudoPromise().then(function () { | ||
try { | ||
return def.innerType.parse(data, params); | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
} | ||
throw err; | ||
} | ||
}); | ||
PROMISE = new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return def.innerType.parse(data, params); | ||
}) | ||
.catch(HANDLE); | ||
break; | ||
@@ -679,14 +645,7 @@ case z.ZodTypes.nullable: | ||
} | ||
PROMISE = new PseudoPromise_1.PseudoPromise().then(function () { | ||
try { | ||
return def.innerType.parse(data, params); | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
} | ||
throw err; | ||
} | ||
}); | ||
PROMISE = new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return def.innerType.parse(data, params); | ||
}) | ||
.catch(HANDLE); | ||
break; | ||
@@ -729,11 +688,13 @@ case z.ZodTypes.tuple: | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
return; | ||
} | ||
throw err; | ||
}) | ||
.then(function (arg) { | ||
return arg; | ||
}); | ||
})) | ||
.then(function (tupleData) { | ||
if (tupleData.indexOf(util_1.INVALID) !== -1) { | ||
if (!ERROR.isEmpty) | ||
THROW(); | ||
} | ||
return tupleData; | ||
@@ -785,3 +746,4 @@ }) | ||
} | ||
var validatedFunc = function () { | ||
var isAsyncFunction_1 = def.returns instanceof index_1.ZodPromise; | ||
var validatedFunction = function () { | ||
var args = []; | ||
@@ -791,22 +753,24 @@ for (var _i = 0; _i < arguments.length; _i++) { | ||
} | ||
try { | ||
def.args.parse(args, params); | ||
} | ||
catch (err) { | ||
var internalProm = new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return def.args.parse(args, __assign(__assign({}, params), { async: isAsyncFunction_1 })); | ||
}) | ||
.catch(function (err) { | ||
if (!(err instanceof ZodError_1.ZodError)) | ||
throw err; | ||
var argsError = new ZodError_1.ZodError([]); | ||
argsError.addIssue(makeError(params, data, { | ||
code: ZodError_1.ZodIssueCode.invalid_arguments, | ||
argumentsError: err, | ||
})); | ||
throw argsError; | ||
}) | ||
.then(function (args) { | ||
return data.apply(void 0, __spread(args)); | ||
}) | ||
.then(function (result) { | ||
return def.returns.parse(result, __assign(__assign({}, params), { async: isAsyncFunction_1 })); | ||
}) | ||
.catch(function (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
var argsError = new ZodError_1.ZodError([]); | ||
argsError.addIssue(makeError(params, data, { | ||
code: ZodError_1.ZodIssueCode.invalid_arguments, | ||
argumentsError: err, | ||
})); | ||
throw argsError; | ||
} | ||
throw err; | ||
} | ||
var result = data.apply(void 0, __spread(args)); | ||
try { | ||
return def.returns.parse(result, params); | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
var returnsError = new ZodError_1.ZodError([]); | ||
@@ -820,5 +784,11 @@ returnsError.addIssue(makeError(params, data, { | ||
throw err; | ||
}); | ||
if (isAsyncFunction_1) { | ||
return internalProm.getValueAsync(); | ||
} | ||
else { | ||
return internalProm.getValueSync(); | ||
} | ||
}; | ||
PROMISE = PseudoPromise_1.PseudoPromise.resolve(validatedFunc); | ||
PROMISE = PseudoPromise_1.PseudoPromise.resolve(validatedFunction); | ||
break; | ||
@@ -836,14 +806,7 @@ case z.ZodTypes.record: | ||
var _loop_3 = function (key) { | ||
parsedRecordPromises[key] = new PseudoPromise_1.PseudoPromise().then(function () { | ||
try { | ||
return def.valueType.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
return util_1.INVALID; | ||
} | ||
throw err; | ||
} | ||
}); | ||
parsedRecordPromises[key] = new PseudoPromise_1.PseudoPromise() | ||
.then(function () { | ||
return def.valueType.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) })); | ||
}) | ||
.catch(HANDLE); | ||
}; | ||
@@ -883,12 +846,3 @@ for (var key in data) { | ||
PROMISE = PseudoPromise_1.PseudoPromise.resolve(promisified.then(function (resolvedData) { | ||
try { | ||
var parsed = def.type.parse(resolvedData, params); | ||
return parsed; | ||
} | ||
catch (err) { | ||
if (err instanceof ZodError_1.ZodError) { | ||
ERROR.addIssues(err.issues); | ||
} | ||
throw err; | ||
} | ||
return def.type.parse(resolvedData, params); | ||
})); | ||
@@ -895,0 +849,0 @@ break; |
@@ -16,2 +16,3 @@ declare type Func = (arg: any, ctx: { | ||
declare type Items = (FuncItem | CatcherItem)[]; | ||
export declare const NOSET: unique symbol; | ||
export declare class PseudoPromise<ReturnType = undefined> { | ||
@@ -18,0 +19,0 @@ readonly _return: ReturnType; |
@@ -70,5 +70,6 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.PseudoPromise = void 0; | ||
exports.PseudoPromise = exports.NOSET = void 0; | ||
var util_1 = require("./helpers/util"); | ||
var ZodError_1 = require("./ZodError"); | ||
exports.NOSET = Symbol('no_set'); | ||
var PseudoPromise = (function () { | ||
@@ -81,31 +82,25 @@ function PseudoPromise(funcs) { | ||
if (ctx.async) { | ||
try { | ||
var allValues = Promise.all(pps.map(function (pp) { return __awaiter(_this, void 0, void 0, function () { | ||
var asdf, err_1; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
return [4, pp.getValueAsync()]; | ||
case 1: | ||
asdf = _a.sent(); | ||
return [2, asdf]; | ||
case 2: | ||
err_1 = _a.sent(); | ||
return [2, util_1.INVALID]; | ||
case 3: return [2]; | ||
} | ||
}); | ||
}); })).then(function (vals) { | ||
return vals; | ||
var allValues = Promise.all(pps.map(function (pp) { return __awaiter(_this, void 0, void 0, function () { | ||
var asdf, err_1; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
return [4, pp.getValueAsync()]; | ||
case 1: | ||
asdf = _a.sent(); | ||
return [2, asdf]; | ||
case 2: | ||
err_1 = _a.sent(); | ||
return [2, util_1.INVALID]; | ||
case 3: return [2]; | ||
} | ||
}); | ||
return allValues; | ||
} | ||
catch (err) { } | ||
}); })).then(function (vals) { | ||
return vals; | ||
}); | ||
return allValues; | ||
} | ||
else { | ||
try { | ||
return pps.map(function (pp) { return pp.getValueSync(); }); | ||
} | ||
catch (err) { } | ||
return pps.map(function (pp) { return pp.getValueSync(); }); | ||
} | ||
@@ -140,5 +135,4 @@ }); | ||
else { | ||
catcherItem.catcher(err, { async: false }); | ||
val = val; | ||
index = catcherIndex; | ||
val = catcherItem.catcher(err, { async: false }); | ||
} | ||
@@ -186,4 +180,3 @@ } | ||
case 6: | ||
_a.sent(); | ||
val = val; | ||
val = _a.sent(); | ||
_a.label = 7; | ||
@@ -264,3 +257,4 @@ case 7: return [3, 8]; | ||
item = items_2_1.value; | ||
value[item[0]] = item[1]; | ||
if (item[1] !== exports.NOSET) | ||
value[item[0]] = item[1]; | ||
} | ||
@@ -300,3 +294,4 @@ } | ||
var item = items_1_1.value; | ||
value[item[0]] = item[1]; | ||
if (item[1] !== exports.NOSET) | ||
value[item[0]] = item[1]; | ||
} | ||
@@ -303,0 +298,0 @@ } |
{ | ||
"name": "zod", | ||
"version": "2.0.0-beta.26", | ||
"version": "2.0.0-beta.27", | ||
"description": "TypeScript-first schema declaration and validation library with static type inference", | ||
@@ -5,0 +5,0 @@ "main": "./lib/cjs/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
689420
251
10028