code: function getRenderer(eng) {
    if (!eng) {
      throw new Error(
        NAME + ': option "engine" must be a non-zero-length string or a function')
    }
  
    if (typeof eng === 'function') {
      return {
        engine: null,
        render: customRenderFn.call(this, eng)
      }
    }
  
    try {
      var engine = require(eng)
    } catch (e) {
      throw new Error(NAME + ': unable to load engine "' + eng + '".'
        + ' Make sure the engine is installed, e.g., "npm install ' + eng + '"')
    }
  
    if (!renderers[eng]) {
      throw new Error(NAME + ': no renderer found for "' + eng + '".'
        + ' You may need to create a custom engine definition')
    }
  
    return {
      engine: engine,
      render: renderers[eng]
    }
  }
docs: @typedef {Object} Renderer
  @property {any} engine
  @property {(e: any, s: string, l: any, o: any) => string} render
  
  @this {webpack.loader.LoaderContext}
  @param {string|((s: string, l: any, o: any) => string)} eng
  @returns {Renderer}