UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 4.92 kB
{"version":3,"file":"linkingConfig.js","names":["createLinkingConfig"],"sources":["esm/router/linkingConfig.js"],"sourcesContent":["import { isWebClient } from \"../constants\";\nimport { evictOldest } from \"../utils/evictOldest\";\nimport {\n clearStateCache,\n getLinkingConfig as createLinkingConfig\n} from \"./getLinkingConfig\";\nlet linkingConfig;\nlet cachedBaseLinkingConfig;\nlet cachedRouteNodeForLinking = null;\nlet cachedLinkingConfigKey = \"\";\nconst ssrStateCache = /* @__PURE__ */ new Map();\nfunction getResolvedLinking() {\n return linkingConfig;\n}\nfunction setLinking(_) {\n linkingConfig = _;\n}\nfunction resetLinking() {\n linkingConfig = void 0;\n}\nfunction ensureBaseLinkingConfig(routeNode, linking) {\n const linkingConfigKey = getLinkingConfigKey(linking);\n if (routeNode && (routeNode !== cachedRouteNodeForLinking || linkingConfigKey !== cachedLinkingConfigKey || !cachedBaseLinkingConfig)) {\n clearStateCache();\n ssrStateCache.clear();\n cachedBaseLinkingConfig = createLinkingConfig(routeNode, true, linking);\n cachedRouteNodeForLinking = routeNode;\n cachedLinkingConfigKey = linkingConfigKey;\n }\n}\nfunction getSSRInitialState(routeNode, initialLocation, linking) {\n if (!routeNode) return void 0;\n ensureBaseLinkingConfig(routeNode, linking);\n if (!cachedBaseLinkingConfig) return void 0;\n const path = initialLocation.pathname + (initialLocation.search || \"\");\n if (ssrStateCache.has(path)) return ssrStateCache.get(path);\n const state = cachedBaseLinkingConfig.getStateFromPath?.(\n path,\n cachedBaseLinkingConfig.config\n );\n evictOldest(ssrStateCache, 5e3, 1e3);\n ssrStateCache.set(path, state);\n return state;\n}\nfunction setupLinking(routeNode, initialLocation, linking) {\n let initialState;\n if (routeNode) {\n ensureBaseLinkingConfig(routeNode, linking);\n linkingConfig = { ...cachedBaseLinkingConfig };\n if (initialLocation) {\n linkingConfig.getInitialURL = () => initialLocation.toString();\n let path = initialLocation.pathname + (initialLocation.search || \"\");\n if (isWebClient) {\n const historyState = window.history.state;\n if (historyState?.__tempLocation?.pathname && !historyState.__tempKey) {\n path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || \"\");\n }\n }\n initialState = linkingConfig.getStateFromPath?.(path, linkingConfig.config);\n }\n }\n return initialState;\n}\nconst filterIds = /* @__PURE__ */ new WeakMap();\nlet filterIdCounter = 0;\nfunction getFilterId(filter) {\n if (!filter) return 0;\n let id = filterIds.get(filter);\n if (id === void 0) {\n id = ++filterIdCounter;\n filterIds.set(filter, id);\n }\n return id;\n}\nfunction getLinkingConfigKey(linking) {\n const schemes = Array.isArray(linking?.scheme) ? [...linking.scheme].sort() : linking?.scheme ?? null;\n const prefixes = linking?.prefixes ? [...linking.prefixes].sort() : null;\n return JSON.stringify({\n scheme: schemes,\n prefixes,\n filterId: getFilterId(linking?.filter)\n });\n}\nexport {\n ensureBaseLinkingConfig,\n getResolvedLinking,\n getSSRInitialState,\n resetLinking,\n setLinking,\n setupLinking\n};\n//# sourceMappingURL=linkingConfig.js.map\n"],"mappings":";;;;;AAMA,IAAI;AACJ,IAAI;AACJ,IAAI,4BAA4B;AAChC,IAAI,yBAAyB;AAC7B,MAAM,gCAAgC,IAAI,IAAI;AAC9C,SAAS,qBAAqB;CAC5B,OAAO;AACT;AACA,SAAS,WAAW,GAAG;CACrB,gBAAgB;AAClB;AACA,SAAS,eAAe;CACtB,gBAAgB,KAAK;AACvB;AACA,SAAS,wBAAwB,WAAW,SAAS;CACnD,MAAM,mBAAmB,oBAAoB,OAAO;CACpD,IAAI,cAAc,cAAc,6BAA6B,qBAAqB,0BAA0B,CAAC,0BAA0B;EACrI,gBAAgB;EAChB,cAAc,MAAM;EACpB,0BAA0BA,iBAAoB,WAAW,MAAM,OAAO;EACtE,4BAA4B;EAC5B,yBAAyB;CAC3B;AACF;AACA,SAAS,mBAAmB,WAAW,iBAAiB,SAAS;CAC/D,IAAI,CAAC,WAAW,OAAO,KAAK;CAC5B,wBAAwB,WAAW,OAAO;CAC1C,IAAI,CAAC,yBAAyB,OAAO,KAAK;CAC1C,MAAM,OAAO,gBAAgB,YAAY,gBAAgB,UAAU;CACnE,IAAI,cAAc,IAAI,IAAI,GAAG,OAAO,cAAc,IAAI,IAAI;CAC1D,MAAM,QAAQ,wBAAwB,mBACpC,MACA,wBAAwB,MAC1B;CACA,YAAY,eAAe,KAAK,GAAG;CACnC,cAAc,IAAI,MAAM,KAAK;CAC7B,OAAO;AACT;AACA,SAAS,aAAa,WAAW,iBAAiB,SAAS;CACzD,IAAI;CACJ,IAAI,WAAW;EACb,wBAAwB,WAAW,OAAO;EAC1C,gBAAgB,EAAE,GAAG,wBAAwB;EAC7C,IAAI,iBAAiB;GACnB,cAAc,sBAAsB,gBAAgB,SAAS;GAC7D,IAAI,OAAO,gBAAgB,YAAY,gBAAgB,UAAU;GACjE,IAAI,aAAa;IACf,MAAM,eAAe,OAAO,QAAQ;IACpC,IAAI,cAAc,gBAAgB,YAAY,CAAC,aAAa,WAAW;KACrE,OAAO,aAAa,eAAe,YAAY,aAAa,eAAe,UAAU;IACvF;GACF;GACA,eAAe,cAAc,mBAAmB,MAAM,cAAc,MAAM;EAC5E;CACF;CACA,OAAO;AACT;AACA,MAAM,4BAA4B,IAAI,QAAQ;AAC9C,IAAI,kBAAkB;AACtB,SAAS,YAAY,QAAQ;CAC3B,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,KAAK,UAAU,IAAI,MAAM;CAC7B,IAAI,OAAO,KAAK,GAAG;EACjB,KAAK,EAAE;EACP,UAAU,IAAI,QAAQ,EAAE;CAC1B;CACA,OAAO;AACT;AACA,SAAS,oBAAoB,SAAS;CACpC,MAAM,UAAU,MAAM,QAAQ,SAAS,MAAM,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC,KAAK,IAAI,SAAS,UAAU;CACjG,MAAM,WAAW,SAAS,WAAW,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,KAAK,IAAI;CACpE,OAAO,KAAK,UAAU;EACpB,QAAQ;EACR;EACA,UAAU,YAAY,SAAS,MAAM;CACvC,CAAC;AACH"}