Socket
Socket
Sign inDemoInstall

rollup-plugin-extensions

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rollup-plugin-extensions - npm Package Compare versions

Comparing version 0.0.2 to 0.1.0

48

lib/index.esm.js
/**
* rollup-plugin-extensions v0.0.2
* rollup-plugin-extensions v0.1.0
* Author: Gabe Meola <gabe@zelzen.io>

@@ -12,5 +12,5 @@ *

var basename = posix.basename, dirname = posix.dirname, isAbsolute = posix.isAbsolute, resolve = posix.resolve;
function exists(file) {
function fileExists(filePath) {
try {
return fs.statSync(file).isFile();
return fs.statSync(filePath).isFile();
}

@@ -21,4 +21,12 @@ catch (err) {

}
function isDirectory(filePath) {
try {
return fs.statSync(filePath).isDirectory();
}
catch (err) {
return false;
}
}
var resolvedFilesCache = new Map();
function addExtensionIfNecessary(file, extensions) {
function resolveFilePath(file, extensions, resolveIndex) {
try {

@@ -33,3 +41,3 @@ // Check if file is already resolved

// We have an exact path.
if (files.includes(name) && exists(file)) {
if (files.includes(name) && fileExists(file)) {
resolvedFilesCache.set(file, file);

@@ -43,3 +51,3 @@ return file;

// Return on first find
if (files.includes(fileName) && exists(filePath)) {
if (files.includes(fileName) && fileExists(filePath)) {
resolvedFilesCache.set(file, filePath);

@@ -49,2 +57,20 @@ return filePath;

}
// Resolve index file if path is a directory.
// This should come *after* checking to see if we have any files that match,
// in-case there is a dir and a file with the same name.
if (resolveIndex === true && isDirectory(file)) {
// Get all available files from dir
var files_1 = fs.readdirSync(file);
for (var _a = 0, extensions_2 = extensions; _a < extensions_2.length; _a++) {
var ext = extensions_2[_a];
// Check for any index files matching extensions
var fileName = "index" + ext;
var filePath = resolve(file, fileName);
// Return first index file found in dir
if (files_1.includes(fileName) && fileExists(filePath)) {
resolvedFilesCache.set(file, filePath);
return filePath;
}
}
}
}

@@ -58,3 +84,3 @@ catch (err) {

function extensions(_a) {
var _b = (_a === void 0 ? {} : _a).extensions, extensions = _b === void 0 ? DEFAULT_EXTENSIONS : _b;
var _b = _a === void 0 ? {} : _a, _c = _b.extensions, extensions = _c === void 0 ? DEFAULT_EXTENSIONS : _c, _d = _b.resolveIndex, resolveIndex = _d === void 0 ? true : _d;
if (extensions == null || extensions.length <= 0) {

@@ -68,7 +94,7 @@ throw new Error("[rollup-plugin-extensions] Extensions must be a non-empty array of strings.\n e.g \"{ extensions: ['.ts, '.jsx', '.jsx'] }\"\n ");

if (isAbsolute(id))
return addExtensionIfNecessary(resolve(id), extensions);
return resolveFilePath(resolve(id), extensions, resolveIndex);
// Parent will be undefined if this is an entry point.
// Resolve against current working directory.
if (parent === undefined)
return addExtensionIfNecessary(resolve(process.cwd(), id), extensions);
return resolveFilePath(resolve(process.cwd(), id), extensions, resolveIndex);
// Skip external modules at this stage

@@ -78,5 +104,5 @@ if (id[0] !== '.')

// Resolve all local imports
return addExtensionIfNecessary(
return resolveFilePath(
// local file path
resolve(dirname(parent), id), extensions);
resolve(dirname(parent), id), extensions, resolveIndex);
}

@@ -83,0 +109,0 @@ };

/**
* rollup-plugin-extensions v0.0.2
* rollup-plugin-extensions v0.1.0
* Author: Gabe Meola <gabe@zelzen.io>

@@ -16,5 +16,5 @@ *

var basename = path.posix.basename, dirname = path.posix.dirname, isAbsolute = path.posix.isAbsolute, resolve = path.posix.resolve;
function exists(file) {
function fileExists(filePath) {
try {
return fs.statSync(file).isFile();
return fs.statSync(filePath).isFile();
}

@@ -25,4 +25,12 @@ catch (err) {

}
function isDirectory(filePath) {
try {
return fs.statSync(filePath).isDirectory();
}
catch (err) {
return false;
}
}
var resolvedFilesCache = new Map();
function addExtensionIfNecessary(file, extensions) {
function resolveFilePath(file, extensions, resolveIndex) {
try {

@@ -37,3 +45,3 @@ // Check if file is already resolved

// We have an exact path.
if (files.includes(name) && exists(file)) {
if (files.includes(name) && fileExists(file)) {
resolvedFilesCache.set(file, file);

@@ -47,3 +55,3 @@ return file;

// Return on first find
if (files.includes(fileName) && exists(filePath)) {
if (files.includes(fileName) && fileExists(filePath)) {
resolvedFilesCache.set(file, filePath);

@@ -53,2 +61,20 @@ return filePath;

}
// Resolve index file if path is a directory.
// This should come *after* checking to see if we have any files that match,
// in-case there is a dir and a file with the same name.
if (resolveIndex === true && isDirectory(file)) {
// Get all available files from dir
var files_1 = fs.readdirSync(file);
for (var _a = 0, extensions_2 = extensions; _a < extensions_2.length; _a++) {
var ext = extensions_2[_a];
// Check for any index files matching extensions
var fileName = "index" + ext;
var filePath = resolve(file, fileName);
// Return first index file found in dir
if (files_1.includes(fileName) && fileExists(filePath)) {
resolvedFilesCache.set(file, filePath);
return filePath;
}
}
}
}

@@ -62,3 +88,3 @@ catch (err) {

function extensions(_a) {
var _b = (_a === void 0 ? {} : _a).extensions, extensions = _b === void 0 ? DEFAULT_EXTENSIONS : _b;
var _b = _a === void 0 ? {} : _a, _c = _b.extensions, extensions = _c === void 0 ? DEFAULT_EXTENSIONS : _c, _d = _b.resolveIndex, resolveIndex = _d === void 0 ? true : _d;
if (extensions == null || extensions.length <= 0) {

@@ -72,7 +98,7 @@ throw new Error("[rollup-plugin-extensions] Extensions must be a non-empty array of strings.\n e.g \"{ extensions: ['.ts, '.jsx', '.jsx'] }\"\n ");

if (isAbsolute(id))
return addExtensionIfNecessary(resolve(id), extensions);
return resolveFilePath(resolve(id), extensions, resolveIndex);
// Parent will be undefined if this is an entry point.
// Resolve against current working directory.
if (parent === undefined)
return addExtensionIfNecessary(resolve(process.cwd(), id), extensions);
return resolveFilePath(resolve(process.cwd(), id), extensions, resolveIndex);
// Skip external modules at this stage

@@ -82,5 +108,5 @@ if (id[0] !== '.')

// Resolve all local imports
return addExtensionIfNecessary(
return resolveFilePath(
// local file path
resolve(dirname(parent), id), extensions);
resolve(dirname(parent), id), extensions, resolveIndex);
}

@@ -87,0 +113,0 @@ };

import { Plugin } from 'rollup';
declare type Extensions = Array<string>;
declare type ExtensionsArgs = {
/** Which extensions to look for */
extensions?: Extensions;
/** If folder "index" files should be resolved. Will use extensions. */
resolveIndex?: boolean;
};
export default function extensions({ extensions }?: ExtensionsArgs): Plugin;
export default function extensions({ extensions, resolveIndex, }?: ExtensionsArgs): Plugin;
export {};
{
"name": "rollup-plugin-extensions",
"version": "0.0.2",
"version": "0.1.0",
"description": "Allow rollup to resolve local files with any extension",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -27,3 +27,6 @@ # rollup-plugin-extensions

// Uses ".mjs, .js" by default
extensions: ['.tsx', '.ts', '.jsx', '.js']
extensions: ['.tsx', '.ts', '.jsx', '.js'],
// Resolves index dir files based on supplied extensions
// This is enable by default
resolveIndex: true,
})

@@ -47,5 +50,5 @@ ]

- [ ] - Add support for index file resolution
- [ ] - Testing Suite
["Inspired" by Oskar](https://github.com/rollup/rollup/issues/1052#issuecomment-260068521)
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