UNPKG

2.89 kBSource Map (JSON)View Raw
1{"version":3,"file":"middleware-pipeline.js","sourceRoot":"","sources":["middleware-pipeline.ts"],"names":[],"mappings":";;AAEA,MAAqB,kBAAkB;IAAvC;QACU,YAAO,GAAyB,EAAE,CAAA;IA2C5C,CAAC;IAzCC,WAAW,CAAE,KAAyB;QACpC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,UAAU,CAAE,KAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;IAED,YAAY,CAAE,cAAsB,EAAE,KAAyB;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACzE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEnD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,uDAAuD,cAAc,EAAE,CAAC,CAAA;SACzF;QAED,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAC/B,KAAK;YACL,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7B,CAAA;IACH,CAAC;IAED,WAAW,CAAE,cAAsB,EAAE,KAAyB;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACzE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEnD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,sDAAsD,cAAc,EAAE,CAAC,CAAA;SACxF;QAED,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YACnC,KAAK;YACL,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SACjC,CAAA;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;CACF;AA5CD,qCA4CC","sourcesContent":["import { Pipeline, PipelineEntry, MiddlewareMethod } from '../types/middleware'\n\nexport default class MiddlewarePipeline<T,U> implements Pipeline<T,U> {\n private entries: PipelineEntry<T,U>[] = []\n\n insertFirst (entry: PipelineEntry<T,U>) {\n this.entries = [entry, ...this.entries]\n }\n\n insertLast (entry: PipelineEntry<T,U>) {\n this.entries = [...this.entries, entry]\n }\n\n insertBefore (middlewareName: string, entry: PipelineEntry<T,U>) {\n const pipelineNames = this.entries.map((m: PipelineEntry<T,U>) => m.name)\n const index = pipelineNames.indexOf(middlewareName)\n\n if (index === -1) {\n throw new Error(`could not insert before middleware; not found. name=${middlewareName}`)\n }\n\n this.entries = [\n ...this.entries.slice(0, index),\n entry,\n ...this.entries.slice(index)\n ]\n }\n\n insertAfter (middlewareName: string, entry: PipelineEntry<T,U>) {\n const pipelineNames = this.entries.map((m: PipelineEntry<T,U>) => m.name)\n const index = pipelineNames.indexOf(middlewareName)\n\n if (index === -1) {\n throw new Error(`could not insert after middleware; not found. name=${middlewareName}`)\n }\n\n this.entries = [\n ...this.entries.slice(0, index + 1),\n entry,\n ...this.entries.slice(index + 1)\n ]\n }\n\n getMethods (): MiddlewareMethod<T,U>[] {\n return this.entries.map(e => e.method)\n }\n}\n"]}
\No newline at end of file