Socket
Socket
Sign inDemoInstall

corejs-upgrade-webpack-plugin

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

corejs-upgrade-webpack-plugin - npm Package Compare versions

Comparing version 1.0.1 to 2.0.0

2

dist/index.d.ts
import { NormalModuleReplacementPlugin } from 'webpack';
export declare const rewriteCoreJsRequest: (originalRequest: string) => string;
export declare const rewriteCoreJsRequest: (originalRequest: string, lowerVersion?: boolean) => string;
export interface Options {

@@ -4,0 +4,0 @@ resolveFrom: string | false;

@@ -21,12 +21,26 @@ "use strict";

const rewriteCoreJsRequest = originalRequest => {
const rewriteRenamedModules = path => {
if (path === 'web.dom.iterable') {
return path.replace('web.dom.', 'web.dom-collections.');
}
return path;
};
const rewriteCoreJsRequest = (originalRequest, lowerVersion = false) => {
if (!originalRequest) {
throw new Error('no originalRequest');
}
if (/core-js\/modules\/es(6|7)\.(.*)/.test(originalRequest)) {
const [, esVersion, originalPath] = originalRequest.match(/core-js\/modules\/es(6|7)\.(.*)/);
const [, matchedVersion, matchedPath] = originalRequest.match(/core-js\/modules\/es(6|7)\.(.*)/);
const version = matchedVersion;
const path = rewriteRenamedModules(matchedPath);
if (esVersion === '6') {
return rewriteAndPreservePrefix(originalRequest, `modules/es.${originalPath}`);
if (version === '6' || lowerVersion) {
return rewriteAndPreservePrefix(originalRequest, `modules/es.${path}`);
}
if (esVersion === '7') {
return rewriteAndPreservePrefix(originalRequest, `modules/esnext.${originalPath}`);
if (version === '7') {
return rewriteAndPreservePrefix(originalRequest, `modules/esnext.${path}`);
}

@@ -36,19 +50,22 @@ }

if (/core-js\/library\/fn\/(.*)/.test(originalRequest)) {
const [, originalPath] = originalRequest.match(/core-js\/library\/fn\/(.*)/);
return rewriteAndPreservePrefix(originalRequest, `features/${originalPath}`, 'core-js-pure');
const [, matchedPath] = originalRequest.match(/core-js\/library\/fn\/(.*)/);
const path = rewriteRenamedModules(matchedPath);
return rewriteAndPreservePrefix(originalRequest, `features/${path}`, 'core-js-pure');
}
if (/core-js\/es(5|6|7)(.*)/.test(originalRequest)) {
const [, esVersion, originalPath] = originalRequest.match(/core-js\/es(5|6|7)(.*)?/);
const [, matchedVersion, matchedPath] = originalRequest.match(/core-js\/es(5|6|7)(.*)?/);
const version = matchedVersion;
if (esVersion === '5') {
if (version === '5') {
return null;
}
if (esVersion === '6') {
const asAModule = originalPath.replace('.js', '');
return rewriteAndPreservePrefix(originalRequest, `es${asAModule}`);
if (version === '6' || lowerVersion) {
const asAModule = matchedPath.replace('.js', '');
const path = rewriteRenamedModules(asAModule);
return rewriteAndPreservePrefix(originalRequest, `es${path}`);
}
if (esVersion === '7') {
if (version === '7') {
return null;

@@ -59,4 +76,5 @@ }

if (/core-js\/(object)\/(.*)/.test(originalRequest)) {
const [, originalPath] = originalRequest.match(/core-js\/(.*)?/);
return rewriteAndPreservePrefix(originalRequest, `features/${originalPath}`);
const [, matchedPath] = originalRequest.match(/core-js\/(.*)?/);
const path = rewriteRenamedModules(matchedPath);
return rewriteAndPreservePrefix(originalRequest, `features/${path}`);
}

@@ -83,14 +101,24 @@

try {
resolve(originalRequest);
require.resolve(originalRequest);
} catch (originalError) {
const newRequest = rewriteCoreJsRequest(originalRequest);
let error = true; // attempt to upgrade the path from core-js v2 to v3
if (!newRequest) {
throw originalError;
if (error) {
try {
// eslint-disable-next-line no-param-reassign
resource.request = resolve(rewriteCoreJsRequest(originalRequest));
error = false;
} catch (e) {}
} // attempt to downgrade the path from es7 to es6
if (error) {
try {
// eslint-disable-next-line no-param-reassign
resource.request = resolve(rewriteCoreJsRequest(originalRequest, true));
error = false;
} catch (e) {}
}
try {
// eslint-disable-next-line no-param-reassign
resource.request = resolve(newRequest);
} catch (newRequestError) {
if (error) {
throw originalError;

@@ -97,0 +125,0 @@ }

{
"name": "corejs-upgrade-webpack-plugin",
"version": "1.0.1",
"version": "2.0.0",
"description": "a webpack plugin that transforms core-js v2 paths to core-js v3 paths",

@@ -5,0 +5,0 @@ "keywords": [

@@ -85,1 +85,31 @@ import CoreJsAutoUpgradePlugin, { rewriteCoreJsRequest } from './index';

});
describe('rewriteCoreJsRequest with downgrade option enabled', () => {
const fakeRequire = jest.mock();
describe('rewrite `core-js/modules/*`', () => {
it('should rewrite `core-js/modules/es6.*` import to `core-js/modules/es.*`', () => {
expect(rewriteCoreJsRequest('core-js/modules/es6.object.is-frozen.js', true)).toBe(
'core-js/modules/es.object.is-frozen.js'
);
});
it('should rewrite `core-js/modules/es7.*` import to `core-js/modules/es.*`', () => {
expect(rewriteCoreJsRequest('core-js/modules/es7.symbol.async-iterator', true)).toBe(
'core-js/modules/es.symbol.async-iterator'
);
});
it('should rewrite `core-js/modules/es.*` import to `core-js/modules/es.*`', () => {
expect(rewriteCoreJsRequest('core-js/modules/es.object.is-frozen.js', true)).toBe(
'core-js/modules/es.object.is-frozen.js'
);
});
it('should rewrite `core-js/modules/esnext.*` import to `core-js/modules/esnext.*`', () => {
expect(rewriteCoreJsRequest('core-js/modules/esnext.set.some.js', true)).toBe(
'core-js/modules/esnext.set.some.js'
);
});
});
});

@@ -11,11 +11,25 @@ import { NormalModuleReplacementPlugin } from 'webpack';

export const rewriteCoreJsRequest = (originalRequest: string) => {
const rewriteRenamedModules = (path: string) => {
if (path === 'web.dom.iterable') {
return path.replace('web.dom.', 'web.dom-collections.')
}
return path;
}
export const rewriteCoreJsRequest = (originalRequest: string, lowerVersion = false) => {
if (!originalRequest) {
throw new Error('no originalRequest')
}
if (/core-js\/modules\/es(6|7)\.(.*)/.test(originalRequest)) {
const [,esVersion, originalPath] = originalRequest.match(/core-js\/modules\/es(6|7)\.(.*)/);
const [,matchedVersion, matchedPath] = originalRequest.match(/core-js\/modules\/es(6|7)\.(.*)/);
if (esVersion === '6') {
return rewriteAndPreservePrefix(originalRequest, `modules/es.${originalPath}`);
const version = matchedVersion;
const path = rewriteRenamedModules(matchedPath);
if (version === '6' || lowerVersion) {
return rewriteAndPreservePrefix(originalRequest, `modules/es.${path}`);
}
if (esVersion === '7') {
return rewriteAndPreservePrefix(originalRequest, `modules/esnext.${originalPath}`);
if (version === '7') {
return rewriteAndPreservePrefix(originalRequest, `modules/esnext.${path}`);
}

@@ -25,19 +39,24 @@ }

if (/core-js\/library\/fn\/(.*)/.test(originalRequest)) {
const [,originalPath] = originalRequest.match(/core-js\/library\/fn\/(.*)/);
const [,matchedPath] = originalRequest.match(/core-js\/library\/fn\/(.*)/);
return rewriteAndPreservePrefix(originalRequest, `features/${originalPath}`, 'core-js-pure');
const path = rewriteRenamedModules(matchedPath);
return rewriteAndPreservePrefix(originalRequest, `features/${path}`, 'core-js-pure');
}
if (/core-js\/es(5|6|7)(.*)/.test(originalRequest)) {
const [,esVersion, originalPath] = originalRequest.match(/core-js\/es(5|6|7)(.*)?/);
const [,matchedVersion, matchedPath] = originalRequest.match(/core-js\/es(5|6|7)(.*)?/);
if (esVersion === '5') {
const version = matchedVersion;
if (version === '5') {
return null;
}
if (esVersion === '6') {
const asAModule = originalPath.replace('.js', '');
if (version === '6' || lowerVersion) {
const asAModule = matchedPath.replace('.js', '');
const path = rewriteRenamedModules(asAModule);
return rewriteAndPreservePrefix(originalRequest, `es${asAModule}`);
return rewriteAndPreservePrefix(originalRequest, `es${path}`);
}
if (esVersion === '7') {
if (version === '7') {
return null;

@@ -48,5 +67,7 @@ }

if (/core-js\/(object)\/(.*)/.test(originalRequest)) {
const [,originalPath] = originalRequest.match(/core-js\/(.*)?/);
const [,matchedPath] = originalRequest.match(/core-js\/(.*)?/);
return rewriteAndPreservePrefix(originalRequest, `features/${originalPath}`);
const path = rewriteRenamedModules(matchedPath);
return rewriteAndPreservePrefix(originalRequest, `features/${path}`);
}

@@ -74,15 +95,27 @@

}
try {
resolve(originalRequest);
require.resolve(originalRequest);
} catch (originalError) {
const newRequest = rewriteCoreJsRequest(originalRequest);
if (!newRequest) {
throw originalError;
let error = true;
// attempt to upgrade the path from core-js v2 to v3
if (error) {
try {
// eslint-disable-next-line no-param-reassign
resource.request = resolve(rewriteCoreJsRequest(originalRequest));
error = false;
} catch (e) {}
}
try {
// eslint-disable-next-line no-param-reassign
resource.request = resolve(newRequest);
} catch (newRequestError) {
// attempt to downgrade the path from es7 to es6
if (error) {
try {
// eslint-disable-next-line no-param-reassign
resource.request = resolve(rewriteCoreJsRequest(originalRequest, true));
error = false;
} catch (e) {}
}
if (error) {
throw originalError;

@@ -89,0 +122,0 @@ }

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