@real-router/ssr-data-plugin 0.1.3 → 0.1.5
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/cjs/index.d.ts +11 -7
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.d.mts +11 -7
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/metafile-cjs.json +0 -1
- package/dist/esm/metafile-esm.json +0 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { Params, PluginFactory, State } from
|
|
1
|
+
import { Params, PluginFactory, State } from "@real-router/core";
|
|
2
2
|
|
|
3
|
+
//#region src/types.d.ts
|
|
3
4
|
type DataLoaderFn = (params: Params) => Promise<unknown>;
|
|
4
5
|
type DataLoaderMap = Record<string, DataLoaderFn>;
|
|
5
|
-
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/factory.d.ts
|
|
6
8
|
declare function ssrDataPluginFactory(loaders: DataLoaderMap): PluginFactory;
|
|
7
|
-
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/index.d.ts
|
|
8
11
|
declare module "@real-router/core" {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
interface Router {
|
|
13
|
+
getRouteData: (state?: State) => unknown;
|
|
14
|
+
}
|
|
12
15
|
}
|
|
13
|
-
|
|
16
|
+
//#endregion
|
|
14
17
|
export { type DataLoaderFn, type DataLoaderMap, ssrDataPluginFactory };
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@real-router/core/api`);const t=`[@real-router/ssr-data-plugin]`;function n(e){if(typeof e!=`object`||!e)throw TypeError(`${t} loaders must be a non-null object`);for(let[n,r]of Object.entries(e))if(typeof r!=`function`)throw TypeError(`${t} loader for route "${n}" must be a function`)}function r(t){return n(t),n=>{let r=(0,e.getPluginApi)(n),i=new WeakMap,a=r.addInterceptor(`start`,async(e,n)=>{let r=await e(n);return Object.hasOwn(t,r.name)&&i.set(r,await t[r.name](r.params)),r}),o=r.extendRouter({getRouteData(e){let t=e??n.getState();return t?i.get(t)??null:null}});return{teardown(){a(),o()}}}}exports.ssrDataPluginFactory=r;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/constants.ts","../../src/validation.ts","../../src/factory.ts"],"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/constants.ts","../../src/validation.ts","../../src/factory.ts"],"sourcesContent":["export const LOGGER_CONTEXT = \"ssr-data-plugin\";\n\nexport const ERROR_PREFIX = `[@real-router/${LOGGER_CONTEXT}]`;\n","import { ERROR_PREFIX } from \"./constants\";\n\nimport type { DataLoaderMap } from \"./types\";\n\nexport function validateLoaders(\n loaders: unknown,\n): asserts loaders is DataLoaderMap {\n if (loaders === null || typeof loaders !== \"object\") {\n throw new TypeError(`${ERROR_PREFIX} loaders must be a non-null object`);\n }\n\n for (const [key, value] of Object.entries(\n loaders as Record<string, unknown>,\n )) {\n if (typeof value !== \"function\") {\n throw new TypeError(\n `${ERROR_PREFIX} loader for route \"${key}\" must be a function`,\n );\n }\n }\n}\n","import { getPluginApi } from \"@real-router/core/api\";\n\nimport { validateLoaders } from \"./validation\";\n\nimport type { DataLoaderMap } from \"./types\";\nimport type { State, PluginFactory, Plugin } from \"@real-router/core\";\n\nexport function ssrDataPluginFactory(loaders: DataLoaderMap): PluginFactory {\n validateLoaders(loaders);\n\n return (router): Plugin => {\n const api = getPluginApi(router);\n const dataStore = new WeakMap<State, unknown>();\n\n const removeStartInterceptor = api.addInterceptor(\n \"start\",\n async (next, path) => {\n const state = await next(path);\n\n if (Object.hasOwn(loaders, state.name)) {\n dataStore.set(state, await loaders[state.name](state.params));\n }\n\n return state;\n },\n );\n\n const removeExtensions = api.extendRouter({\n getRouteData(state?: State): unknown {\n const routeState = state ?? router.getState();\n\n return routeState ? (dataStore.get(routeState) ?? null) : null;\n },\n });\n\n return {\n teardown() {\n removeStartInterceptor();\n removeExtensions();\n },\n };\n };\n}\n"],"mappings":"0GAAA,MAEa,EAAe,iCCE5B,SAAgB,EACd,EACkC,CAClC,GAAwB,OAAO,GAAY,WAAvC,EACF,MAAU,UAAU,GAAG,EAAa,oCAAoC,CAG1E,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAChC,EACD,CACC,GAAI,OAAO,GAAU,WACnB,MAAU,UACR,GAAG,EAAa,qBAAqB,EAAI,sBAC1C,CCVP,SAAgB,EAAqB,EAAuC,CAG1E,OAFA,EAAgB,EAAQ,CAEhB,GAAmB,CACzB,IAAM,GAAA,EAAA,EAAA,cAAmB,EAAO,CAC1B,EAAY,IAAI,QAEhB,EAAyB,EAAI,eACjC,QACA,MAAO,EAAM,IAAS,CACpB,IAAM,EAAQ,MAAM,EAAK,EAAK,CAM9B,OAJI,OAAO,OAAO,EAAS,EAAM,KAAK,EACpC,EAAU,IAAI,EAAO,MAAM,EAAQ,EAAM,MAAM,EAAM,OAAO,CAAC,CAGxD,GAEV,CAEK,EAAmB,EAAI,aAAa,CACxC,aAAa,EAAwB,CACnC,IAAM,EAAa,GAAS,EAAO,UAAU,CAE7C,OAAO,EAAc,EAAU,IAAI,EAAW,EAAI,KAAQ,MAE7D,CAAC,CAEF,MAAO,CACL,UAAW,CACT,GAAwB,CACxB,GAAkB,EAErB"}
|
package/dist/esm/index.d.mts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { Params, PluginFactory, State } from
|
|
1
|
+
import { Params, PluginFactory, State } from "@real-router/core";
|
|
2
2
|
|
|
3
|
+
//#region src/types.d.ts
|
|
3
4
|
type DataLoaderFn = (params: Params) => Promise<unknown>;
|
|
4
5
|
type DataLoaderMap = Record<string, DataLoaderFn>;
|
|
5
|
-
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/factory.d.ts
|
|
6
8
|
declare function ssrDataPluginFactory(loaders: DataLoaderMap): PluginFactory;
|
|
7
|
-
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/index.d.ts
|
|
8
11
|
declare module "@real-router/core" {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
interface Router {
|
|
13
|
+
getRouteData: (state?: State) => unknown;
|
|
14
|
+
}
|
|
12
15
|
}
|
|
13
|
-
|
|
16
|
+
//#endregion
|
|
14
17
|
export { type DataLoaderFn, type DataLoaderMap, ssrDataPluginFactory };
|
|
18
|
+
//# sourceMappingURL=index.d.mts.map
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import{getPluginApi as
|
|
1
|
+
import{getPluginApi as e}from"@real-router/core/api";const t=`[@real-router/ssr-data-plugin]`;function n(e){if(typeof e!=`object`||!e)throw TypeError(`${t} loaders must be a non-null object`);for(let[n,r]of Object.entries(e))if(typeof r!=`function`)throw TypeError(`${t} loader for route "${n}" must be a function`)}function r(t){return n(t),n=>{let r=e(n),i=new WeakMap,a=r.addInterceptor(`start`,async(e,n)=>{let r=await e(n);return Object.hasOwn(t,r.name)&&i.set(r,await t[r.name](r.params)),r}),o=r.extendRouter({getRouteData(e){let t=e??n.getState();return t?i.get(t)??null:null}});return{teardown(){a(),o()}}}}export{r as ssrDataPluginFactory};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/constants.ts","../../src/validation.ts","../../src/factory.ts"],"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/constants.ts","../../src/validation.ts","../../src/factory.ts"],"sourcesContent":["export const LOGGER_CONTEXT = \"ssr-data-plugin\";\n\nexport const ERROR_PREFIX = `[@real-router/${LOGGER_CONTEXT}]`;\n","import { ERROR_PREFIX } from \"./constants\";\n\nimport type { DataLoaderMap } from \"./types\";\n\nexport function validateLoaders(\n loaders: unknown,\n): asserts loaders is DataLoaderMap {\n if (loaders === null || typeof loaders !== \"object\") {\n throw new TypeError(`${ERROR_PREFIX} loaders must be a non-null object`);\n }\n\n for (const [key, value] of Object.entries(\n loaders as Record<string, unknown>,\n )) {\n if (typeof value !== \"function\") {\n throw new TypeError(\n `${ERROR_PREFIX} loader for route \"${key}\" must be a function`,\n );\n }\n }\n}\n","import { getPluginApi } from \"@real-router/core/api\";\n\nimport { validateLoaders } from \"./validation\";\n\nimport type { DataLoaderMap } from \"./types\";\nimport type { State, PluginFactory, Plugin } from \"@real-router/core\";\n\nexport function ssrDataPluginFactory(loaders: DataLoaderMap): PluginFactory {\n validateLoaders(loaders);\n\n return (router): Plugin => {\n const api = getPluginApi(router);\n const dataStore = new WeakMap<State, unknown>();\n\n const removeStartInterceptor = api.addInterceptor(\n \"start\",\n async (next, path) => {\n const state = await next(path);\n\n if (Object.hasOwn(loaders, state.name)) {\n dataStore.set(state, await loaders[state.name](state.params));\n }\n\n return state;\n },\n );\n\n const removeExtensions = api.extendRouter({\n getRouteData(state?: State): unknown {\n const routeState = state ?? router.getState();\n\n return routeState ? (dataStore.get(routeState) ?? null) : null;\n },\n });\n\n return {\n teardown() {\n removeStartInterceptor();\n removeExtensions();\n },\n };\n };\n}\n"],"mappings":"qDAAA,MAEa,EAAe,iCCE5B,SAAgB,EACd,EACkC,CAClC,GAAwB,OAAO,GAAY,WAAvC,EACF,MAAU,UAAU,GAAG,EAAa,oCAAoC,CAG1E,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAChC,EACD,CACC,GAAI,OAAO,GAAU,WACnB,MAAU,UACR,GAAG,EAAa,qBAAqB,EAAI,sBAC1C,CCVP,SAAgB,EAAqB,EAAuC,CAG1E,OAFA,EAAgB,EAAQ,CAEhB,GAAmB,CACzB,IAAM,EAAM,EAAa,EAAO,CAC1B,EAAY,IAAI,QAEhB,EAAyB,EAAI,eACjC,QACA,MAAO,EAAM,IAAS,CACpB,IAAM,EAAQ,MAAM,EAAK,EAAK,CAM9B,OAJI,OAAO,OAAO,EAAS,EAAM,KAAK,EACpC,EAAU,IAAI,EAAO,MAAM,EAAQ,EAAM,MAAM,EAAM,OAAO,CAAC,CAGxD,GAEV,CAEK,EAAmB,EAAI,aAAa,CACxC,aAAa,EAAwB,CACnC,IAAM,EAAa,GAAS,EAAO,UAAU,CAE7C,OAAO,EAAc,EAAU,IAAI,EAAW,EAAI,KAAQ,MAE7D,CAAC,CAEF,MAAO,CACL,UAAW,CACT,GAAwB,CACxB,GAAkB,EAErB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@real-router/ssr-data-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "SSR per-route data loading plugin for Real-Router",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"homepage": "https://github.com/greydragon888/real-router",
|
|
38
38
|
"sideEffects": false,
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@real-router/core": "^0.
|
|
40
|
+
"@real-router/core": "^0.43.0"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"test": "vitest",
|
|
44
|
-
"build": "
|
|
44
|
+
"build": "tsdown --config-loader unrun",
|
|
45
45
|
"type-check": "tsc --noEmit",
|
|
46
46
|
"lint": "eslint --cache --ext .ts src/ tests/ --fix --max-warnings 0",
|
|
47
47
|
"lint:package": "publint",
|
|
48
48
|
"lint:types": "attw --pack .",
|
|
49
|
-
"build:dist-only": "
|
|
49
|
+
"build:dist-only": "tsdown --config-loader unrun"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.21.0_typescript@6.0.2_yaml@2.8.3/node_modules/tsup/assets/cjs_shims.js":{"bytes":569,"imports":[],"format":"esm"},"src/constants.ts":{"bytes":114,"imports":[{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.21.0_typescript@6.0.2_yaml@2.8.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/validation.ts":{"bytes":574,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"},{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.21.0_typescript@6.0.2_yaml@2.8.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/factory.ts":{"bytes":1122,"imports":[{"path":"@real-router/core/api","kind":"import-statement","external":true},{"path":"src/validation.ts","kind":"import-statement","original":"./validation"},{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.21.0_typescript@6.0.2_yaml@2.8.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":271,"imports":[{"path":"src/factory.ts","kind":"import-statement","original":"./factory"},{"path":"/home/runner/work/real-router/real-router/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.8_tsx@4.21.0_typescript@6.0.2_yaml@2.8.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/cjs/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3009},"dist/cjs/index.js":{"imports":[{"path":"@real-router/core/api","kind":"import-statement","external":true}],"exports":["ssrDataPluginFactory"],"entryPoint":"src/index.ts","inputs":{"src/factory.ts":{"bytesInOutput":880},"src/constants.ts":{"bytesInOutput":95},"src/validation.ts":{"bytesInOutput":397},"src/index.ts":{"bytesInOutput":0}},"bytes":1487}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"inputs":{"src/constants.ts":{"bytes":114,"imports":[],"format":"esm"},"src/validation.ts":{"bytes":574,"imports":[{"path":"src/constants.ts","kind":"import-statement","original":"./constants"}],"format":"esm"},"src/factory.ts":{"bytes":1122,"imports":[{"path":"@real-router/core/api","kind":"import-statement","external":true},{"path":"src/validation.ts","kind":"import-statement","original":"./validation"}],"format":"esm"},"src/index.ts":{"bytes":271,"imports":[{"path":"src/factory.ts","kind":"import-statement","original":"./factory"}],"format":"esm"}},"outputs":{"dist/esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3009},"dist/esm/index.mjs":{"imports":[{"path":"@real-router/core/api","kind":"import-statement","external":true}],"exports":["ssrDataPluginFactory"],"entryPoint":"src/index.ts","inputs":{"src/factory.ts":{"bytesInOutput":880},"src/constants.ts":{"bytesInOutput":95},"src/validation.ts":{"bytesInOutput":397},"src/index.ts":{"bytesInOutput":0}},"bytes":1487}}}
|