@anansi/core 0.12.0 → 0.14.1
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/CHANGELOG.md +37 -0
- package/README.md +18 -7
- package/dist/client.js +53 -47
- package/dist/client.js.map +1 -1
- package/dist/server.js +145 -136
- package/dist/server.js.map +1 -1
- package/lib/floodSpouts.d.ts +1 -1
- package/lib/floodSpouts.d.ts.map +1 -1
- package/lib/floodSpouts.js +2 -2
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -2
- package/lib/index.server.d.ts +3 -0
- package/lib/index.server.d.ts.map +1 -1
- package/lib/index.server.js +6 -2
- package/lib/spouts/app.d.ts +5 -0
- package/lib/spouts/app.d.ts.map +1 -0
- package/lib/spouts/app.js +12 -0
- package/lib/spouts/app.server.d.ts +6 -0
- package/lib/spouts/app.server.d.ts.map +1 -0
- package/lib/spouts/app.server.js +12 -0
- package/lib/spouts/document.d.ts +2 -8
- package/lib/spouts/document.d.ts.map +1 -1
- package/lib/spouts/document.js +4 -6
- package/lib/spouts/document.server.d.ts +4 -6
- package/lib/spouts/document.server.d.ts.map +1 -1
- package/lib/spouts/document.server.js +40 -42
- package/lib/spouts/json.d.ts +4 -2
- package/lib/spouts/json.d.ts.map +1 -1
- package/lib/spouts/json.js +7 -6
- package/lib/spouts/json.server.d.ts +4 -6
- package/lib/spouts/json.server.d.ts.map +1 -1
- package/lib/spouts/json.server.js +32 -34
- package/lib/spouts/prefetch.server.d.ts +1 -1
- package/lib/spouts/prefetch.server.d.ts.map +1 -1
- package/lib/spouts/prefetch.server.js +1 -1
- package/lib/spouts/restHooks.d.ts +3 -3
- package/lib/spouts/restHooks.d.ts.map +1 -1
- package/lib/spouts/restHooks.js +9 -11
- package/lib/spouts/restHooks.server.d.ts +8 -45
- package/lib/spouts/restHooks.server.d.ts.map +1 -1
- package/lib/spouts/restHooks.server.js +15 -12
- package/lib/spouts/router.d.ts +3 -4
- package/lib/spouts/router.d.ts.map +1 -1
- package/lib/spouts/router.js +14 -13
- package/lib/spouts/router.server.d.ts +3 -4
- package/lib/spouts/router.server.d.ts.map +1 -1
- package/lib/spouts/router.server.js +17 -15
- package/lib/spouts/types.d.ts +2 -0
- package/lib/spouts/types.d.ts.map +1 -1
- package/lib/spouts/types.js +1 -1
- package/package.json +11 -7
- package/src/floodSpouts.tsx +2 -2
- package/src/index.server.ts +3 -0
- package/src/index.ts +3 -0
- package/src/spouts/app.server.tsx +8 -0
- package/src/spouts/app.tsx +6 -0
- package/src/spouts/document.server.tsx +64 -68
- package/src/spouts/document.tsx +5 -14
- package/src/spouts/json.server.tsx +41 -45
- package/src/spouts/json.tsx +8 -16
- package/src/spouts/prefetch.server.tsx +8 -4
- package/src/spouts/restHooks.server.tsx +27 -22
- package/src/spouts/restHooks.tsx +12 -18
- package/src/spouts/router.server.tsx +27 -21
- package/src/spouts/router.tsx +19 -19
- package/src/spouts/types.ts +18 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,43 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
### [0.14.1](https://github.com/ntucker/anansi/compare/@anansi/core@0.14.0...@anansi/core@0.14.1) (2022-06-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### 🐛 Bug Fix
|
|
10
|
+
|
|
11
|
+
* Provide rest-hooks package for rest-hooks/ssr ([#1569](https://github.com/ntucker/anansi/issues/1569)) ([1dbb8ae](https://github.com/ntucker/anansi/commit/1dbb8aec39ad3180a96e76827611b05b53d7e02f))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### 📦 Package
|
|
15
|
+
|
|
16
|
+
* Update babel monorepo to v7.18.6 ([#1566](https://github.com/ntucker/anansi/issues/1566)) ([1634f13](https://github.com/ntucker/anansi/commit/1634f1358de98ba724433ffb462094ad17f88b72))
|
|
17
|
+
* Update jest monorepo to ^28.1.2 ([#1567](https://github.com/ntucker/anansi/issues/1567)) ([2e614b1](https://github.com/ntucker/anansi/commit/2e614b1bc54ade3cf78717e7d26d606f5e917888))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## [0.14.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.13.0...@anansi/core@0.14.0) (2022-06-24)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### 🚀 Features
|
|
25
|
+
|
|
26
|
+
* Add Spout type for easy spout construction ([8f93eb3](https://github.com/ntucker/anansi/commit/8f93eb363f1bfe30d1ac30395df1a3d9fbd9cab3))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [0.13.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.12.0...@anansi/core@0.13.0) (2022-06-23)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### ⚠ 💥 BREAKING CHANGES
|
|
34
|
+
|
|
35
|
+
* Must use appSpout; Spouts need two generics
|
|
36
|
+
|
|
37
|
+
### 💅 Enhancement
|
|
38
|
+
|
|
39
|
+
* Spouts produce props in both directions ([#1559](https://github.com/ntucker/anansi/issues/1559)) ([898cdde](https://github.com/ntucker/anansi/commit/898cdde500a204a7a4dc155ac7ee51930172380e))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
6
43
|
## [0.12.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.11.2...@anansi/core@0.12.0) (2022-06-15)
|
|
7
44
|
|
|
8
45
|
|
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# @anansi/core
|
|
2
|
+
|
|
2
3
|
<!--[](https://circleci.com/gh/notwillk/pojo-router)-->
|
|
4
|
+
|
|
3
5
|
[](https://www.npmjs.com/package/@anansi/core)
|
|
4
6
|
[](https://bundlephobia.com/result?p=@anansi/core)
|
|
5
7
|
[](https://www.npmjs.com/package/@anansi/core)
|
|
@@ -28,24 +30,27 @@ import {
|
|
|
28
30
|
restHooksSpout,
|
|
29
31
|
prefetchSpout,
|
|
30
32
|
routerSpout,
|
|
33
|
+
JSONSpout,
|
|
34
|
+
appSpout,
|
|
31
35
|
} from '@anansi/core/server';
|
|
32
36
|
|
|
33
37
|
import app from 'app';
|
|
34
38
|
|
|
35
39
|
import { createRouter } from './routing';
|
|
36
40
|
|
|
37
|
-
const appSpout = () => Promise.resolve({ app });
|
|
38
|
-
|
|
39
41
|
const spouts = prefetchSpout('controller')(
|
|
40
42
|
documentSpout({ title: 'anansi' })(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
JSONSpout()(
|
|
44
|
+
restHooksSpout()(
|
|
45
|
+
routerSpout({ useResolveWith: useController, createRouter })(
|
|
46
|
+
appSpout(app),
|
|
47
|
+
),
|
|
48
|
+
),
|
|
43
49
|
),
|
|
44
50
|
),
|
|
45
51
|
);
|
|
46
52
|
|
|
47
53
|
export default laySpouts(spouts);
|
|
48
|
-
|
|
49
54
|
```
|
|
50
55
|
|
|
51
56
|
</details>
|
|
@@ -59,6 +64,8 @@ import {
|
|
|
59
64
|
documentSpout,
|
|
60
65
|
restHooksSpout,
|
|
61
66
|
routerSpout,
|
|
67
|
+
JSONSpout,
|
|
68
|
+
appSpout,
|
|
62
69
|
} from '@anansi/core';
|
|
63
70
|
|
|
64
71
|
import app from 'app';
|
|
@@ -68,8 +75,12 @@ import { createRouter } from './routing';
|
|
|
68
75
|
const appSpout = () => Promise.resolve({ app });
|
|
69
76
|
|
|
70
77
|
const spouts = documentSpout({ title: 'anansi' })(
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
JSONSpout()(
|
|
79
|
+
restHooksSpout()(
|
|
80
|
+
routerSpout({ useResolveWith: useController, createRouter })(
|
|
81
|
+
appSpout(app),
|
|
82
|
+
),
|
|
83
|
+
),
|
|
73
84
|
),
|
|
74
85
|
);
|
|
75
86
|
|
package/dist/client.js
CHANGED
|
@@ -52,6 +52,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
52
52
|
// EXPORTS
|
|
53
53
|
__webpack_require__.d(__webpack_exports__, {
|
|
54
54
|
"JSONSpout": () => (/* reexport */ JSONSpout),
|
|
55
|
+
"appSpout": () => (/* reexport */ app),
|
|
55
56
|
"documentSpout": () => (/* reexport */ documentSpout),
|
|
56
57
|
"floodSpouts": () => (/* reexport */ floodSpouts),
|
|
57
58
|
"restHooksSpout": () => (/* reexport */ restHooksSpout),
|
|
@@ -69,16 +70,14 @@ async function floodSpouts(spouts, {
|
|
|
69
70
|
|
|
70
71
|
const {
|
|
71
72
|
app
|
|
72
|
-
} = await spouts();
|
|
73
|
+
} = await spouts({});
|
|
73
74
|
(0,client_namespaceObject.hydrateRoot)((_document$getElementB = document.getElementById(rootId)) != null ? _document$getElementB : document, app);
|
|
74
75
|
}
|
|
75
76
|
;// CONCATENATED MODULE: ./src/spouts/document.tsx
|
|
76
77
|
function documentSpout(options) {
|
|
77
|
-
return
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return nextProps;
|
|
81
|
-
};
|
|
78
|
+
return next => async props => {
|
|
79
|
+
const nextProps = await next(props);
|
|
80
|
+
return nextProps;
|
|
82
81
|
};
|
|
83
82
|
}
|
|
84
83
|
;// CONCATENATED MODULE: external "react"
|
|
@@ -93,22 +92,20 @@ var _jsxFileName = "/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.
|
|
|
93
92
|
function restHooksSpout(options = {
|
|
94
93
|
getManagers: () => [new core_namespaceObject.NetworkManager()]
|
|
95
94
|
}) {
|
|
96
|
-
return
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}, nextProps.app)
|
|
111
|
-
};
|
|
95
|
+
return next => async props => {
|
|
96
|
+
const data = props.initData.resthooks;
|
|
97
|
+
const nextProps = await next(props);
|
|
98
|
+
return { ...nextProps,
|
|
99
|
+
app: /*#__PURE__*/external_react_default().createElement(core_namespaceObject.CacheProvider, {
|
|
100
|
+
initialState: data,
|
|
101
|
+
managers: options.getManagers(),
|
|
102
|
+
__self: this,
|
|
103
|
+
__source: {
|
|
104
|
+
fileName: _jsxFileName,
|
|
105
|
+
lineNumber: 23,
|
|
106
|
+
columnNumber: 9
|
|
107
|
+
}
|
|
108
|
+
}, nextProps.app)
|
|
112
109
|
};
|
|
113
110
|
};
|
|
114
111
|
}
|
|
@@ -133,31 +130,32 @@ function routerSpout(options) {
|
|
|
133
130
|
__self: this,
|
|
134
131
|
__source: {
|
|
135
132
|
fileName: router_jsxFileName,
|
|
136
|
-
lineNumber:
|
|
133
|
+
lineNumber: 27,
|
|
137
134
|
columnNumber: 9
|
|
138
135
|
}
|
|
139
136
|
}, children);
|
|
140
137
|
};
|
|
141
138
|
|
|
142
|
-
return
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
139
|
+
return next => async props => {
|
|
140
|
+
const history = (0,external_history_namespaceObject.createBrowserHistory)();
|
|
141
|
+
const router = options.createRouter(history);
|
|
142
|
+
const matchedRoutes = router.getMatchedRoutes(history.location.pathname);
|
|
143
|
+
const nextProps = await next({ ...props,
|
|
144
|
+
matchedRoutes,
|
|
145
|
+
router
|
|
146
|
+
});
|
|
147
|
+
const Router = createRouteComponent(router);
|
|
148
|
+
return { ...nextProps,
|
|
149
|
+
matchedRoutes,
|
|
150
|
+
router,
|
|
151
|
+
app: /*#__PURE__*/external_react_default().createElement(Router, {
|
|
152
|
+
__self: this,
|
|
153
|
+
__source: {
|
|
154
|
+
fileName: router_jsxFileName,
|
|
155
|
+
lineNumber: 49,
|
|
156
|
+
columnNumber: 12
|
|
157
|
+
}
|
|
158
|
+
}, nextProps.app)
|
|
161
159
|
};
|
|
162
160
|
};
|
|
163
161
|
}
|
|
@@ -165,11 +163,12 @@ function routerSpout(options) {
|
|
|
165
163
|
function JSONSpout({
|
|
166
164
|
id = 'anansi-json'
|
|
167
165
|
} = {}) {
|
|
168
|
-
return
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
166
|
+
return next => async props => {
|
|
167
|
+
const initData = getDatafromDOM(id);
|
|
168
|
+
return { ...(await next({ ...props,
|
|
169
|
+
initData
|
|
170
|
+
})),
|
|
171
|
+
initData
|
|
173
172
|
};
|
|
174
173
|
};
|
|
175
174
|
}
|
|
@@ -178,12 +177,19 @@ function getDatafromDOM(id) {
|
|
|
178
177
|
const element = document.querySelector(`#${id}`);
|
|
179
178
|
return element !== null && element !== void 0 && element.text ? JSON.parse(element === null || element === void 0 ? void 0 : element.text) : undefined;
|
|
180
179
|
}
|
|
180
|
+
;// CONCATENATED MODULE: ./src/spouts/app.tsx
|
|
181
|
+
const appSpout = app => props => Promise.resolve({ ...props,
|
|
182
|
+
app
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
/* harmony default export */ const app = (appSpout);
|
|
181
186
|
;// CONCATENATED MODULE: ./src/index.ts
|
|
182
187
|
|
|
183
188
|
|
|
184
189
|
|
|
185
190
|
|
|
186
191
|
|
|
192
|
+
|
|
187
193
|
module.exports = __webpack_exports__;
|
|
188
194
|
/******/ })()
|
|
189
195
|
;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","mappings":";;AAAA;AACA;AACA;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"file":"client.js","mappings":";;AAAA;AACA;AACA;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACNA;;ACAA;AAEA;AAIA;AAAA;AACA;;AACA;AAAA;AAAA;AAEA;AACA;;ACNA;AAIA;AACA;AAEA;AACA;AACA;;ACdA;;;ACAA;;;;ACAA;AASA;AAGA;AAAA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AAQA;AACA;;AC5BA;;ACAA;;;ACAA;AACA;AACA;AAKA;AAYA;AAGA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;;AAEA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAJA;AAMA;AACA;;ACjDA;AACA;AADA;AAMA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;AACA;AACA;AACA;AACA;;AChBA;AAGA;AAAA;;AAEA;;ACLA;AACA;AACA;AACA;AACA","sources":["/home/ntucker/src/anansi/packages/core/webpack/bootstrap","/home/ntucker/src/anansi/packages/core/webpack/runtime/compat get default export","/home/ntucker/src/anansi/packages/core/webpack/runtime/define property getters","/home/ntucker/src/anansi/packages/core/webpack/runtime/hasOwnProperty shorthand","/home/ntucker/src/anansi/packages/core/webpack/runtime/make namespace object","/home/ntucker/src/anansi/packages/core/external commonjs \"react-dom/client\"","/home/ntucker/src/anansi/packages/core/src/floodSpouts.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/document.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"react\"","/home/ntucker/src/anansi/packages/core/external commonjs \"@rest-hooks/core\"","/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.tsx","/home/ntucker/src/anansi/packages/core/external commonjs \"@anansi/router\"","/home/ntucker/src/anansi/packages/core/external commonjs \"history\"","/home/ntucker/src/anansi/packages/core/src/spouts/router.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/json.tsx","/home/ntucker/src/anansi/packages/core/src/spouts/app.tsx","/home/ntucker/src/anansi/packages/core/src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom/client\");","import { hydrateRoot } from 'react-dom/client';\n\nexport default async function floodSpouts(\n spouts: (props: Record<string, unknown>) => Promise<{\n app: JSX.Element;\n }>,\n { rootId = 'anansi-root' }: { rootId?: string } = {},\n) {\n const { app } = await spouts({});\n\n hydrateRoot(document.getElementById(rootId) ?? document, app);\n}\n","import React from 'react';\nimport type { Route } from '@anansi/router';\n\nimport type { ClientSpout } from './types';\n\nexport default function documentSpout(options: {\n head?: React.ReactNode;\n title: string;\n}): ClientSpout {\n return next => async props => {\n const nextProps = await next(props);\n\n return nextProps;\n };\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@rest-hooks/core\");","import {\n CacheProvider,\n Manager,\n NetworkManager,\n State,\n} from '@rest-hooks/core';\n\nimport type { ClientSpout } from './types';\n\nexport default function restHooksSpout(\n options: {\n getManagers: () => Manager[];\n } = { getManagers: () => [new NetworkManager()] },\n): ClientSpout<{ initData: Record<string, unknown> }> {\n return next => async props => {\n const data = props.initData.resthooks as State<unknown>;\n\n const nextProps = await next(props);\n\n return {\n ...nextProps,\n app: (\n <CacheProvider initialState={data} managers={options.getManagers()}>\n {nextProps.app}\n </CacheProvider>\n ),\n };\n };\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@anansi/router\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"history\");","import { Route, RouteProvider, RouteController } from '@anansi/router';\nimport React from 'react';\nimport { createBrowserHistory } from 'history';\nimport type { Update } from 'history';\n\nimport type { CreateRouter, ClientSpout } from './types';\n\nexport default function routerSpout<ResolveWith>(options: {\n resolveWith?: any;\n useResolveWith: () => ResolveWith;\n createRouter: CreateRouter<ResolveWith>;\n onChange?: (update: Update, callback: () => void | undefined) => void;\n}): ClientSpout<\n Record<string, unknown>,\n {\n matchedRoutes: Route<ResolveWith, any>[];\n router: RouteController<Route<ResolveWith, any>>;\n }\n> {\n const createRouteComponent = (\n router: RouteController<Route<ResolveWith, any>>,\n ) =>\n function Router({ children }: { children: React.ReactNode }) {\n const resolveWith = options.useResolveWith();\n\n return (\n <RouteProvider\n router={router}\n resolveWith={resolveWith}\n onChange={options.onChange}\n >\n {children}\n </RouteProvider>\n );\n };\n\n return next => async props => {\n const history = createBrowserHistory();\n const router = options.createRouter(history);\n const matchedRoutes = router.getMatchedRoutes(history.location.pathname);\n\n const nextProps = await next({ ...props, matchedRoutes, router });\n\n const Router = createRouteComponent(router);\n return {\n ...nextProps,\n matchedRoutes,\n router,\n app: <Router>{nextProps.app}</Router>,\n };\n };\n}\n","import type { ClientSpout } from './types';\n\nexport default function JSONSpout({\n id = 'anansi-json',\n}: { id?: string } = {}): ClientSpout<\n Record<string, unknown>,\n { initData: Record<string, unknown> }\n> {\n return next => async props => {\n const initData = getDatafromDOM(id);\n return { ...(await next({ ...props, initData })), initData };\n };\n}\nfunction getDatafromDOM(id: string): Record<string, unknown> {\n const element: HTMLScriptElement | null = document.querySelector(`#${id}`);\n return element?.text ? JSON.parse(element?.text) : undefined;\n}\n","const appSpout =\n (app: JSX.Element) =>\n <P extends Record<string, unknown>>(props: P) =>\n Promise.resolve({ ...props, app });\n\nexport default appSpout;\n","export { default as floodSpouts } from './floodSpouts';\nexport { default as documentSpout } from './spouts/document';\nexport { default as restHooksSpout } from './spouts/restHooks';\nexport { default as routerSpout } from './spouts/router';\nexport { default as JSONSpout } from './spouts/json';\nexport { default as appSpout } from './spouts/app';\nexport type { ServerProps } from './spouts/types';\nexport type { ClientSpout as Spout } from './spouts/types';\n"],"names":[],"sourceRoot":""}
|