mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 04:38:15 +08:00
1 line
96 KiB
Plaintext
1 line
96 KiB
Plaintext
|
{"version":3,"sources":["../../src/index.ts","../../src/devModeChecks/identityFunctionCheck.ts","../../src/devModeChecks/inputStabilityCheck.ts","../../src/devModeChecks/setGlobalDevModeChecks.ts","../../src/utils.ts","../../src/autotrackMemoize/autotracking.ts","../../src/autotrackMemoize/tracking.ts","../../src/autotrackMemoize/proxy.ts","../../src/lruMemoize.ts","../../src/autotrackMemoize/autotrackMemoize.ts","../../src/weakMapMemoize.ts","../../src/createSelectorCreator.ts","../../src/createStructuredSelector.ts"],"sourcesContent":["export { autotrackMemoize as unstable_autotrackMemoize } from './autotrackMemoize/autotrackMemoize'\r\nexport { createSelector, createSelectorCreator } from './createSelectorCreator'\r\nexport type { CreateSelectorFunction } from './createSelectorCreator'\r\nexport { createStructuredSelector } from './createStructuredSelector'\r\nexport type {\r\n RootStateSelectors,\r\n SelectorResultsMap,\r\n SelectorsObject,\r\n StructuredSelectorCreator,\r\n TypedStructuredSelectorCreator\r\n} from './createStructuredSelector'\r\nexport { setGlobalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\nexport { lruMemoize, referenceEqualityCheck } from './lruMemoize'\r\nexport type { LruMemoizeOptions } from './lruMemoize'\r\nexport type {\r\n Combiner,\r\n CreateSelectorOptions,\r\n DefaultMemoizeFields,\r\n DevModeCheckFrequency,\r\n DevModeChecks,\r\n DevModeChecksExecutionInfo,\r\n EqualityFn,\r\n ExtractMemoizerFields,\r\n GetParamsFromSelectors,\r\n GetStateFromSelectors,\r\n MemoizeOptionsFromParameters,\r\n OutputSelector,\r\n OutputSelectorFields,\r\n OverrideMemoizeOptions,\r\n Selector,\r\n SelectorArray,\r\n SelectorResultArray,\r\n UnknownMemoizer\r\n} from './types'\r\nexport { weakMapMemoize } from './weakMapMemoize'\r\nexport type { WeakMapMemoizeOptions } from './weakMapMemoize'\r\n","import type { AnyFunction } from '../types'\r\n\r\n/**\r\n * Runs a check to determine if the given result function behaves as an\r\n * identity function. An identity function is one that returns its\r\n * input unchanged, for example, `x => x`. This check helps ensure\r\n * efficient memoization and prevent unnecessary re-renders by encouraging\r\n * proper use of transformation logic in result functions and\r\n * extraction logic in input selectors.\r\n *\r\n * @param resultFunc - The result function to be checked.\r\n * @param inputSelectorsResults - The results of the input selectors.\r\n * @param outputSelectorResult - The result of the output selector.\r\n *\r\n * @see {@link https://reselect.js.org/api/development-only-stability-checks#identityfunctioncheck `identityFunctionCheck`}\r\n *\r\n * @since 5.0.0\r\n * @internal\r\n */\r\nexport const runIdentityFunctionCheck = (\r\n resultFunc: AnyFunction,\r\n inputSelectorsResults: unknown[],\r\n outputSelectorResult: unknown\r\n) => {\r\n if (\r\n inputSelectorsResults.length === 1 &&\r\n inputSelectorsResults[0] === outputSelectorResult\r\n ) {\r\n let isInputSameAsOutput = false\r\n try {\r\n const emptyObject = {}\r\n if (resultFunc(emptyObject) === emptyObject) isInputSameAsOutput = true\r\n } catch {\r\n // Do nothing\r\n }\r\n if (isInputSameAsOutput) {\r\n let stack: string | undefined = undefined\r\n try {\r\n throw new Error()\r\n } catch (e) {\r\n // eslint-disable-next-line @typescript-eslint/no-extra-semi, no-extra-semi\r\n ;({ stack } = e as Error)\r\n }\r\n console.warn(\r\n 'The result function returned its own inputs without modification. e.g' +\r\n '\\n`createSelector([state => state.todos], todos => todos)`' +\r\n '\\nThis could lead to inefficient memoization and unnecessary re-renders.' +\r\n '\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.',\r\n { stack }\r\n )\r\n }\r\n }\r\n}\r\n","import type { CreateSelectorOptions, UnknownMemoizer } from '../types'\r\n\r\n/**\r\n * Runs a stability check to ensure th
|