class GetContentArrayFromDomError extends Data.TaggedError(
"GetContentArrayFromDomError"
)<{
msg: string;
}> {}
export const getContentArrayFromDom = (dom: JSDOM) =>
Effect.succeed(dom).pipe(
Effect.map(Struct.get("window")),
Effect.map(Struct.get("document")),
Effect.map(Struct.get("body")),
Effect.map(Struct.get("firstElementChild")),
Effect.filterOrFail(
Predicate.isNotNull,
() =>
new GetContentArrayFromDomError({ msg: "First element child is null" })
),
Effect.map(Struct.get("children")),
Effect.map((x) => Array.from(x))
);
class GetContentArrayFromDomError extends Data.TaggedError(
"GetContentArrayFromDomError"
)<{
msg: string;
}> {}
export const getContentArrayFromDom = (dom: JSDOM) =>
Effect.succeed(dom).pipe(
Effect.map(Struct.get("window")),
Effect.map(Struct.get("document")),
Effect.map(Struct.get("body")),
Effect.map(Struct.get("firstElementChild")),
Effect.filterOrFail(
Predicate.isNotNull,
() =>
new GetContentArrayFromDomError({ msg: "First element child is null" })
),
Effect.map(Struct.get("children")),
Effect.map((x) => Array.from(x))
);