Socket
Socket
Sign inDemoInstall

rollup-plugin-node-resolve

Package Overview
Dependencies
Maintainers
2
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rollup-plugin-node-resolve - npm Package Compare versions

Comparing version 2.0.0 to 2.1.0

dist/rollup-plugin-node-resolve.es.js

6

CHANGELOG.md
# rollup-plugin-node-resolve changelog
## 2.1.0
* Add `jail` option ([#53](https://github.com/rollup/rollup-plugin-node-resolve/pull/53))
* Add `customResolveOptions` option ([#79](https://github.com/rollup/rollup-plugin-node-resolve/pull/79))
* Support symlinked packages ([#82](https://github.com/rollup/rollup-plugin-node-resolve/pull/82))
## 2.0.0

@@ -4,0 +10,0 @@

35

dist/rollup-plugin-node-resolve.cjs.js

@@ -9,2 +9,3 @@ 'use strict';

var browserResolve = _interopDefault(require('browser-resolve'));
var fs = _interopDefault(require('fs'));

@@ -21,3 +22,3 @@ var COMMONJS_BROWSER_EMPTY = _nodeResolve.sync( 'browser-resolve/empty.js', __dirname );

function nodeResolve ( options ) {
options = options || {};
if ( options === void 0 ) options = {};

@@ -30,2 +31,4 @@ var skip = options.skip || [];

var preferBuiltins = isPreferBuiltinsSet ? options.preferBuiltins : true;
var customResolveOptions = options.customResolveOptions || {};
var jail = options.jail || '/';

@@ -39,6 +42,6 @@ var onwarn = options.onwarn || CONSOLE_WARN;

resolveId: function resolveId$1 ( importee, importer ) {
if ( /\0/.test( importee ) ) return null; // ignore IDs with null character, these belong to other plugins
if ( /\0/.test( importee ) ) { return null; } // ignore IDs with null character, these belong to other plugins
// disregard entry module
if ( !importer ) return null;
if ( !importer ) { return null; }

@@ -56,3 +59,3 @@ var parts = importee.split( /[\/\\]/ );

if ( skip !== true && ~skip.indexOf( id ) ) return null;
if ( skip !== true && ~skip.indexOf( id ) ) { return null; }

@@ -62,8 +65,8 @@ return new Promise( function ( accept, reject ) {

importee,
{
Object.assign({
basedir: path.dirname( importer ),
packageFilter: function packageFilter ( pkg ) {
if ( !useJsnext && !useMain && !useModule ) {
if ( skip === true ) accept( false );
else reject( Error( ("To import from a package in node_modules (" + importee + "), either options.jsnext, options.module or options.main must be true") ) );
if ( skip === true ) { accept( false ); }
else { reject( Error( ("To import from a package in node_modules (" + importee + "), either options.jsnext, options.module or options.main must be true") ) ); }
} else if ( useModule && pkg[ 'module' ] ) {

@@ -74,4 +77,4 @@ pkg[ 'main' ] = pkg[ 'module' ];

} else if ( ( useJsnext || useModule ) && !useMain ) {
if ( skip === true ) accept( false );
else reject( Error( ("Package " + importee + " (imported by " + importer + ") does not have a module or jsnext:main field. You should either allow legacy modules with options.main, or skip it with options.skip = ['" + importee + "'])") ) );
if ( skip === true ) { accept( false ); }
else { reject( Error( ("Package " + importee + " (imported by " + importer + ") does not have a module or jsnext:main field. You should either allow legacy modules with options.main, or skip it with options.skip = ['" + importee + "'])") ) ); }
}

@@ -81,7 +84,11 @@ return pkg;

extensions: options.extensions
},
}, customResolveOptions ),
function ( err, resolved ) {
if ( resolved && fs.existsSync( resolved ) ) {
resolved = fs.realpathSync( resolved );
}
if ( err ) {
if ( skip === true ) accept( false );
else reject( Error( ("Could not resolve '" + importee + "' from " + (path.normalize( importer ))) ) );
if ( skip === true ) { accept( false ); }
else { reject( Error( ("Could not resolve '" + importee + "' from " + (path.normalize( importer ))) ) ); }
} else {

@@ -101,2 +108,4 @@ if ( resolved === COMMONJS_BROWSER_EMPTY ) {

accept( null );
} else if (resolved.indexOf(path.normalize(jail.trim(path.sep))) !== 0) {
accept( null );
} else {

@@ -113,2 +122,2 @@ accept( resolved );

module.exports = nodeResolve;
module.exports = nodeResolve;

@@ -1,2 +0,2 @@

import { resolve, normalize, dirname } from 'path';
import { resolve, dirname } from 'path';
import builtins from 'builtin-modules';

@@ -6,17 +6,14 @@ import _nodeResolve from 'resolve';

var COMMONJS_BROWSER_EMPTY = _nodeResolve.sync( 'browser-resolve/empty.js', __dirname );
var ES6_BROWSER_EMPTY = resolve( __dirname, '../src/empty.js' );
var CONSOLE_WARN = function () {
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
var COMMONJS_BROWSER_EMPTY = _nodeResolve.sync('browser-resolve/empty.js', __dirname);
var ES6_BROWSER_EMPTY = resolve(__dirname, '../src/empty.js');
var CONSOLE_WARN = function CONSOLE_WARN() {
var _console;
return console.warn.apply( console, args );
}; // eslint-disable-line no-console
return (_console = console).warn.apply(_console, arguments);
};
function nodeResolve ( options ) {
function nodeResolve(options) {
options = options || {};
var skip = options.skip || [];
var useJsnext = options.jsnext === true;
var useModule = options.module !== false;
var useMain = options.main !== false;

@@ -27,71 +24,55 @@ var isPreferBuiltinsSet = options.preferBuiltins === true || options.preferBuiltins === false;

var onwarn = options.onwarn || CONSOLE_WARN;
var resolveId = options.browser ? browserResolve : _nodeResolve;
var _resolveId = options.browser ? browserResolve : _nodeResolve;
return {
name: 'node-resolve',
resolveId: function resolveId$1 ( importee, importer ) {
if ( /\0/.test( importee ) ) return null; // ignore IDs with null character, these belong to other plugins
// disregard entry module
if ( !importer ) return null;
var parts = importee.split( /[\/\\]/ );
resolveId: function resolveId(importee, importer) {
var parts = importee.split(/[\/\\]/);
var id = parts.shift();
if ( id[0] === '@' && parts.length ) {
// scoped packages
id += "/" + (parts.shift());
} else if ( id[0] === '.' ) {
// an import relative to the parent dir of the importer
id = resolve( importer, '..', importee );
// scoped packages
if (id[0] === '@' && parts.length) {
id += '/' + parts.shift();
}
if ( skip !== true && ~skip.indexOf( id ) ) return null;
if (skip !== true && ~skip.indexOf(id)) return null;
return new Promise( function ( accept, reject ) {
resolveId(
importee,
{
basedir: dirname( importer ),
packageFilter: function packageFilter ( pkg ) {
if ( !useJsnext && !useMain && !useModule ) {
if ( skip === true ) accept( false );
else reject( Error( ("To import from a package in node_modules (" + importee + "), either options.jsnext, options.module or options.main must be true") ) );
} else if ( useModule && pkg[ 'module' ] ) {
pkg[ 'main' ] = pkg[ 'module' ];
} else if ( useJsnext && pkg[ 'jsnext:main' ] ) {
pkg[ 'main' ] = pkg[ 'jsnext:main' ];
} else if ( ( useJsnext || useModule ) && !useMain ) {
if ( skip === true ) accept( false );
else reject( Error( ("Package " + importee + " (imported by " + importer + ") does not have a module or jsnext:main field. You should either allow legacy modules with options.main, or skip it with options.skip = ['" + importee + "'])") ) );
// disregard entry module
if (!importer) return null;
return new Promise(function (accept, reject) {
_resolveId(importee, {
basedir: dirname(importer),
packageFilter: function packageFilter(pkg) {
if (options.jsnext) {
var main = pkg['jsnext:main'];
if (main) {
pkg['main'] = main;
} else if (!useMain) {
if (skip === true) accept(false);else reject(Error('Package ' + importee + ' (imported by ' + importer + ') does not have a jsnext:main field. You should either allow legacy modules with options.main, or skip it with options.skip = [\'' + importee + '\'])'));
}
return pkg;
},
extensions: options.extensions
} else if (!useMain) {
if (skip === true) accept(false);else reject(Error('To import from a package in node_modules (' + importee + '), either options.jsnext or options.main must be true'));
}
return pkg;
},
function ( err, resolved ) {
if ( err ) {
if ( skip === true ) accept( false );
else reject( Error( ("Could not resolve '" + importee + "' from " + (normalize( importer ))) ) );
extensions: options.extensions
}, function (err, resolved) {
if (err) {
if (skip === true) accept(false);else reject(err);
} else {
if (resolved === COMMONJS_BROWSER_EMPTY) {
accept(ES6_BROWSER_EMPTY);
} else if (~builtins.indexOf(resolved)) {
accept(null);
} else if (~builtins.indexOf(importee) && preferBuiltins) {
if (!isPreferBuiltinsSet) {
onwarn('preferring built-in module \'' + importee + '\' over local alternative ' + ('at \'' + resolved + '\', pass \'preferBuiltins: false\' to disable this ') + 'behavior or \'preferBuiltins: true\' to disable this warning');
}
accept(null);
} else {
if ( resolved === COMMONJS_BROWSER_EMPTY ) {
accept( ES6_BROWSER_EMPTY );
} else if ( ~builtins.indexOf( resolved ) ) {
accept( null );
} else if ( ~builtins.indexOf( importee ) && preferBuiltins ) {
if ( !isPreferBuiltinsSet ) {
onwarn(
"preferring built-in module '" + importee + "' over local alternative " +
"at '" + resolved + "', pass 'preferBuiltins: false' to disable this " +
"behavior or 'preferBuiltins: true' to disable this warning"
);
}
accept( null );
} else {
accept( resolved );
}
accept(resolved);
}
}
);
});
});

@@ -98,0 +79,0 @@ }

{
"name": "rollup-plugin-node-resolve",
"description": "Bundle third-party dependencies in node_modules",
"version": "2.0.0",
"version": "2.1.0",
"devDependencies": {
"buble": "^0.10.6",
"buble": "^0.15.2",
"es5-ext": "^0.10.11",
"eslint": "^2.11.1",
"mocha": "^2.3.3",
"rollup": "^0.27.1",
"rollup-plugin-buble": "^0.10.0",
"rollup-plugin-commonjs": "^2.0.0",
"eslint": "^3.18.0",
"mocha": "^3.0.2",
"rollup": "^0.41.6",
"rollup-plugin-buble": "^0.15.0",
"rollup-plugin-commonjs": "^8.0.2",
"string-capitalize": "^1.0.1",

@@ -17,3 +17,4 @@ "vlq": "^0.2.1"

"main": "dist/rollup-plugin-node-resolve.cjs.js",
"jsnext:main": "dist/rollup-plugin-node-resolve.es6.js",
"module": "dist/rollup-plugin-node-resolve.es.js",
"jsnext:main": "dist/rollup-plugin-node-resolve.es.js",
"scripts": {

@@ -23,8 +24,8 @@ "pretest": "rollup -c",

"posttest": "eslint src test/*.js",
"prepublish": "npm test"
"prepublish": "npm test",
"lint": "eslint src"
},
"files": [
"src",
"dist",
"README.md"
"dist"
],

@@ -36,6 +37,3 @@ "dependencies": {

},
"repository": {
"type": "git",
"url": "git+https://github.com/rollup/rollup-plugin-node-resolve.git"
},
"repository": "rollup/rollup-plugin-node-resolve",
"keywords": [

@@ -42,0 +40,0 @@ "rollup",

@@ -23,2 +23,5 @@ # rollup-plugin-node-resolve

nodeResolve({
// use "module" field for ES6 module if possible
module: true, // Default: true
// use "jsnext:main" if possible

@@ -35,3 +38,3 @@ // – see https://github.com/rollup/rollup/wiki/jsnext:main

// want to include, add it to 'skip'. Local and relative imports
// can be skipped by giving the full filepath. E.g.,
// can be skipped by giving the full filepath. E.g.,
// `path.resolve('src/relative-dependency.js')`

@@ -52,3 +55,7 @@ skip: [ 'some-big-dependency' ], // Default: []

preferBuiltins: false // Default: true
// Lock the module search in this path (like a chroot). Module defined
// outside this path will be mark has external
jail: '/my/jail/path' // Default: '/'
})

@@ -67,6 +74,6 @@ ]

]
}).then(bundle => bundle.write({
dest: 'bundle.js',
}).then(bundle => bundle.write({
dest: 'bundle.js',
moduleName: 'MyModule',
format: 'iife'
format: 'iife'
})).catch(err => console.log(err.stack));

@@ -73,0 +80,0 @@ ```

export default {};

@@ -1,5 +0,6 @@

import { dirname, resolve, normalize } from 'path';
import { dirname, resolve, normalize, sep } from 'path';
import builtins from 'builtin-modules';
import _nodeResolve from 'resolve';
import browserResolve from 'browser-resolve';
import fs from 'fs';

@@ -10,5 +11,3 @@ const COMMONJS_BROWSER_EMPTY = _nodeResolve.sync( 'browser-resolve/empty.js', __dirname );

export default function nodeResolve ( options ) {
options = options || {};
export default function nodeResolve ( options = {} ) {
const skip = options.skip || [];

@@ -20,2 +19,4 @@ const useJsnext = options.jsnext === true;

const preferBuiltins = isPreferBuiltinsSet ? options.preferBuiltins : true;
const customResolveOptions = options.customResolveOptions || {};
const jail = options.jail || '/';

@@ -50,3 +51,3 @@ const onwarn = options.onwarn || CONSOLE_WARN;

importee,
{
Object.assign({
basedir: dirname( importer ),

@@ -68,4 +69,8 @@ packageFilter ( pkg ) {

extensions: options.extensions
},
}, customResolveOptions ),
( err, resolved ) => {
if ( resolved && fs.existsSync( resolved ) ) {
resolved = fs.realpathSync( resolved );
}
if ( err ) {

@@ -88,2 +93,4 @@ if ( skip === true ) accept( false );

accept( null );
} else if (resolved.indexOf(normalize(jail.trim(sep))) !== 0) {
accept( null );
} else {

@@ -90,0 +97,0 @@ accept( resolved );

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc