/* Copyright 2014 Google LLC Use of this source code is governed by the MIT License, available in this package's LICENSE file or at http://opensource.org/licenses/MIT. */ const path = require('path'); function resolvePaths({ filepath }, paths) { if (!paths) { return []; } return paths.slice(0).map((p) => path.resolve(filepath, p)); } function requirePaths(parentModule, opts) { const result = { before: [], after: [], }; if (!parentModule) { return result; } if (Array.isArray(opts)) { result.before = resolvePaths(parentModule, opts); } else { result.before = resolvePaths(parentModule, opts.before); result.after = resolvePaths(parentModule, opts.after); } return result; } exports.before = function before(targetPath, parentModule, opts) { const resolvedPaths = requirePaths(parentModule, opts); return ( `module.paths = ${JSON.stringify(resolvedPaths.before)}.concat(module.paths)` + `.concat(${JSON.stringify(resolvedPaths.after)}); ` ); }; exports.after = function after() { return ''; };