3.0.0 • Published 3 months ago

rollup-plugin-polyfill-inject v3.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
3 months ago

rollup-plugin-polyfill-inject

npm version Build Status License

auto inject polyfill

polluting

const polyfill = require("rollup-plugin-polyfill-inject");
const commonjs = require("@rollup/plugin-commonjs");
const { nodeResolve } = require("@rollup/plugin-node-resolve");

module.exports = {
	plugins: [
		nodeResolve(),
		commonjs(),
		polyfill({
			polluting: {
				".includes": [
					"core-js/modules/es.array.includes",
					"core-js/modules/es.string.includes"
				],
				"Set": "core-js/modules/es.set",
				"Map": "core-js/modules/es.map"
			},
			exclude: ["**/node_modules/core-js/**"]
		})
	]
}

Before

console.log(document.head);
console.log([].includes(1));
console.log(localStorage);

var set=new Set();
function Map(){}
var map=new Map();

After

import "core-js/modules/es.array.includes";
import "core-js/modules/es.string.includes";
import "core-js/modules/es.set";

console.log(document.head);
console.log([].includes(1));
console.log(localStorage);

var set=new Set();
function Map(){}
var map=new Map();

pure

const polyfill = require("rollup-plugin-polyfill-inject");
const commonjs = require("@rollup/plugin-commonjs");
const { nodeResolve } = require("@rollup/plugin-node-resolve");

module.exports = {
	plugins: [
		nodeResolve(),
		commonjs(),
		polyfill({
			pure: {
				".padStart": "core-js-pure/actual/string/pad-start",
				"Promise":"core-js-pure/actual/promise",
				"Object.fromEntries":"core-js-pure/actual/object/from-entries"
			},
			exclude: ["**/node_modules/core-js-pure/**"]
		})
	]
}

Before

"abc".padStart(5, "0")

Promise.resolve(42).then(it => console.log(it));

Object.fromEntries([['a', 1], ['b', 2]]);

After

import padStart from "core-js-pure/actual/string/pad-start";
import Promise from "core-js-pure/actual/promise";
import fromEntries from "core-js-pure/actual/object/from-entries";

padStart("abc", 5, "0");

Promise.resolve(42).then(it => console.log(it));

fromEntries([['a', 1], ['b', 2]]);

getter

const polyfill = require("rollup-plugin-polyfill-inject");
const commonjs = require("@rollup/plugin-commonjs");
const { nodeResolve } = require("@rollup/plugin-node-resolve");

module.exports = {
	plugins: [
		nodeResolve(),
		commonjs(),
		polyfill({
			getter: {
				".textContent": "@/utils/getNodeText",
				"document.currentScript": ["sky-core/utils/getCurrentScript", 'getCurrentScript'],
			}
		})
	]
}

Before

var text = document.getElementById("foo").textContent;

var script = document.currentScript;

After

import getNodeText from "@/utils/getNodeText";
import { getCurrentScript } from "sky-core/utils/getCurrentScript";

var text = getNodeText(document.getElementById("foo"));

var script = getCurrentScript();

setter

const polyfill = require("rollup-plugin-polyfill-inject");
const commonjs = require("@rollup/plugin-commonjs");
const { nodeResolve } = require("@rollup/plugin-node-resolve");

module.exports = {
	plugins: [
		nodeResolve(),
		commonjs(),
		polyfill({
			setter: {
				".textContent": "@/utils/setNodeText",
				"document.title": ["@/utils/jsBridge", 'setActivityTitle']
			}
		})
	]
}

Before

document.getElementById("foo").textContent = "bar";

document.title = "New Title";

After

import setNodeText from "@/utils/setNodeText";
import { setActivityTitle } from "@/utils/jsBridge";

setNodeText(document.getElementById("foo"), "bar");

setActivityTitle("New Title");

super

Inject class when the class is super.

const polyfill = require("rollup-plugin-polyfill-inject");
const commonjs = require("@rollup/plugin-commonjs");
const { nodeResolve } = require("@rollup/plugin-node-resolve");

module.exports = {
	plugins: [
		nodeResolve(),
		commonjs(),
		polyfill({
			super: {
				"Error": "sky-core/pure/Error"
			}
		})
	]
}

Before

var err = new Error("error");

class MyError extends Error {}

After

import SuperError from "sky-core/pure/Error";

var err = new Error("error");

class MyError extends SuperError {}

error

Inject error class when the create error object use cause option.

const polyfill = require("rollup-plugin-polyfill-inject");
const commonjs = require("@rollup/plugin-commonjs");
const { nodeResolve } = require("@rollup/plugin-node-resolve");

module.exports = {
	plugins: [
		nodeResolve(),
		commonjs(),
		polyfill({
			error: {
				"Error": "sky-core/pure/Error",
				"AggregateError": "sky-core/pure/AggregateError"
			}
		})
	]
}

Before

var err = new Error("error");
var err2 = new Error("error", { cause: 1 });
var err3 = new AggregateError([], "msg");
var err4 = new AggregateError([], "msg", { cause: 1 });

After

import CauseError from "sky-core/pure/Error";
import CauseAggregateError from "sky-core/pure/AggregateError";

new Error("error");
new CauseError("error", { cause: 1 });
new AggregateError([], "msg");
new CauseAggregateError([], "msg", { cause: 1 });
3.0.0

3 months ago

2.0.1

11 months ago

2.0.0

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

5 years ago

0.0.0

5 years ago