{"version":3,"sources":["../src/MatsuriError.ts"],"sourcesContent":["export class MatsuriError<T = Record<string, unknown>> extends Error {\n  status?: number;\n\n  private text: string;\n\n  constructor(\n    text: string,\n    options: {\n      status: number;\n    },\n  ) {\n    const { status, ...rest } = options;\n    /**\n     * messageは後方互換性のためにこのような形式にしている\n     */\n    const message = `${status}: ${text}`;\n    super(message, rest);\n    this.name = \"MatsuriError\";\n    this.status = status;\n    this.text = text;\n  }\n  /**\n   * NOTE: メソッドであってもErrorに存在しないプロパティは基本的にundefinedを許容させる。\n   * これは実際はMatsuriErrorでないErrorが投げられたとしてもランタイムエラーを防げるような記述を強制させるために行う。\n   * またMatsuriError|Errorが型としてはより正しいが、一方にしかないプロパティはインスタンスを確認しなければ利用できなくなってしまい冗長な記述を強いられてしまう。\n   */\n  parse: (<S = T>() => S | null) | undefined = <S = T>() => {\n    try {\n      return JSON.parse(this.text) as S;\n    } catch {\n      return null;\n    }\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,eAAN,cAAwD,MAAM;AAAA,EAKnE,YACE,MACA,SAGA;AACA,UAAM,EAAE,QAAQ,GAAG,KAAK,IAAI;AAI5B,UAAM,UAAU,GAAG,MAAM,KAAK,IAAI;AAClC,UAAM,SAAS,IAAI;AAUrB;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA6C,MAAa;AACxD,UAAI;AACF,eAAO,KAAK,MAAM,KAAK,IAAI;AAAA,MAC7B,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF;AAfE,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,SAAK,OAAO;AAAA,EACd;AAaF;","names":[]}