@riddance/deploy
Version:
9 lines • 2.81 kB
JavaScript
export function compare(local, current) {
const missing = local.filter(fn => !current.some(remote => remote.name === fn.name));
const surplus = current.filter(remote => !local.some(fn => remote.name === fn.name));
const existing = current.filter(remote => local.some(fn => remote.name === fn.name));
const duplicates = existing.filter((remote, ix) => existing.findIndex(e => e.name === remote.name) !== ix);
surplus.push(...duplicates);
return { missing, surplus, existing: existing.filter(remote => !duplicates.includes(remote)) };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FDbkIsS0FBVSxFQUNWLE9BQVk7SUFFWixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNwRixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNwRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEYsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDOUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUN6RSxDQUFBO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFBO0lBQzNCLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQTtBQUNsRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmU8VCBleHRlbmRzIHsgbmFtZTogc3RyaW5nIH0sIFMgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PihcbiAgICBsb2NhbDogVFtdLFxuICAgIGN1cnJlbnQ6IFNbXSxcbikge1xuICAgIGNvbnN0IG1pc3NpbmcgPSBsb2NhbC5maWx0ZXIoZm4gPT4gIWN1cnJlbnQuc29tZShyZW1vdGUgPT4gcmVtb3RlLm5hbWUgPT09IGZuLm5hbWUpKVxuICAgIGNvbnN0IHN1cnBsdXMgPSBjdXJyZW50LmZpbHRlcihyZW1vdGUgPT4gIWxvY2FsLnNvbWUoZm4gPT4gcmVtb3RlLm5hbWUgPT09IGZuLm5hbWUpKVxuICAgIGNvbnN0IGV4aXN0aW5nID0gY3VycmVudC5maWx0ZXIocmVtb3RlID0+IGxvY2FsLnNvbWUoZm4gPT4gcmVtb3RlLm5hbWUgPT09IGZuLm5hbWUpKVxuICAgIGNvbnN0IGR1cGxpY2F0ZXMgPSBleGlzdGluZy5maWx0ZXIoXG4gICAgICAgIChyZW1vdGUsIGl4KSA9PiBleGlzdGluZy5maW5kSW5kZXgoZSA9PiBlLm5hbWUgPT09IHJlbW90ZS5uYW1lKSAhPT0gaXgsXG4gICAgKVxuICAgIHN1cnBsdXMucHVzaCguLi5kdXBsaWNhdGVzKVxuICAgIHJldHVybiB7IG1pc3NpbmcsIHN1cnBsdXMsIGV4aXN0aW5nOiBleGlzdGluZy5maWx0ZXIocmVtb3RlID0+ICFkdXBsaWNhdGVzLmluY2x1ZGVzKHJlbW90ZSkpIH1cbn1cbiJdfQ==