# All files / server-old/router error.js

93.75% Statements 15/16
75% Branches 6/8
100% Functions 3/3
100% Lines 15/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    2626x
    26x
    26x

    26x

    107x
    107x

    107x
    107x

    20x
    20x

    20x

    20x
    20x
    20x

    107x

     const join = require('../src/join');
    const parse = require('./parse');
    const params = require('./path-to-regexp-wrap')();

    module.exports = (...all) => {
      // Extracted or otherwise it'd shift once per call; also more performant
      const { path, middle } = parse(all);
      const match = params(path || '');

      const generic = () => {};
      generic.error = async ctx => {

        // Only do this if the correct path
        ctx.error.code = ctx.error.code || '';
        ctx.error.params = match(ctx.error.code);

        // Add an extra-allowing initial matching
        Iif (!ctx.error.params && ctx.error.code.slice(0, path.length) !== path) return;

        const ret = await middle[0](ctx);
        delete ctx.error;
        return ret;
      };
      return generic;
    };