UNPKG

@selfage/message

Version:

Runtime lib for generated messages to parse, copy, serialize and deserialize messages.

64 lines 6.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.equalMessageField = equalMessageField; exports.equalMessage = equalMessage; function equalMessageField(leftValue, rightValue, fieldDescriptor) { if (fieldDescriptor.primitiveType || fieldDescriptor.enumType) { return leftValue === rightValue; } else { // message type return equalMessage(leftValue, rightValue, fieldDescriptor.messageType); } } function equalMessage(left, right, descriptor) { if (right === undefined) { if (left !== undefined) { return false; } else { return true; } } else { if (left === undefined) { return false; } } let leftAny = left; let rightAny = right; for (let field of descriptor.fields) { if (leftAny[field.name] === undefined) { if (rightAny[field.name] !== undefined) { return false; } else { continue; } } else { if (rightAny[field.name] === undefined) { return false; } } if (!field.isArray) { if (!equalMessageField(leftAny[field.name], rightAny[field.name], field)) { return false; } } else { let leftArray = leftAny[field.name]; let rightArray = rightAny[field.name]; if (leftArray.length !== rightArray.length) { return false; } for (let i = 0; i < leftArray.length; i++) { if (!equalMessageField(leftArray[i], rightArray[i], field)) { return false; } } } } return true; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbXBhcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSw4Q0FXQztBQUVELG9DQW1EQztBQWhFRCxTQUFnQixpQkFBaUIsQ0FDL0IsU0FBYyxFQUNkLFVBQWUsRUFDZixlQUE2QjtJQUU3QixJQUFJLGVBQWUsQ0FBQyxhQUFhLElBQUksZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlELE9BQU8sU0FBUyxLQUFLLFVBQVUsQ0FBQztJQUNsQyxDQUFDO1NBQU0sQ0FBQztRQUNOLGVBQWU7UUFDZixPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsSUFBTyxFQUNQLEtBQVEsRUFDUixVQUFnQztJQUVoQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPLEdBQVEsSUFBSSxDQUFDO0lBQ3hCLElBQUksUUFBUSxHQUFRLEtBQUssQ0FBQztJQUMxQixLQUFLLElBQUksS0FBSyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7aUJBQU0sQ0FBQztnQkFDTCxTQUFTO1lBQ1osQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUNFLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUNwRSxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzNELE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlRGVzY3JpcHRvciwgTWVzc2FnZUZpZWxkIH0gZnJvbSBcIi4vZGVzY3JpcHRvclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxNZXNzYWdlRmllbGQoXG4gIGxlZnRWYWx1ZTogYW55LFxuICByaWdodFZhbHVlOiBhbnksXG4gIGZpZWxkRGVzY3JpcHRvcjogTWVzc2FnZUZpZWxkLFxuKTogYm9vbGVhbiB7XG4gIGlmIChmaWVsZERlc2NyaXB0b3IucHJpbWl0aXZlVHlwZSB8fCBmaWVsZERlc2NyaXB0b3IuZW51bVR5cGUpIHtcbiAgICByZXR1cm4gbGVmdFZhbHVlID09PSByaWdodFZhbHVlO1xuICB9IGVsc2Uge1xuICAgIC8vIG1lc3NhZ2UgdHlwZVxuICAgIHJldHVybiBlcXVhbE1lc3NhZ2UobGVmdFZhbHVlLCByaWdodFZhbHVlLCBmaWVsZERlc2NyaXB0b3IubWVzc2FnZVR5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVhbE1lc3NhZ2U8VD4oXG4gIGxlZnQ6IFQsXG4gIHJpZ2h0OiBULFxuICBkZXNjcmlwdG9yOiBNZXNzYWdlRGVzY3JpcHRvcjxUPixcbik6IGJvb2xlYW4ge1xuICBpZiAocmlnaHQgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChsZWZ0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChsZWZ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBsZXQgbGVmdEFueTogYW55ID0gbGVmdDtcbiAgbGV0IHJpZ2h0QW55OiBhbnkgPSByaWdodDtcbiAgZm9yIChsZXQgZmllbGQgb2YgZGVzY3JpcHRvci5maWVsZHMpIHtcbiAgICBpZiAobGVmdEFueVtmaWVsZC5uYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocmlnaHRBbnlbZmllbGQubmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChyaWdodEFueVtmaWVsZC5uYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFmaWVsZC5pc0FycmF5KSB7XG4gICAgICBpZiAoXG4gICAgICAgICFlcXVhbE1lc3NhZ2VGaWVsZChsZWZ0QW55W2ZpZWxkLm5hbWVdLCByaWdodEFueVtmaWVsZC5uYW1lXSwgZmllbGQpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbGVmdEFycmF5ID0gbGVmdEFueVtmaWVsZC5uYW1lXTtcbiAgICAgIGxldCByaWdodEFycmF5ID0gcmlnaHRBbnlbZmllbGQubmFtZV07XG4gICAgICBpZiAobGVmdEFycmF5Lmxlbmd0aCAhPT0gcmlnaHRBcnJheS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZWZ0QXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFlcXVhbE1lc3NhZ2VGaWVsZChsZWZ0QXJyYXlbaV0sIHJpZ2h0QXJyYXlbaV0sIGZpZWxkKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==