ts-stronger-types
Version:
Runtime checking of types and integrity for Typescript projects
21 lines • 985 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.checked = void 0;
const typed_utils_1 = require("./typed.utils");
const typed_config_1 = require("./typed.config");
function checked(fn, arg1, arg1Type, outType) {
const arg1ActualType = typed_utils_1.getActualType(arg1);
const arg1ExpectedType = arg1Type.name;
if (arg1ActualType !== arg1ExpectedType) {
typed_utils_1.logOrThrowIncorrectArgument(fn.name, 'global', arg1, arg1ActualType, arg1ExpectedType, typed_config_1.TypedConfig.get());
}
const result = fn(arg1);
const resultActualType = typed_utils_1.getActualType(result);
const resultExpectedType = outType.name;
if (resultActualType !== resultExpectedType) {
typed_utils_1.logOrThrowIncorrectReturnType(fn.name, 'global', resultActualType, resultExpectedType, typed_config_1.TypedConfig.get());
}
return result;
}
exports.checked = checked;
//# sourceMappingURL=checked.function.js.map