gpml2pvjson
Version:
convert GPML (XML) to pvjson (json)
33 lines • 2.76 kB
JavaScript
// TODO use lodash/fp instead
import { flatten, intersection, isArray, isEmpty, union } from "lodash";
/* LSV means JSON-LD @list or @set values
*/
export function arrayify(input) {
if (typeof input === "undefined") {
return [];
}
return isArray(input) ? input : [input];
}
export function isJsonldListSetPrimitive(x) {
const TYPE = typeof x;
return (["string", "number", "boolean"].indexOf(TYPE) > -1 ||
x === null ||
(TYPE !== "undefined" && x.hasOwnProperty("@value")));
}
export function getValuesLSV(input) {
if (typeof input === "undefined") {
return [];
}
return arrayify(input)
.map(function (x) {
return x && x.hasOwnProperty("@value") ? x["@value"] : x;
})
.filter(isJsonldListSetPrimitive);
}
export function intersectsLSV(x, y) {
return !isEmpty(intersection(getValuesLSV(x), getValuesLSV(y)));
}
export function unionLSV(...inputs) {
return union(flatten(inputs.map(getValuesLSV)));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmxkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwaW5vZmZzL2pzb25sZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2QkFBNkI7QUFDN0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUEyQ3hFO0dBQ0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixLQUFzRTtJQUV0RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtRQUNoQyxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLENBQUM7SUFDeEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdEIsT0FBTyxDQUNMLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELENBQUMsS0FBSyxJQUFJO1FBQ1YsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDckQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixLQUF5QjtJQUV6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtRQUNoQyxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQ25CLEdBQUcsQ0FBQyxVQUFTLENBQUM7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsQ0FBcUIsRUFDckIsQ0FBcUI7SUFFckIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQ3RCLEdBQUcsTUFBNEI7SUFFL0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMifQ==