tanexpo 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Link.d.mts +7 -0
- package/dist/components/Link.d.ts +7 -0
- package/dist/components/Link.js +81 -0
- package/dist/components/Link.js.map +1 -0
- package/dist/components/Link.mjs +56 -0
- package/dist/components/Link.mjs.map +1 -0
- package/dist/components/Link.native.d.mts +7 -0
- package/dist/components/Link.native.d.ts +7 -0
- package/dist/components/Link.native.js +35 -0
- package/dist/components/Link.native.js.map +1 -0
- package/dist/components/Link.native.mjs +10 -0
- package/dist/components/Link.native.mjs.map +1 -0
- package/dist/components/Redirect.d.mts +16 -0
- package/dist/components/Redirect.d.ts +16 -0
- package/dist/components/Redirect.js +69 -0
- package/dist/components/Redirect.js.map +1 -0
- package/dist/components/Redirect.mjs +44 -0
- package/dist/components/Redirect.mjs.map +1 -0
- package/dist/components/Redirect.native.d.mts +1 -0
- package/dist/components/Redirect.native.d.ts +1 -0
- package/dist/components/Redirect.native.js +31 -0
- package/dist/components/Redirect.native.js.map +1 -0
- package/dist/components/Redirect.native.mjs +6 -0
- package/dist/components/Redirect.native.mjs.map +1 -0
- package/dist/components/index.d.mts +5 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.js +106 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +78 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/hooks/index.d.mts +5 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.js +91 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/index.mjs +63 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/useLocalSearchParams.d.mts +13 -0
- package/dist/hooks/useLocalSearchParams.d.ts +13 -0
- package/dist/hooks/useLocalSearchParams.js +39 -0
- package/dist/hooks/useLocalSearchParams.js.map +1 -0
- package/dist/hooks/useLocalSearchParams.mjs +14 -0
- package/dist/hooks/useLocalSearchParams.mjs.map +1 -0
- package/dist/hooks/useLocalSearchParams.native.d.mts +1 -0
- package/dist/hooks/useLocalSearchParams.native.d.ts +1 -0
- package/dist/hooks/useLocalSearchParams.native.js +31 -0
- package/dist/hooks/useLocalSearchParams.native.js.map +1 -0
- package/dist/hooks/useLocalSearchParams.native.mjs +6 -0
- package/dist/hooks/useLocalSearchParams.native.mjs.map +1 -0
- package/dist/hooks/useRouter.d.mts +13 -0
- package/dist/hooks/useRouter.d.ts +13 -0
- package/dist/hooks/useRouter.js +76 -0
- package/dist/hooks/useRouter.js.map +1 -0
- package/dist/hooks/useRouter.mjs +51 -0
- package/dist/hooks/useRouter.mjs.map +1 -0
- package/dist/hooks/useRouter.native.d.mts +12 -0
- package/dist/hooks/useRouter.native.d.ts +12 -0
- package/dist/hooks/useRouter.native.js +41 -0
- package/dist/hooks/useRouter.native.js.map +1 -0
- package/dist/hooks/useRouter.native.mjs +16 -0
- package/dist/hooks/useRouter.native.mjs.map +1 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +149 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +119 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.native.d.mts +7 -0
- package/dist/index.native.d.ts +7 -0
- package/dist/index.native.js +62 -0
- package/dist/index.native.js.map +1 -0
- package/dist/index.native.mjs +32 -0
- package/dist/index.native.mjs.map +1 -0
- package/dist/types-BrqVaE2O.d.mts +21 -0
- package/dist/types-BrqVaE2O.d.ts +21 -0
- package/dist/utils/route-utils.d.mts +19 -0
- package/dist/utils/route-utils.d.ts +19 -0
- package/dist/utils/route-utils.js +48 -0
- package/dist/utils/route-utils.js.map +1 -0
- package/dist/utils/route-utils.mjs +22 -0
- package/dist/utils/route-utils.mjs.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/utils/route-utils.ts
|
|
2
|
+
function expoPathToTanStack(pathname) {
|
|
3
|
+
return pathname.replace(/\[([^\]]+)\]/g, (_, key) => `$${key}`);
|
|
4
|
+
}
|
|
5
|
+
function splitParams(pathname, params = {}) {
|
|
6
|
+
const dynamicKeys = Array.from(pathname.matchAll(/\[([^\]]+)\]/g), (m) => m[1]);
|
|
7
|
+
const pathParams = {};
|
|
8
|
+
const searchParams = {};
|
|
9
|
+
for (const [key, value] of Object.entries(params)) {
|
|
10
|
+
if (dynamicKeys.includes(key)) {
|
|
11
|
+
pathParams[key] = value;
|
|
12
|
+
} else {
|
|
13
|
+
searchParams[key] = value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return { pathParams, searchParams };
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
expoPathToTanStack,
|
|
20
|
+
splitParams
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=route-utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/route-utils.ts"],"sourcesContent":["import type { HrefObject } from \"../types\";\n\n/**\n * Converts:\n * /user/[id]/post/[slug] → /user/$id/post/$slug\n */\nexport function expoPathToTanStack(pathname: string) {\n return pathname.replace(/\\[([^\\]]+)\\]/g, (_, key) => `$${key}`);\n}\n\n/**\n * Splits params into:\n * - path params (used by dynamic segments)\n * - search params (query string)\n */\nexport function splitParams(pathname: string, params: HrefObject[\"params\"] = {}) {\n const dynamicKeys = Array.from(pathname.matchAll(/\\[([^\\]]+)\\]/g), (m) => m[1]);\n\n const pathParams: Record<string, unknown> = {};\n const searchParams: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(params)) {\n if (dynamicKeys.includes(key)) {\n pathParams[key] = value;\n } else {\n searchParams[key] = value;\n }\n }\n\n return { pathParams, searchParams };\n}\n"],"mappings":";AAMO,SAAS,mBAAmB,UAAkB;AACnD,SAAO,SAAS,QAAQ,iBAAiB,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE;AAChE;AAOO,SAAS,YAAY,UAAkB,SAA+B,CAAC,GAAG;AAC/E,QAAM,cAAc,MAAM,KAAK,SAAS,SAAS,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAE9E,QAAM,aAAsC,CAAC;AAC7C,QAAM,eAAwC,CAAC;AAE/C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,QAAI,YAAY,SAAS,GAAG,GAAG;AAC7B,iBAAW,GAAG,IAAI;AAAA,IACpB,OAAO;AACL,mBAAa,GAAG,IAAI;AAAA,IACtB;AAAA,EACF;AAEA,SAAO,EAAE,YAAY,aAAa;AACpC;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tanexpo",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Cross-platform router for TanStack and Expo",
|
|
5
|
+
"author": "Vijay S Nair",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"directory": "packages/module",
|
|
10
|
+
"url": "https://github.com/nairvijays99/tanexpo"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"expo",
|
|
14
|
+
"tanstack",
|
|
15
|
+
"router",
|
|
16
|
+
"react",
|
|
17
|
+
"react-native"
|
|
18
|
+
],
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"module": "./dist/index.mjs",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"react-native": "./dist/index.native.js",
|
|
23
|
+
"sideEffects": false,
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"react-native": {
|
|
27
|
+
"types": "./dist/index.native.d.ts",
|
|
28
|
+
"import": "./dist/index.native.mjs",
|
|
29
|
+
"require": "./dist/index.native.js"
|
|
30
|
+
},
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"import": "./dist/index.mjs",
|
|
33
|
+
"require": "./dist/index.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist"
|
|
38
|
+
],
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"@tanstack/react-router": "*",
|
|
41
|
+
"expo-router": "*",
|
|
42
|
+
"react": "*",
|
|
43
|
+
"react-dom": "*",
|
|
44
|
+
"react-native": "*",
|
|
45
|
+
"react-native-web": "*"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "tsup",
|
|
49
|
+
"postbuild": "node ./scripts/fix-mjs-extensions.js",
|
|
50
|
+
"dev": "tsup --watch",
|
|
51
|
+
"lint": "biome lint .",
|
|
52
|
+
"clean": "rm -rf dist",
|
|
53
|
+
"test": "vitest run",
|
|
54
|
+
"test:watch": "vitest",
|
|
55
|
+
"test:ui": "vitest --ui",
|
|
56
|
+
"prepublishOnly": "pnpm build",
|
|
57
|
+
"publish:local": "pnpm clean && pnpm build && yalc publish --push",
|
|
58
|
+
"type-check": "tsc --noEmit"
|
|
59
|
+
},
|
|
60
|
+
"prepublishOnly": "pnpm build",
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
}
|
|
64
|
+
}
|