28 lines
686 B
TypeScript
28 lines
686 B
TypeScript
import parser from "yargs-parser"
|
|
import * as cookie from "cookie"
|
|
import * as O from "fp-ts/Option"
|
|
import * as S from "fp-ts/string"
|
|
import { pipe, flow } from "fp-ts/function"
|
|
import { objHasProperty } from "~/helpers/functional/object"
|
|
|
|
export function getCookies(parsedArguments: parser.Arguments) {
|
|
return pipe(
|
|
parsedArguments,
|
|
O.fromPredicate(objHasProperty("cookie", "string")),
|
|
|
|
O.map((args) => args.cookie),
|
|
|
|
O.alt(() =>
|
|
pipe(
|
|
parsedArguments,
|
|
O.fromPredicate(objHasProperty("b", "string")),
|
|
O.map((args) => args.b)
|
|
)
|
|
),
|
|
|
|
O.map(flow(S.replace(/^cookie: /i, ""), cookie.parse)),
|
|
|
|
O.getOrElse(() => ({}))
|
|
)
|
|
}
|