@noggin/elastic-noggin-sdk
Version:
Elastic Noggin SDK
30 lines (25 loc) • 799 B
text/typescript
import { Eno } from "./models/Eno";
import { EnoFactory } from "./EnoFactory";
export type IVars = { [key: string]: string[] };
function varToEno(key: string, value: string[]): Eno {
const enoFactory = new EnoFactory("var", "security/policy/everyone");
enoFactory.setFields([
{ tip: "var/key", value: [key] },
{ tip: "var/value", value: value },
]);
return enoFactory.makeEno();
}
export function varsToEnos(vars: IVars): Eno[] {
return Object.keys(vars).map((key) => varToEno(key, vars[key]));
}
export function enosToVars(batch: Eno[]): IVars {
const vars: IVars = {};
batch
.filter((eno) => eno.source.type === "var")
.forEach(
(eno) =>
(vars[eno.getFieldStringValue("var/key")] =
eno.getFieldValues("var/value"))
);
return vars;
}