@fly/edge
Version:
Fly's TypeScript Edge
51 lines • 4.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertUrl = exports.assertPresent = exports.invalidProperty = exports.invalidInput = exports.InputError = exports.ValidationError = void 0;
/** @module HTTP */
/** @ignore */
class ValidationError extends Error {
constructor(field, message) {
super(`${field} ${message}`);
this.field = field;
}
}
exports.ValidationError = ValidationError;
/** @ignore */
class InputError extends Error {
}
exports.InputError = InputError;
/** @ignore */
function invalidInput(message) {
return new InputError(message);
}
exports.invalidInput = invalidInput;
/** @ignore */
function invalidProperty(prop, message) {
return new ValidationError(prop, message);
}
exports.invalidProperty = invalidProperty;
/** @ignore */
function assertPresent(value, propertyName) {
if (!value) {
throw new ValidationError(propertyName, "is required");
}
}
exports.assertPresent = assertPresent;
/** @ignore */
function assertUrl(value, propertyName) {
if (value instanceof URL) {
return;
}
if (typeof value === "string") {
try {
//console.log("assertUrl", {value})
const x = new URL(value);
//console.log("after url assertUrl", { value, x })
return;
}
catch (err) { }
}
throw new ValidationError(propertyName, "must be a valid url");
}
exports.assertUrl = assertUrl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQkFBbUI7QUFDbkIsY0FBYztBQUNkLE1BQWEsZUFBZ0IsU0FBUSxLQUFLO0lBRXhDLFlBQVksS0FBYSxFQUFFLE9BQWU7UUFDeEMsS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBTkQsMENBTUM7QUFFRCxjQUFjO0FBQ2QsTUFBYSxVQUFXLFNBQVEsS0FBSztDQUFJO0FBQXpDLGdDQUF5QztBQUV6QyxjQUFjO0FBQ2QsU0FBZ0IsWUFBWSxDQUFDLE9BQWU7SUFDMUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRkQsb0NBRUM7QUFFRCxjQUFjO0FBQ2QsU0FBZ0IsZUFBZSxDQUFDLElBQVksRUFBRSxPQUFlO0lBQzNELE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFGRCwwQ0FFQztBQUVELGNBQWM7QUFDZCxTQUFnQixhQUFhLENBQUMsS0FBYyxFQUFFLFlBQW9CO0lBQ2hFLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixNQUFNLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztLQUN4RDtBQUNILENBQUM7QUFKRCxzQ0FJQztBQUVELGNBQWM7QUFDZCxTQUFnQixTQUFTLENBQUMsS0FBbUIsRUFBRSxZQUFvQjtJQUNqRSxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7UUFDeEIsT0FBTztLQUNSO0lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsSUFBSTtZQUNGLG1DQUFtQztZQUNuQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixrREFBa0Q7WUFDbEQsT0FBTztTQUNSO1FBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRztLQUNsQjtJQUVELE1BQU0sSUFBSSxlQUFlLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDakUsQ0FBQztBQWZELDhCQWVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgSFRUUCAqL1xuLyoqIEBpZ25vcmUgKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgJHtmaWVsZH0gJHttZXNzYWdlfWApO1xuICAgIHRoaXMuZmllbGQgPSBmaWVsZDtcbiAgfVxufVxuXG4vKiogQGlnbm9yZSAqL1xuZXhwb3J0IGNsYXNzIElucHV0RXJyb3IgZXh0ZW5kcyBFcnJvciB7IH1cblxuLyoqIEBpZ25vcmUgKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkSW5wdXQobWVzc2FnZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IElucHV0RXJyb3IobWVzc2FnZSk7XG59XG5cbi8qKiBAaWdub3JlICovXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZFByb3BlcnR5KHByb3A6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFZhbGlkYXRpb25FcnJvcihwcm9wLCBtZXNzYWdlKTtcbn1cblxuLyoqIEBpZ25vcmUgKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRQcmVzZW50KHZhbHVlOiB1bmtub3duLCBwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihwcm9wZXJ0eU5hbWUsIFwiaXMgcmVxdWlyZWRcIik7XG4gIH1cbn1cblxuLyoqIEBpZ25vcmUgKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRVcmwodmFsdWU6IHN0cmluZyB8IFVSTCwgcHJvcGVydHlOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHRyeSB7XG4gICAgICAvL2NvbnNvbGUubG9nKFwiYXNzZXJ0VXJsXCIsIHt2YWx1ZX0pXG4gICAgICBjb25zdCB4ID0gbmV3IFVSTCh2YWx1ZSk7XG4gICAgICAvL2NvbnNvbGUubG9nKFwiYWZ0ZXIgdXJsIGFzc2VydFVybFwiLCB7IHZhbHVlLCB4IH0pXG4gICAgICByZXR1cm47XG4gICAgfSBjYXRjaCAoZXJyKSB7IH1cbiAgfVxuXG4gIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IocHJvcGVydHlOYW1lLCBcIm11c3QgYmUgYSB2YWxpZCB1cmxcIik7XG59XG4iXX0=