improve code

This commit is contained in:
Rene Haas
2022-07-31 21:38:38 +02:00
parent 064372d781
commit 1eb3d305b1
4 changed files with 11 additions and 34 deletions
@@ -62,15 +62,15 @@ module.exports = () => {
({ close, url, output } = await createRollupBundle(dirname(file), true, config.quiet)); ({ close, url, output } = await createRollupBundle(dirname(file), true, config.quiet));
}); });
test.beforeEach(async ({ page, browserName }) => { test.beforeEach(async ({ page, browserName }, { config }) => {
await page.goto(url); await page.goto(url);
if (browserName === 'chromium') { if (browserName === 'chromium' && config.quiet) {
await page.coverage.startJSCoverage(); await page.coverage.startJSCoverage();
} }
}); });
test.afterEach(async ({ page, browserName }, { file }) => { test.afterEach(async ({ page, browserName }, { file, config }) => {
if (browserName === 'chromium') { if (browserName === 'chromium' && config.quiet) {
const coverage = await page.coverage.stopJSCoverage(); const coverage = await page.coverage.stopJSCoverage();
await collectCoverage(originalCwd, dirname(output), coverage, file); await collectCoverage(originalCwd, dirname(output), coverage, file);
} }
@@ -1,6 +1,5 @@
import { OverlayScrollbars } from 'overlayscrollbars'; import { OverlayScrollbars } from 'overlayscrollbars';
const targets: Set<Element> = new Set();
const targetInstanceMap: WeakMap<Element, OverlayScrollbars> = new WeakMap(); const targetInstanceMap: WeakMap<Element, OverlayScrollbars> = new WeakMap();
/** /**
@@ -10,7 +9,6 @@ const targetInstanceMap: WeakMap<Element, OverlayScrollbars> = new WeakMap();
*/ */
export const addInstance = (target: Element, osInstance: OverlayScrollbars): void => { export const addInstance = (target: Element, osInstance: OverlayScrollbars): void => {
targetInstanceMap.set(target, osInstance); targetInstanceMap.set(target, osInstance);
targets.add(target);
}; };
/** /**
@@ -19,7 +17,6 @@ export const addInstance = (target: Element, osInstance: OverlayScrollbars): voi
*/ */
export const removeInstance = (target: Element): void => { export const removeInstance = (target: Element): void => {
targetInstanceMap.delete(target); targetInstanceMap.delete(target);
targets.delete(target);
}; };
/** /**
@@ -28,26 +25,3 @@ export const removeInstance = (target: Element): void => {
*/ */
export const getInstance = (target: Element): OverlayScrollbars | undefined => export const getInstance = (target: Element): OverlayScrollbars | undefined =>
targetInstanceMap.get(target); targetInstanceMap.get(target);
/**
* Gets a Map which represents all active OverayScrollbars instances.
* The Key is the element and the value is the instance.
*/
export const allInstances = (): ReadonlyMap<Element, OverlayScrollbars> => {
const validTargetInstanceMap: Map<Element, OverlayScrollbars> = new Map();
targets.forEach((target: Element) => {
/* istanbul ignore else */
if (targetInstanceMap.has(target)) {
validTargetInstanceMap.set(target, targetInstanceMap.get(target)!);
}
});
targets.clear();
validTargetInstanceMap.forEach((instance: OverlayScrollbars, validTarget: Element) => {
targets.add(validTarget);
});
return validTargetInstanceMap;
};
@@ -181,7 +181,7 @@ export const createStructureSetupElements = (
const { _target, _host, _padding, _viewport, _content, _viewportArrange } = evaluatedTargetObj; const { _target, _host, _padding, _viewport, _content, _viewportArrange } = evaluatedTargetObj;
const destroyFns: (() => any)[] = []; const destroyFns: (() => any)[] = [];
const isTextareaHostGenerated = isTextarea && elementIsGenerated(_host); const isTextareaHostGenerated = isTextarea && elementIsGenerated(_host);
const targetContents = isTextarea let targetContents = isTextarea
? _target ? _target
: contents( : contents(
[_content, _viewport, _padding, _host, _target].find( [_content, _viewport, _padding, _host, _target].find(
@@ -240,6 +240,9 @@ export const createStructureSetupElements = (
insertBefore(_viewport, _viewportArrange); insertBefore(_viewport, _viewportArrange);
push(destroyFns, removeElements.bind(0, _viewportArrange)); push(destroyFns, removeElements.bind(0, _viewportArrange));
} }
// @ts-ignore
targetContents = 0;
}; };
return [evaluatedTargetObj, appendElements, runEachAndClear.bind(0, destroyFns)]; return [evaluatedTargetObj, appendElements, runEachAndClear.bind(0, destroyFns)];
@@ -1,4 +1,4 @@
import { addInstance, removeInstance, getInstance, allInstances } from 'instances'; import { addInstance, removeInstance, getInstance } from 'instances';
import { OverlayScrollbars } from 'overlayscrollbars'; import { OverlayScrollbars } from 'overlayscrollbars';
const testElm = document.body; const testElm = document.body;
@@ -12,14 +12,14 @@ describe('instances', () => {
test('add instance', () => { test('add instance', () => {
addInstance(testElm, testInstance); addInstance(testElm, testInstance);
expect(allInstances().size).toBe(1); expect(getInstance(testElm)).toBe(testInstance);
}); });
test('remove instance', () => { test('remove instance', () => {
addInstance(testElm, testInstance); addInstance(testElm, testInstance);
removeInstance(testElm); removeInstance(testElm);
expect(allInstances().size).toBe(0); expect(getInstance(testElm)).toBe(undefined);
}); });
test('get instance', () => { test('get instance', () => {