repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 7.07 kB
JSON
{"ast":null,"code":"\"use strict\";\n\nimport * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\nimport { deepFreeze } from \"./deepFreeze.js\";\nconst createStore = getInitialState => {\n const listeners = [];\n let initialized = false;\n let state;\n const getState = () => {\n if (initialized) {\n return state;\n }\n initialized = true;\n state = deepFreeze(getInitialState());\n return state;\n };\n let isBatching = false;\n let didUpdate = false;\n const setState = newState => {\n state = deepFreeze(newState);\n didUpdate = true;\n if (!isBatching) {\n listeners.forEach(listener => listener());\n }\n };\n const subscribe = callback => {\n listeners.push(callback);\n return () => {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n };\n const batchUpdates = callback => {\n isBatching = true;\n callback();\n isBatching = false;\n if (didUpdate) {\n didUpdate = false;\n listeners.forEach(listener => listener());\n }\n };\n return {\n getState,\n setState,\n batchUpdates,\n subscribe\n };\n};\nexport function useSyncState(getInitialState) {\n const store = React.useRef(createStore(getInitialState)).current;\n const state = React.useSyncExternalStore(store.subscribe, store.getState, store.getState);\n React.useDebugValue(state);\n const pendingUpdatesRef = React.useRef([]);\n const scheduleUpdate = useLatestCallback(callback => {\n pendingUpdatesRef.current.push(callback);\n });\n const flushUpdates = useLatestCallback(() => {\n const pendingUpdates = pendingUpdatesRef.current;\n pendingUpdatesRef.current = [];\n if (pendingUpdates.length !== 0) {\n store.batchUpdates(() => {\n for (const update of pendingUpdates) {\n update();\n }\n });\n }\n });\n return {\n state,\n getState: store.getState,\n setState: store.setState,\n scheduleUpdate,\n flushUpdates\n };\n}","map":{"version":3,"names":["React","useLatestCallback","deepFreeze","createStore","getInitialState","listeners","initialized","state","getState","isBatching","didUpdate","setState","newState","forEach","listener","subscribe","callback","push","index","indexOf","splice","batchUpdates","useSyncState","store","useRef","current","useSyncExternalStore","useDebugValue","pendingUpdatesRef","scheduleUpdate","flushUpdates","pendingUpdates","length","update"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/useSyncState.tsx"],"sourcesContent":["import * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\n\nimport { deepFreeze } from './deepFreeze';\n\nconst createStore = <T,>(getInitialState: () => T) => {\n const listeners: (() => void)[] = [];\n\n let initialized = false;\n let state: T;\n\n const getState = () => {\n if (initialized) {\n return state;\n }\n\n initialized = true;\n state = deepFreeze(getInitialState());\n\n return state;\n };\n\n let isBatching = false;\n let didUpdate = false;\n\n const setState = (newState: T) => {\n state = deepFreeze(newState);\n didUpdate = true;\n\n if (!isBatching) {\n listeners.forEach((listener) => listener());\n }\n };\n\n const subscribe = (callback: () => void) => {\n listeners.push(callback);\n\n return () => {\n const index = listeners.indexOf(callback);\n\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n };\n\n const batchUpdates = (callback: () => void) => {\n isBatching = true;\n callback();\n isBatching = false;\n\n if (didUpdate) {\n didUpdate = false;\n listeners.forEach((listener) => listener());\n }\n };\n\n return {\n getState,\n setState,\n batchUpdates,\n subscribe,\n };\n};\n\nexport function useSyncState<T>(getInitialState: () => T) {\n const store = React.useRef(createStore(getInitialState)).current;\n\n const state = React.useSyncExternalStore(\n store.subscribe,\n store.getState,\n store.getState\n );\n\n React.useDebugValue(state);\n\n const pendingUpdatesRef = React.useRef<(() => void)[]>([]);\n\n const scheduleUpdate = useLatestCallback((callback: () => void) => {\n pendingUpdatesRef.current.push(callback);\n });\n\n const flushUpdates = useLatestCallback(() => {\n const pendingUpdates = pendingUpdatesRef.current;\n\n pendingUpdatesRef.current = [];\n\n if (pendingUpdates.length !== 0) {\n store.batchUpdates(() => {\n // Flush all the pending updates\n for (const update of pendingUpdates) {\n update();\n }\n });\n }\n });\n\n return {\n state,\n getState: store.getState,\n setState: store.setState,\n scheduleUpdate,\n flushUpdates,\n } as const;\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}