change to rollup

This commit is contained in:
Rene
2020-07-20 07:12:57 +02:00
parent 34f98a5c47
commit 0b55c965e0
14 changed files with 497 additions and 1723 deletions
+125 -1435
View File
File diff suppressed because it is too large Load Diff
+10 -11
View File
@@ -9,22 +9,21 @@
"@babel/plugin-transform-modules-commonjs": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"@babel/preset-typescript": "^7.9.0",
"@rollup/plugin-node-resolve": "^8.0.0",
"@rollup/plugin-typescript": "^4.1.2",
"@rollup/plugin-babel": "^5.1.0",
"@rollup/plugin-commonjs": "^14.0.0",
"@rollup/plugin-node-resolve": "^8.4.0",
"@rollup/plugin-typescript": "^5.0.2",
"@types/jest": "^25.2.3",
"babel-jest": "^26.0.1",
"clean-webpack-plugin": "^3.0.0",
"jest": "^26.0.1",
"terser-webpack-plugin": "^3.0.7",
"ts-loader": "^8.0.1",
"rollup": "^2.22.1",
"rollup-plugin-terser": "^6.1.0",
"rollup-plugin-typescript2": "^0.27.1",
"tslib": "^2.0.0",
"typescript": "^3.9.3",
"webpack": "next",
"webpack-cli": "^3.3.12",
"webpack-merge": "^5.0.9"
"typescript": "^3.9.3"
},
"scripts": {
"test": "jest --coverage",
"build": "npx webpack --env.project=overlayscrollbars --env.production"
"build": "npx webpack --env.project=overlayscrollbars"
}
}
}
+75 -62
View File
@@ -1,62 +1,75 @@
!function(o, r) {
"object" == typeof exports && "object" == typeof module ? module.exports = r() : "function" == typeof define && define.amd ? define([], r) : "object" == typeof exports ? exports.OverlayScrollbars = r() : o.OverlayScrollbars = r();
}(window, (function() {
return (() => {
"use strict";
var o = {
95: (o, r, e) => {
e.d(r, {
default: () => u
});
function s(o) {
return "function" == typeof o;
}
function t(o) {
return Array.isArray(o);
}
function n(o) {
const r = !!o && o.length;
return t(o) || !s(o) && function(o) {
return "number" == typeof o;
}(r) && r > -1 && r % 1 == 0;
}
function i(o, r) {
let e = 0;
if (n(o)) for (;e < o.length && !1 !== r(o[e], e, o); e++) ; else if (o) for (e in o) if (!1 === r(o[e], e, o)) break;
return o;
}
const c = o => {
if (n(o)) i(Array.from(o), o => c(o)); else if (o) {
const r = o.parentNode;
r && r.removeChild(o);
}
}, l = o => {
const r = document.createElement("div");
return r.innerHTML = o.trim(), i((o => o ? Array.from(o.childNodes) : [])(r), o => c(o));
};
const a = o => o.charAt(0).toUpperCase() + o.slice(1), d = [ "WebKit", "Moz", "O", "MS", "webkit", "moz", "o", "ms" ], f = {}, v = ((o => {
let r = f[o] || window[o];
f.hasOwnProperty(o) || (i(d, e => (r = r || window[e + a(o)], !r)), f[o] = r);
})("ResizeObserver"), JSON.stringify, [ "__TPL_", "_TYPE__" ]);
[ "boolean", "number", "string", "array", "object", "function", "null" ].reduce((o, r) => (o[r] = v[0] + r + v[1],
o), {});
new Set, new WeakMap;
const u = () => l(' <div class="os-host"> <div class="os-resize-observer-host"></div> <div class="os-padding"> <div class="os-viewport"> <div class="os-content"> fdfhdfgh </div> </div> </div> <div class="os-scrollbar os-scrollbar-horizontal"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar os-scrollbar-vertical"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar-corner"></div> </div>');
}
}, r = {};
function e(s) {
if (r[s]) return r[s].exports;
var t = r[s] = {
exports: {}
};
return o[s](t, t.exports, e), t.exports;
}
return e.d = (o, r) => {
for (var s in r) e.o(r, s) && !e.o(o, s) && Object.defineProperty(o, s, {
enumerable: !0,
get: r[s]
});
}, e.o = (o, r) => Object.prototype.hasOwnProperty.call(o, r), e(95);
})().default;
}));
//# sourceMappingURL=overlayscrollbars.esm.js.map
import j from 'jquery';
function isNumber(obj) {
return typeof obj === 'number';
}
function isFunction(obj) {
return typeof obj === 'function';
}
function isArray(obj) {
return Array.isArray(obj);
}
function isArrayLike(obj) {
const length = !!obj && obj.length;
return isArray(obj) || !isFunction(obj) && isNumber(length) && length > -1 && length % 1 == 0;
}
function each(source, callback) {
let i = 0;
if (isArrayLike(source)) {
for (; i < source.length; i++) {
if (callback(source[i], i, source) === false) break;
}
} else if (source) {
for (i in source) {
if (callback(source[i], i, source) === false) break;
}
}
return source;
}
const contents = elm => {
return elm ? Array.from(elm.childNodes) : [];
};
const removeElements = nodes => {
if (isArrayLike(nodes)) {
each(Array.from(nodes), e => removeElements(e));
} else if (nodes) {
const parentNode = nodes.parentNode;
if (parentNode) parentNode.removeChild(nodes);
}
};
const createDiv = () => {
return document.createElement('div');
};
const createDOM = html => {
const elm = createDiv();
elm.innerHTML = html.trim();
return each(contents(elm), elm => removeElements(elm));
};
const abc = {
a: 1,
b: 1,
c: 1
};
var index = () => {
const {
a,
b,
c
} = abc;
return [createDOM(" <div class=\"os-host\"> <div class=\"os-resize-observer-host\"></div> <div class=\"os-padding\"> <div class=\"os-viewport\"> <div class=\"os-content\"> fdfhdfgh </div> </div> </div> <div class=\"os-scrollbar os-scrollbar-horizontal\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar os-scrollbar-vertical\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar-corner\"></div> </div>"), j('div'), a, b, c];
};
export default index;
//# sourceMappingURL=overlayscrollbars.esm.js.map
File diff suppressed because one or more lines are too long
+100 -77
View File
@@ -1,77 +1,100 @@
!function(r, n) {
"object" == typeof exports && "object" == typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define([], n) : "object" == typeof exports ? exports.OverlayScrollbars = n() : r.OverlayScrollbars = n();
}(window, (function() {
return function() {
"use strict";
var r = {
95: function(r, n, o) {
o.d(n, {
default: function() {
return p;
}
});
function e(r) {
return "function" == typeof r;
}
function t(r) {
return Array.isArray(r);
}
function i(r) {
var n = !!r && r.length;
return t(r) || !e(r) && function(r) {
return "number" == typeof r;
}(n) && n > -1 && n % 1 == 0;
}
function s(r, n) {
var o = 0;
if (i(r)) for (;o < r.length && !1 !== n(r[o], o, r); o++) ; else if (r) for (o in r) if (!1 === n(r[o], o, r)) break;
return r;
}
var c = function(r) {
if (i(r)) s(Array.from(r), (function(r) {
return c(r);
})); else if (r) {
var n = r.parentNode;
n && n.removeChild(r);
}
}, u = function(r) {
var n = document.createElement("div");
return n.innerHTML = r.trim(), s(function(r) {
return r ? Array.from(r.childNodes) : [];
}(n), (function(r) {
return c(r);
}));
};
var a, f, l = function(r) {
return r.charAt(0).toUpperCase() + r.slice(1);
}, d = [ "WebKit", "Moz", "O", "MS", "webkit", "moz", "o", "ms" ], v = {}, b = (f = v[a = "ResizeObserver"] || window[a],
v.hasOwnProperty(a) || (s(d, (function(r) {
return !(f = f || window[r + l(a)]);
})), v[a] = f), JSON.stringify, [ "__TPL_", "_TYPE__" ]);
[ "boolean", "number", "string", "array", "object", "function", "null" ].reduce((function(r, n) {
return r[n] = b[0] + n + b[1], r;
}), {});
new Set, new WeakMap;
var p = function() {
return u(' <div class="os-host"> <div class="os-resize-observer-host"></div> <div class="os-padding"> <div class="os-viewport"> <div class="os-content"> fdfhdfgh </div> </div> </div> <div class="os-scrollbar os-scrollbar-horizontal"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar os-scrollbar-vertical"> <div class="os-scrollbar-track"> <div class="os-scrollbar-handle"></div> </div> </div> <div class="os-scrollbar-corner"></div> </div>');
};
}
}, n = {};
function o(e) {
if (n[e]) return n[e].exports;
var t = n[e] = {
exports: {}
};
return r[e](t, t.exports, o), t.exports;
}
return o.d = function(r, n) {
for (var e in n) o.o(n, e) && !o.o(r, e) && Object.defineProperty(r, e, {
enumerable: !0,
get: n[e]
});
}, o.o = function(r, n) {
return Object.prototype.hasOwnProperty.call(r, n);
}, o(95);
}().default;
}));
//# sourceMappingURL=overlayscrollbars.js.map
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define("OverlayScrollbars", ["exports", "jquery"], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require("jquery"));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.jQuery);
global.OverlayScrollbars = mod.exports;
}
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _jquery) {
"use strict";
Object.defineProperty(_exports, "__esModule", {
value: true
});
_exports.default = void 0;
_jquery = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function isNumber(obj) {
return typeof obj === 'number';
}
function isFunction(obj) {
return typeof obj === 'function';
}
function isArray(obj) {
return Array.isArray(obj);
}
function isArrayLike(obj) {
var length = !!obj && obj.length;
return isArray(obj) || !isFunction(obj) && isNumber(length) && length > -1 && length % 1 == 0;
}
function each(source, callback) {
var i = 0;
if (isArrayLike(source)) {
for (; i < source.length; i++) {
if (callback(source[i], i, source) === false) break;
}
} else if (source) {
for (i in source) {
if (callback(source[i], i, source) === false) break;
}
}
return source;
}
var contents = function contents(elm) {
return elm ? Array.from(elm.childNodes) : [];
};
var removeElements = function removeElements(nodes) {
if (isArrayLike(nodes)) {
each(Array.from(nodes), function (e) {
return removeElements(e);
});
} else if (nodes) {
var parentNode = nodes.parentNode;
if (parentNode) parentNode.removeChild(nodes);
}
};
var createDiv = function createDiv() {
return document.createElement('div');
};
var createDOM = function createDOM(html) {
var elm = createDiv();
elm.innerHTML = html.trim();
return each(contents(elm), function (elm) {
return removeElements(elm);
});
};
var abc = {
a: 1,
b: 1,
c: 1
};
var index = function index() {
var a = abc.a,
b = abc.b,
c = abc.c;
return [createDOM(" <div class=\"os-host\"> <div class=\"os-resize-observer-host\"></div> <div class=\"os-padding\"> <div class=\"os-viewport\"> <div class=\"os-content\"> fdfhdfgh </div> </div> </div> <div class=\"os-scrollbar os-scrollbar-horizontal\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar os-scrollbar-vertical\"> <div class=\"os-scrollbar-track\"> <div class=\"os-scrollbar-handle\"></div> </div> </div> <div class=\"os-scrollbar-corner\"></div> </div>"), (0, _jquery.default)('div'), a, b, c];
};
var _default = index;
_exports.default = _default;
});
//# sourceMappingURL=overlayscrollbars.js.map
File diff suppressed because one or more lines are too long
+27
View File
@@ -0,0 +1,27 @@
{
"version": "0.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/jquery": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.0.tgz",
"integrity": "sha512-C7qQUjpMWDUNYQRTXsP5nbYYwCwwgy84yPgoTT7fPN69NH92wLeCtFaMsWeolJD1AF/6uQw3pYt62rzv83sMmw==",
"dev": true,
"requires": {
"@types/sizzle": "*"
}
},
"@types/sizzle": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz",
"integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==",
"dev": true
},
"jquery": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz",
"integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg=="
}
}
}
+7 -1
View File
@@ -1,5 +1,11 @@
{
"private": true,
"description": "OverlayScrollbars version 2",
"version": "0.0.1"
"version": "0.0.1",
"peerDependencies": {
"jquery": "^3.5.1"
},
"devDependencies": {
"@types/jquery": "^3.5.0"
}
}
@@ -0,0 +1,18 @@
const name = 'OverlayScrollbars';
const exports = 'default';
export default [
{
name,
exports,
format: 'umd',
sourcemap: true,
},
{
name,
exports,
format: 'es',
sourcemap: true,
},
];
+13 -4
View File
@@ -1,15 +1,23 @@
import { createDOM } from 'core/dom';
import j from 'jquery';
/*
export * from 'core/compatibility';
export * from 'core/utils';
export * from 'core/dom';
export * from 'core/options';
export * from 'instances';
*/
const abc = {
a: 1,
b: 1,
c: 1,
}
export default () => createDOM(`\
export default () => {
const { a, b, c } = abc;
return [createDOM(`\
<div class="os-host">\
<div class="os-resize-observer-host"></div>\
<div class="os-padding">\
@@ -30,4 +38,5 @@ export default () => createDOM(`\
</div>\
</div>\
<div class="os-scrollbar-corner"></div>\
</div>`);
</div>`), j('div'), a, b, c];
};
+2 -6
View File
@@ -1,7 +1,3 @@
export * from 'core/compatibility';
export * from 'core/utils';
export * from 'core/dom';
export * from 'core/options';
export * from 'instances';
declare const _default: () => readonly Node[];
/// <reference types="jquery" />
declare const _default: () => (number | readonly Node[] | JQuery<HTMLElement>)[];
export default _default;
@@ -1,7 +0,0 @@
export default {
output: {
library: 'OverlayScrollbars',
libraryTarget: 'umd',
libraryExport: 'default',
}
}
+118
View File
@@ -0,0 +1,118 @@
import path from 'path';
import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import typescript from 'rollup-plugin-typescript2';
import { terser } from "rollup-plugin-terser";
import { getBabelOutputPlugin } from '@rollup/plugin-babel';
const projectRootPath = './packages';
const projectSrcDirectory = './src';
const projectDistDirectory = './dist';
const projectTypesDirectory = './types';
const projectEntry = 'index.ts';
export default async (config) => {
const {
'config-project': project,
'config-src': src = projectSrcDirectory,
'config-dist': dist = projectDistDirectory,
'config-types': types = projectTypesDirectory,
'config-entry': entry = projectEntry,
} = config;
const projectPath = path.resolve(__dirname, projectRootPath, project);
const srcPath = path.resolve(projectPath, src);
const distPath = path.resolve(projectPath, dist);
const typesPath = path.resolve(projectPath, types);
const entryPath = path.resolve(srcPath, entry);
const packageJSONPath = path.resolve(projectPath, 'package.json');
const tsconfigJSONPath = path.resolve(projectPath, 'tsconfig.json');
const nodeModulesPath = path.resolve(projectPath, 'node_modules');
const { devDependencies = {}, peerDependencies = {} } = await import(packageJSONPath);
return {
input: entryPath,
output: [
{
name: "OverlayScrollbars",
format: 'esm',
file: path.resolve(distPath, `${project}.js`),
sourcemap: true,
exports: 'default',
plugins: [getBabelOutputPlugin({
presets: [['@babel/preset-env', {
modules: 'umd',
targets: {
ie: "11"
}
}]],
plugins: [["@babel/plugin-transform-modules-umd", {
globals: {
"jquery": "jQuery"
}
}]],
moduleId: "OverlayScrollbars"
})]
},
{
name: "OverlayScrollbars",
format: 'esm',
file: path.resolve(distPath, `${project}.esm.js`),
sourcemap: true,
exports: 'default',
plugins: [getBabelOutputPlugin({
presets: [['@babel/preset-env', {
targets: {
chrome: "51",
firefox: "54",
safari: "11"
}
}]],
})]
},
/*
{
name: "OverlayScrollbars",
format: 'esm',
file: path.resolve(distPath, `${project}.esm.min.js`),
sourcemap: false,
exports: 'default',
plugins: [getBabelOutputPlugin({ presets: ['@babel/preset-env', { modules: 'umd' }] }), terser(),],
}
*/
],
external: [
...Object.keys(devDependencies),
...Object.keys(peerDependencies)
],
plugins: [
resolve({
extensions: ['.ts', '.tsx', '.js', 'jsx'],
customResolveOptions: {
moduleDirectory: [
srcPath,
nodeModulesPath,
path.resolve(__dirname, 'node_modules'),
],
}
}),
commonjs(),
typescript({
check: true,
useTsconfigDeclarationDir: true,
tsconfig: tsconfigJSONPath,
tsconfigOverride: {
compilerOptions: {
target: 'es6',
sourceMap: true,
declaration: true,
declarationDir: typesPath,
},
}
}),
]
}
};
-118
View File
@@ -1,118 +0,0 @@
import path from 'path';
import TerserPlugin from 'terser-webpack-plugin';
import { CleanWebpackPlugin } from 'clean-webpack-plugin';
import { merge } from 'webpack-merge';
const projectRootPath = './packages';
const projectSrcDirectory = './src';
const projectDistDirectory = './dist';
const projectTypesDirectory = './types';
const projectEntry = 'index';
const outputs = [{
extension: 'js',
target: 'es5',
ecmaVersion: 5,
}, {
extension: 'esm.js',
target: 'es6',
ecmaVersion: 6,
}];
export default async (env) => {
const {
project,
src = projectSrcDirectory,
dist = projectDistDirectory,
types = projectTypesDirectory,
entry = projectEntry,
production
} = env;
const projectPath = path.resolve(__dirname, projectRootPath, project);
const srcPath = path.resolve(projectPath, src);
const distPath = path.resolve(projectPath, dist);
const typesPath = path.resolve(projectPath, types);
const entryPath = path.resolve(srcPath, entry);
const webpackConfigPath = path.resolve(projectPath, 'webpack.config.js');
const packageJSONPath = path.resolve(projectPath, 'package.json');
const tsconfigJSONPath = path.resolve(projectPath, 'tsconfig.json');
const nodeModulesPath = path.resolve(projectPath, 'node_modules');
const { default: webpackConfig } = await import(webpackConfigPath);
const { compilerOptions } = await import(tsconfigJSONPath);
const { devDependencies = {}, peerDependencies = {} } = await import(packageJSONPath);
const genConfigObj = ({ target, ecmaVersion, extension }, isFirstRun) => (merge({
entry: entryPath,
mode: production ? 'production' : 'development',
devtool: 'source-map',
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
sourceMap: true,
extractComments: false,
terserOptions: {
mangle: {
properties: {
regex: /^_/
}
},
output: {
beautify: true,
comments: false
}
},
}),
],
},
module: {
rules: [
{
test: /\.tsx?$/,
exclude: /node_modules/,
use: [
{
loader: 'ts-loader',
options: {
compilerOptions: {
...compilerOptions,
target: target,
declarationDir: typesPath,
}
}
}
]
},
],
},
resolve: {
extensions: ['.tsx', '.ts', '.js', 'jsx'],
modules: [
srcPath,
nodeModulesPath,
path.resolve(__dirname, 'node_modules'),
],
},
output: {
filename: `${project}.${extension}`,
path: distPath,
ecmaVersion
},
externals: [
...Object.keys(devDependencies),
...Object.keys(peerDependencies)
],
plugins: [
].concat(isFirstRun ? [new CleanWebpackPlugin({
verbose: true,
cleanOnceBeforeBuildPatterns: [
distPath,
typesPath
]
})] : [])
}, webpackConfig));
return outputs.map((output, index) => genConfigObj(output, index === 0))
};