From 06f0bc4c7c99a319f650bd3c4c13d367d54dd1f2 Mon Sep 17 00:00:00 2001 From: Rene Date: Tue, 12 Jul 2022 17:08:56 +0200 Subject: [PATCH] improve code --- config/playwright/rollup.config.js | 3 +- config/rollup/pipeline.build.js | 2 + config/rollup/pipeline.dev.js | 4 +- .../overlayscrollbars/src/autoUpdateLoop.ts | 89 ------------------- packages/overlayscrollbars/src/index.ts | 2 +- .../src/overlayscrollbars.ts | 2 +- .../observers/sizeObserver/index.browser.ts | 4 +- .../trinsicObserver/index.browser.ts | 5 ++ .../structureSetup/nesting/index.browser.ts | 5 +- .../structureSetup/update/index.browser.ts | 5 +- 10 files changed, 24 insertions(+), 97 deletions(-) delete mode 100644 packages/overlayscrollbars/src/autoUpdateLoop.ts diff --git a/config/playwright/rollup.config.js b/config/playwright/rollup.config.js index f30acb1..9968ead 100644 --- a/config/playwright/rollup.config.js +++ b/config/playwright/rollup.config.js @@ -29,7 +29,7 @@ module.exports = (testDir, onListening = null) => { return createRollupConfig({ project: name, - mode: 'dev', + mode: 'build', paths: { dist, src: path.resolve(testDir, './'), @@ -46,6 +46,7 @@ module.exports = (testDir, onListening = null) => { output: { sourcemap: true, }, + treeshake: true, plugins: [ rollupPluginStyles(), rollupPluginHtml(`Playwright: ${name}`, htmlName, () => diff --git a/config/rollup/pipeline.build.js b/config/rollup/pipeline.build.js index ee56fee..6182ffe 100644 --- a/config/rollup/pipeline.build.js +++ b/config/rollup/pipeline.build.js @@ -67,9 +67,11 @@ module.exports = (esm, options, { declarationFiles = false, outputStyle = false mangle: { safari10: true, keep_fnames: true, // eslint-disable-line camelcase + /* properties: { regex: /^_/, }, + */ }, compress: { defaults: false, diff --git a/config/rollup/pipeline.dev.js b/config/rollup/pipeline.dev.js index ba8dc4e..04fc13e 100644 --- a/config/rollup/pipeline.dev.js +++ b/config/rollup/pipeline.dev.js @@ -27,15 +27,15 @@ module.exports = (options) => { output, ...rollupOptions, plugins: [ - rollupScss(extractStyle), rollupAlias(alias), - rollupResolve(srcPath), + rollupScss(extractStyle), rollupEsBuild({ include: /\.[jt]sx?$/, sourceMap: true, target: 'es6', tsconfig: './tsconfig.json', }), + rollupResolve(srcPath), rollupCommonjs(sourcemap), ...plugins, ].filter(Boolean), diff --git a/packages/overlayscrollbars/src/autoUpdateLoop.ts b/packages/overlayscrollbars/src/autoUpdateLoop.ts deleted file mode 100644 index b2260b4..0000000 --- a/packages/overlayscrollbars/src/autoUpdateLoop.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { rAF, cAF, isEmptyArray, indexOf, createCache, runEachAndClear, push } from 'support'; -// import { getEnvironment } from 'environment'; - -/** - * This code isn't used in the final build, just created it have it in case this feature is needed. - */ - -interface AutoUpdateLoop { - _add(fn: (delta: number) => any): () => void; - _interval(newInterval: number): () => void; - _interval(): number; -} - -const defaultLoopInterval = 33; -let autoUpdateLoopInstance: AutoUpdateLoop; - -const createAutoUpdateLoop = (): AutoUpdateLoop => { - let loopIsRunning = false; - let loopInterval = defaultLoopInterval; - let loopId: number | undefined; - const intervals: number[] = []; - const loopFunctions: Array<(...args: any) => any> = []; - const updateLoopInterval = () => { - loopInterval = isEmptyArray(intervals) ? defaultLoopInterval : Math.min.apply(null, intervals); - }; - const [updateTimeCache] = createCache({ - _initialValue: performance.now(), - _equal: (currTime, newTime) => { - const delta = newTime! - currTime!; - return delta < loopInterval; - }, - }); - const loop = (newTime?: number) => { - /* istanbul ignore next */ - if (!isEmptyArray(loopFunctions) && loopIsRunning) { - loopId = rAF!(loop); - const [value, changed, previous] = updateTimeCache(newTime || performance.now()); - if (changed) { - runEachAndClear(loopFunctions, value - previous!); - } - } - }; - function interval(): number; - function interval(newInterval: number): () => void; - function interval(newInterval?: number): number | (() => void) { - if (newInterval) { - push(intervals, newInterval); - updateLoopInterval(); - - return () => { - intervals.splice(indexOf(intervals, newInterval), 1); - updateLoopInterval(); - }; - } - return loopInterval; - } - - return { - _add: (fn) => { - push(loopFunctions, fn); - - if (!loopIsRunning && !isEmptyArray(loopFunctions)) { - // getEnvironment()._autoUpdateLoop = loopIsRunning = true; - - updateTimeCache(performance.now(), true); - loop(); - } - - return () => { - loopFunctions.splice(indexOf(loopFunctions, fn), 1); - - if (isEmptyArray(loopFunctions) && loopIsRunning) { - // getEnvironment()._autoUpdateLoop = loopIsRunning = false; - - cAF!(loopId!); - loopId = undefined; - } - }; - }, - _interval: interval, - }; -}; - -const getAutoUpdateLoop = (): AutoUpdateLoop => { - if (!autoUpdateLoopInstance) { - autoUpdateLoopInstance = createAutoUpdateLoop(); - } - return autoUpdateLoopInstance; -}; diff --git a/packages/overlayscrollbars/src/index.ts b/packages/overlayscrollbars/src/index.ts index 150684e..9ee6f72 100644 --- a/packages/overlayscrollbars/src/index.ts +++ b/packages/overlayscrollbars/src/index.ts @@ -1,4 +1,4 @@ import 'index.scss'; -export { OverlayScrollbars } from 'overlayscrollbars'; +export { OverlayScrollbars as default, OverlayScrollbars } from 'overlayscrollbars'; export { optionsValidationPlugin, scrollbarsHidingPlugin, sizeObserverPlugin } from 'plugins'; diff --git a/packages/overlayscrollbars/src/overlayscrollbars.ts b/packages/overlayscrollbars/src/overlayscrollbars.ts index 4bbead6..1f0d88c 100644 --- a/packages/overlayscrollbars/src/overlayscrollbars.ts +++ b/packages/overlayscrollbars/src/overlayscrollbars.ts @@ -38,7 +38,7 @@ export interface OverlayScrollbarsStatic { eventListeners?: GeneralInitialEventListeners ): OverlayScrollbars; - plugin(osPlugin: Plugin | Plugin[]): void; + plugin(plugin: Plugin | Plugin[]): void; env(): Environment; } diff --git a/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.browser.ts b/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.browser.ts index 82e468f..8edff4c 100644 --- a/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.browser.ts +++ b/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.browser.ts @@ -13,7 +13,9 @@ import { import { setTestResult, waitForOrFailTest } from '@/testing-browser/TestResult'; import { timeout } from '@/testing-browser/timeout'; -addPlugin(sizeObserverPlugin); +if (!window.ResizeObserver) { + addPlugin(sizeObserverPlugin); +} let sizeIterations = 0; let directionIterations = 0; diff --git a/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.browser.ts b/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.browser.ts index cd2647b..82e726a 100644 --- a/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.browser.ts +++ b/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.browser.ts @@ -4,6 +4,7 @@ import './handleEnvironment'; import should from 'should'; import { offsetSize } from 'support'; import { createTrinsicObserver } from 'observers/trinsicObserver'; +import { addPlugin, sizeObserverPlugin } from 'plugins'; import { generateClassChangeSelectCallback, iterateSelect, @@ -12,6 +13,10 @@ import { import { timeout } from '@/testing-browser/timeout'; import { setTestResult, waitForOrFailTest } from '@/testing-browser/TestResult'; +if (!window.ResizeObserver) { + addPlugin(sizeObserverPlugin); +} + let heightIntrinsic: boolean | undefined; let heightIterations = 0; const envElm = document.querySelector('#env'); diff --git a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.browser.ts b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.browser.ts index eae8b8c..5f2814d 100644 --- a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.browser.ts +++ b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.browser.ts @@ -6,8 +6,11 @@ import { resize } from '@/testing-browser/Resize'; import { timeout } from '@/testing-browser/timeout'; import { setTestResult, waitForOrFailTest } from '@/testing-browser/TestResult'; import { addClass, each, isArray, removeAttr, style } from 'support'; -import { addPlugin, scrollbarsHidingPlugin } from 'plugins'; +import { addPlugin, scrollbarsHidingPlugin, sizeObserverPlugin } from 'plugins'; +if (!window.ResizeObserver) { + addPlugin(sizeObserverPlugin); +} if (!OverlayScrollbars.env().scrollbarsHiding) { addPlugin(scrollbarsHidingPlugin); } diff --git a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.browser.ts b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.browser.ts index 5bc2f5e..3be7220 100644 --- a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.browser.ts +++ b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.browser.ts @@ -24,8 +24,11 @@ import { generateClassChangeSelectCallback, iterateSelect } from '@/testing-brow import { timeout } from '@/testing-browser/timeout'; import { Options } from 'options'; import { PartialOptions } from 'typings'; -import { addPlugin, scrollbarsHidingPlugin } from 'plugins'; +import { addPlugin, scrollbarsHidingPlugin, sizeObserverPlugin } from 'plugins'; +if (!window.ResizeObserver) { + addPlugin(sizeObserverPlugin); +} if (!OverlayScrollbars.env().scrollbarsHiding) { addPlugin(scrollbarsHidingPlugin); }