{"version":3,"sources":["../src/utils/Req.ts"],"sourcesContent":["import { asNumber, isDefined } from './Utils';\nimport { Id, Json, JsonValue, OneOrMore, Text } from './Types';\n\nexport class Req<B = unknown> {\n  readonly skip: number | undefined;\n  readonly take: number | undefined;\n\n  constructor(readonly state: any = {}) {\n    this.skip = isDefined(this.query?.skip) ? asNumber(this.query?.skip) : undefined;\n    this.take = isDefined(this.query?.take) ? asNumber(this.query?.take) : undefined;\n  }\n\n  get id(): Id {\n    return this.state.id ?? this.path.id;\n  }\n\n  get q(): JsonValue {\n    return this.state.q ?? this.query.q;\n  }\n\n  get path(): Json {\n    return this.state?.path ?? {};\n  }\n\n  get query(): Json {\n    return this.state?.query ?? {};\n  }\n\n  get body(): B {\n    return this.state.body;\n  }\n\n  get headers(): Record<string, OneOrMore<string>> {\n    return this.state.headers;\n  }\n\n  get = (key: Text): any => this?.state[key.toString()] ?? this.path[key.toString()] ?? this.query[key.toString()];\n}\n"],"mappings":";;;;;;AAGO,IAAM,MAAN,MAAuB;AAAA,EAI5B,YAAqB,QAAa,CAAC,GAAG;AAAjB;AACnB,SAAK,OAAO,UAAU,KAAK,OAAO,IAAI,IAAI,SAAS,KAAK,OAAO,IAAI,IAAI;AACvE,SAAK,OAAO,UAAU,KAAK,OAAO,IAAI,IAAI,SAAS,KAAK,OAAO,IAAI,IAAI;AAAA,EACzE;AAAA,EANS;AAAA,EACA;AAAA,EAOT,IAAI,KAAS;AACX,WAAO,KAAK,MAAM,MAAM,KAAK,KAAK;AAAA,EACpC;AAAA,EAEA,IAAI,IAAe;AACjB,WAAO,KAAK,MAAM,KAAK,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,IAAI,OAAa;AACf,WAAO,KAAK,OAAO,QAAQ,CAAC;AAAA,EAC9B;AAAA,EAEA,IAAI,QAAc;AAChB,WAAO,KAAK,OAAO,SAAS,CAAC;AAAA,EAC/B;AAAA,EAEA,IAAI,OAAU;AACZ,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,IAAI,UAA6C;AAC/C,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,MAAM,CAAC,QAAmB,MAAM,MAAM,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,IAAI,SAAS,CAAC;AACjH;","names":[]}