ts-stronger-types
Version:
Runtime checking of types and integrity for Typescript projects
30 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logOrThrowIncorrectArgument = exports.logOrThrowIncorrectReturnType = exports.logOrThrow = exports.getActualType = void 0;
exports.getActualType = (value) => {
let actualType = (typeof value).toString();
if (value.constructor) {
actualType = value.constructor.name;
}
return actualType;
};
exports.logOrThrow = (message, options) => {
if (options.throwError) {
throw new TypeError(message);
}
else if (options.customLogger) {
options.customLogger(message);
}
else {
console.log(message);
}
};
exports.logOrThrowIncorrectReturnType = (fnName, className, returnTypeName, expectedReturnTypeName, options) => {
const errorMessage = `Function ${fnName} of class ${className} return type: ${returnTypeName} is different from expected return type: ${expectedReturnTypeName}.`;
exports.logOrThrow(errorMessage, options);
};
exports.logOrThrowIncorrectArgument = (fnName, className, argumentValue, actualArgTypeName, expectedArgTypeName, options) => {
const errorMessage = `Argument in function ${fnName} of class ${className}: ${argumentValue} has type: ${actualArgTypeName} different from expected type: ${expectedArgTypeName}.`;
exports.logOrThrow(errorMessage, options);
};
//# sourceMappingURL=typed.utils.js.map