Sha256: cb83cd268cb5c653b44056696938542cfd22bbdbb9db782d2faba2490dfee6bc

Contents?: true

Size: 1.31 KB

Versions: 6

Compression:

Stored size: 1.31 KB

Contents

'use strict';

var getFieldAsFn = require('./get-field-as-fn'),
    CustomError  = require('./get-error');

/**
 * Locate the root for input sources using the given codec hash
 * @throws Error Where the given codec is missing an encode function
 * @this {object} A loader or compilation
 * @param {{encode:function}} codec A single codec with an `encode` function
 * @returns {function(string):string|Error} An encode function that takes an absolute path
 */
function locateRootWith(codec) {
  /* jshint validthis:true */
  var context = this,
      root    = getFieldAsFn('root')(codec);
  if (!root) {
    return new CustomError('Specified format does not support encoding (it lacks a "root" function)');
  }
  else {
    return function locate() {

      // call the root
      var located;
      try {
        located = root.call(context);
      }
      catch (exception) {
        return getNamedError(exception);
      }
      return located;

      function getNamedError(details) {
        var name    = codec.name || '(unnamed)',
            message = [
              'Locating root with codec: ' + name,
              details && (details.stack ? details.stack : details)
            ]
              .filter(Boolean)
              .join('\n');
        return new Error(message);
      }
    };
  }
}

module.exports = locateRootWith;

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
rapid_stack-0.1.1 templates/FrontEnd/node_modules/adjust-sourcemap-loader/lib/process/locate-root-with.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/adjust-sourcemap-loader/lib/process/locate-root-with.js
optimacms-0.1.61 spec/dummy/node_modules/adjust-sourcemap-loader/lib/process/locate-root-with.js
optimacms-0.4.3 spec/dummy/node_modules/adjust-sourcemap-loader/lib/process/locate-root-with.js
optimacms-0.4.2 spec/dummy/node_modules/adjust-sourcemap-loader/lib/process/locate-root-with.js
cortex-0.1.3 spec/dummy/node_modules/adjust-sourcemap-loader/lib/process/locate-root-with.js