diff --git a/jest.config.base.js b/jest.config.base.js index 942e96d..a9779da 100644 --- a/jest.config.base.js +++ b/jest.config.base.js @@ -9,7 +9,6 @@ const testServerLoaderPath = path.resolve(__dirname, './config/jest-test-server. // https://jestjs.io/docs/en/configuration.html const base = { - cache: false, clearMocks: true, collectCoverage: true, coverageDirectory: './.coverage', diff --git a/packages/overlayscrollbars/src/overlayscrollbars/lifecycles/index.ts b/packages/overlayscrollbars/src/lifecycles/lifecycleBase.ts similarity index 98% rename from packages/overlayscrollbars/src/overlayscrollbars/lifecycles/index.ts rename to packages/overlayscrollbars/src/lifecycles/lifecycleBase.ts index efde8ab..8d978a9 100644 --- a/packages/overlayscrollbars/src/overlayscrollbars/lifecycles/index.ts +++ b/packages/overlayscrollbars/src/lifecycles/lifecycleBase.ts @@ -1,7 +1,7 @@ import { CacheUpdateInfo, CachePropsToUpdate, - CacheChanged, + CacheUpdated, OptionsWithOptionsTemplate, OptionsValidated, transformOptions, @@ -41,7 +41,7 @@ export const createLifecycleBase = ( defaultOptionsWithTemplate: OptionsWithOptionsTemplate>, cacheUpdateInfo: CacheUpdateInfo, initialOptions: O | undefined, - updateFunction: (changedOptions: OptionsValidated, changedCache: CacheChanged) => any + updateFunction: (changedOptions: OptionsValidated, changedCache: CacheUpdated) => any ): LifecycleBase => { const { _template: optionsTemplate, _options: defaultOptions } = transformOptions>(defaultOptionsWithTemplate); const options: Required = assignDeep({}, defaultOptions, validateOptions(initialOptions || ({} as O), optionsTemplate)._validated); diff --git a/packages/overlayscrollbars/src/overlayscrollbars/lifecycles/StructureLifecycle.ts b/packages/overlayscrollbars/src/lifecycles/structureLifecycle.ts similarity index 93% rename from packages/overlayscrollbars/src/overlayscrollbars/lifecycles/StructureLifecycle.ts rename to packages/overlayscrollbars/src/lifecycles/structureLifecycle.ts index ab4b3fe..e70e328 100644 --- a/packages/overlayscrollbars/src/overlayscrollbars/lifecycles/StructureLifecycle.ts +++ b/packages/overlayscrollbars/src/lifecycles/structureLifecycle.ts @@ -12,10 +12,10 @@ import { optionsTemplateTypes as oTypes, OptionsTemplateValue, } from 'support'; -import { createLifecycleBase, Lifecycle } from 'overlayscrollbars/lifecycles'; +import { createLifecycleBase, Lifecycle } from 'lifecycles/lifecycleBase'; import { getEnvironment, Environment } from 'environment'; -import { createSizeObserver } from 'overlayscrollbars/observers/SizeObserver'; -import { createTrinsicObserver } from 'overlayscrollbars/observers/TrinsicObserver'; +import { createSizeObserver } from 'observers/sizeObserver'; +import { createTrinsicObserver } from 'observers/trinsicObserver'; export type OverflowBehavior = 'hidden' | 'scroll' | 'visible-hidden' | 'visible-scroll'; export interface StructureLifecycleOptions { diff --git a/packages/overlayscrollbars/src/observers/index.scss b/packages/overlayscrollbars/src/observers/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/packages/overlayscrollbars/src/overlayscrollbars/observers/SizeObserver.ts b/packages/overlayscrollbars/src/observers/sizeObserver.ts similarity index 100% rename from packages/overlayscrollbars/src/overlayscrollbars/observers/SizeObserver.ts rename to packages/overlayscrollbars/src/observers/sizeObserver.ts diff --git a/packages/overlayscrollbars/src/overlayscrollbars/observers/TrinsicObserver.ts b/packages/overlayscrollbars/src/observers/trinsicObserver.ts similarity index 95% rename from packages/overlayscrollbars/src/overlayscrollbars/observers/TrinsicObserver.ts rename to packages/overlayscrollbars/src/observers/trinsicObserver.ts index 6acfa32..a037e0c 100644 --- a/packages/overlayscrollbars/src/overlayscrollbars/observers/TrinsicObserver.ts +++ b/packages/overlayscrollbars/src/observers/trinsicObserver.ts @@ -1,5 +1,5 @@ import { createDOM, offsetSize, jsAPI, runEach, prependChildren, removeElements } from 'support'; -import { createSizeObserver } from 'overlayscrollbars/observers/SizeObserver'; +import { createSizeObserver } from 'observers/sizeObserver'; const classNameTrinsicObserver = 'os-trinsic-observer'; const IntersectionObserverConstructor = jsAPI('IntersectionObserver'); diff --git a/packages/overlayscrollbars/src/support/cache/cache.ts b/packages/overlayscrollbars/src/support/cache/cache.ts index 28ca662..f27e827 100644 --- a/packages/overlayscrollbars/src/support/cache/cache.ts +++ b/packages/overlayscrollbars/src/support/cache/cache.ts @@ -1,4 +1,6 @@ -import { each, keys, isArray, isString } from 'support'; +import { isArray, isString } from 'support/utils/types'; +import { keys } from 'support/utils/object'; +import { each } from 'support/utils/array'; interface CacheEntry { _current?: T; @@ -10,22 +12,22 @@ type Cache = { [P in keyof T]: CacheEntry; }; -type UpdateCacheProp =

(prop: P, value: T[P], compare: CacheEqualFunction | null) => void; +type UpdateCacheProp =

(prop: P, value: T[P], compare: EqualCachePropFunction | null) => void; + +type UpdateCachePropFunction = (current?: T[P], previous?: T[P]) => T[P]; + +type EqualCachePropFunction = (a?: T[P], b?: T[P]) => boolean; export type CachePropsToUpdate = Array | keyof T; -export type CacheUpdateFunction = (current?: T[P], previous?: T[P]) => T[P]; +export type CacheUpdate = (propsToUpdate?: CachePropsToUpdate, force?: boolean) => CacheUpdated; -export type CacheEqualFunction = (a?: T[P], b?: T[P]) => boolean; - -export type CacheChange = (propsToUpdate?: CachePropsToUpdate, force?: boolean) => CacheChanged; - -export type CacheChanged = { +export type CacheUpdated = { [P in keyof T]?: T[P]; }; export type CacheUpdateInfo = { - [P in keyof T]: CacheUpdateFunction | [CacheUpdateFunction, CacheEqualFunction]; + [P in keyof T]: UpdateCachePropFunction | [UpdateCachePropFunction, EqualCachePropFunction]; }; /** @@ -46,7 +48,7 @@ export type CacheUpdateInfo = { * @returns A function which can be called with wither one ar an array of properties which shall be updated. Optionally it can be called with the force param. * This function returns a object which contains all changed cache properties, if a property isn't in this object it means that it didn't change. */ -export const createCache = (cacheUpdateInfo: CacheUpdateInfo): CacheChange => { +export const createCache = (cacheUpdateInfo: CacheUpdateInfo): CacheUpdate => { const cache: Cache = {} as T; const allProps: Array = keys(cacheUpdateInfo) as Array; @@ -62,8 +64,8 @@ export const createCache = (cacheUpdateInfo: CacheUpdateInfo): CacheChange cache[prop]._changed = equal ? !equal(curr, value) : curr !== value; }; - const flush = (force?: boolean): CacheChanged => { - const result: CacheChanged = {} as CacheChanged; + const flush = (force?: boolean): CacheUpdated => { + const result: CacheUpdated = {} as CacheUpdated; each(allProps, (prop: keyof T) => { if (cache[prop]._changed || force) { diff --git a/packages/overlayscrollbars/tests/puppeteer/Environment/index.test.ts b/packages/overlayscrollbars/tests/puppeteer/Environment/index.test.ts index aefbea9..575793f 100644 --- a/packages/overlayscrollbars/tests/puppeteer/Environment/index.test.ts +++ b/packages/overlayscrollbars/tests/puppeteer/Environment/index.test.ts @@ -8,8 +8,8 @@ describe('Environment', () => { it('should be titled "Environment"', async () => { // @ts-ignore - const a: Environment = await page.evaluate(() => window.Environment.envInstance); + const a: Environment = await page.evaluate(() => window.environment.envInstance); console.log(a); - await expect(page.title()).resolves.toMatch('Environment'); + await expect(page.title()).resolves.toMatch('environment'); }); }); diff --git a/packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.browser.ts b/packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.browser.ts similarity index 67% rename from packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.browser.ts rename to packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.browser.ts index a3f2d0b..ea88a83 100644 --- a/packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.browser.ts +++ b/packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.browser.ts @@ -1,6 +1,6 @@ import 'overlayscrollbars.scss'; import './index.scss'; -import { createStructureLifecycle } from 'overlayscrollbars/lifecycles/StructureLifecycle'; +import { createStructureLifecycle } from 'lifecycles/structureLifecycle'; const targetElm = document.querySelector('#target') as HTMLElement; diff --git a/packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.html b/packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.html similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.html rename to packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.html diff --git a/packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.scss b/packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.scss similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.scss rename to packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.scss diff --git a/packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.test.ts b/packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.test.ts similarity index 63% rename from packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.test.ts rename to packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.test.ts index 45d7920..019d7b2 100644 --- a/packages/overlayscrollbars/tests/puppeteer/StructureLifecycle/index.test.ts +++ b/packages/overlayscrollbars/tests/puppeteer/lifecycles/structureLifecycle/index.test.ts @@ -8,8 +8,8 @@ describe('StructureLifecycle', () => { it('should be titled "Environment"', async () => { // @ts-ignore - const a: Environment = await page.evaluate(() => window.Environment.envInstance); + const a: Environment = await page.evaluate(() => window.structureLifecycle.envInstance); console.log(a); - await expect(page.title()).resolves.toMatch('Environment'); + await expect(page.title()).resolves.toMatch('structureLifecycle'); }); }); diff --git a/packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.browser.ts b/packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.browser.ts similarity index 98% rename from packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.browser.ts rename to packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.browser.ts index 8fe0d0e..43d87fc 100644 --- a/packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.browser.ts +++ b/packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.browser.ts @@ -6,7 +6,7 @@ import { generateSelectCallback, iterateSelect } from '@/testing-browser/Select' import { setTestResult } from '@/testing-browser/TestResult'; import { hasDimensions, offsetSize, WH, style } from 'support'; -import { createSizeObserver } from 'overlayscrollbars/observers/SizeObserver'; +import { createSizeObserver } from 'observers/sizeObserver'; let sizeIterations = 0; let directionIterations = 0; diff --git a/packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.html b/packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.html similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.html rename to packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.html diff --git a/packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.scss b/packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.scss similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.scss rename to packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.scss diff --git a/packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.test.ts b/packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.test.ts similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/SizeObserver/index.test.ts rename to packages/overlayscrollbars/tests/puppeteer/observers/sizeObserver/index.test.ts diff --git a/packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.browser.ts b/packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.browser.ts similarity index 98% rename from packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.browser.ts rename to packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.browser.ts index bdfbbf5..0912d8b 100644 --- a/packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.browser.ts +++ b/packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.browser.ts @@ -7,7 +7,7 @@ import { timeout } from '@/testing-browser/timeout'; import { setTestResult } from '@/testing-browser/TestResult'; import { offsetSize } from 'support'; -import { createTrinsicObserver } from 'overlayscrollbars/observers/TrinsicObserver'; +import { createTrinsicObserver } from 'observers/trinsicObserver'; const waitForOptions = { onTimeout(error: Error): Error { diff --git a/packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.html b/packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.html similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.html rename to packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.html diff --git a/packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.scss b/packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.scss similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.scss rename to packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.scss diff --git a/packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.test.ts b/packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.test.ts similarity index 100% rename from packages/overlayscrollbars/tests/puppeteer/TrinsicObserver/index.test.ts rename to packages/overlayscrollbars/tests/puppeteer/observers/trinsicObserver/index.test.ts diff --git a/rollup.config.base.js b/rollup.config.base.js index 37d2a65..010f18d 100644 --- a/rollup.config.base.js +++ b/rollup.config.base.js @@ -27,7 +27,7 @@ const rollupConfigDefaults = { }; const legacyBabelConfig = { - exclude: isTestEnv ? [/\/core-js\//] : [], + exclude: isTestEnv ? [/\/core-js\//, /\/@testing-library\//] : [], presets: [ [ '@babel/preset-env',