@anansi/core 0.13.0 → 0.14.2

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/client.js +43 -54
  3. package/dist/client.js.map +1 -1
  4. package/dist/server.js +137 -153
  5. package/dist/server.js.map +1 -1
  6. package/lib/index.d.ts +2 -1
  7. package/lib/index.d.ts.map +1 -1
  8. package/lib/index.js +2 -6
  9. package/lib/index.server.d.ts +2 -1
  10. package/lib/index.server.d.ts.map +1 -1
  11. package/lib/index.server.js +2 -6
  12. package/lib/spouts/document.d.ts +2 -8
  13. package/lib/spouts/document.d.ts.map +1 -1
  14. package/lib/spouts/document.js +4 -6
  15. package/lib/spouts/document.server.d.ts +3 -5
  16. package/lib/spouts/document.server.d.ts.map +1 -1
  17. package/lib/spouts/document.server.js +40 -42
  18. package/lib/spouts/json.d.ts +3 -3
  19. package/lib/spouts/json.d.ts.map +1 -1
  20. package/lib/spouts/json.js +6 -6
  21. package/lib/spouts/json.server.d.ts +3 -5
  22. package/lib/spouts/json.server.d.ts.map +1 -1
  23. package/lib/spouts/json.server.js +32 -34
  24. package/lib/spouts/restHooks.d.ts +2 -4
  25. package/lib/spouts/restHooks.d.ts.map +1 -1
  26. package/lib/spouts/restHooks.js +9 -11
  27. package/lib/spouts/restHooks.server.d.ts +5 -81
  28. package/lib/spouts/restHooks.server.d.ts.map +1 -1
  29. package/lib/spouts/restHooks.server.js +15 -17
  30. package/lib/spouts/router.d.ts +4 -4
  31. package/lib/spouts/router.d.ts.map +1 -1
  32. package/lib/spouts/router.js +14 -13
  33. package/lib/spouts/router.server.d.ts +3 -6
  34. package/lib/spouts/router.server.d.ts.map +1 -1
  35. package/lib/spouts/router.server.js +17 -19
  36. package/lib/spouts/types.d.ts +2 -0
  37. package/lib/spouts/types.d.ts.map +1 -1
  38. package/lib/spouts/types.js +1 -1
  39. package/package.json +11 -7
  40. package/src/index.server.ts +2 -1
  41. package/src/index.ts +2 -1
  42. package/src/spouts/document.server.tsx +63 -67
  43. package/src/spouts/document.tsx +5 -14
  44. package/src/spouts/json.server.tsx +40 -40
  45. package/src/spouts/json.tsx +8 -11
  46. package/src/spouts/restHooks.server.tsx +25 -29
  47. package/src/spouts/restHooks.tsx +12 -18
  48. package/src/spouts/router.server.tsx +30 -34
  49. package/src/spouts/router.tsx +20 -19
  50. package/src/spouts/types.ts +18 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,40 @@
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.2](https://github.com/ntucker/anansi/compare/@anansi/core@0.14.1...@anansi/core@0.14.2) (2022-07-01)
7
+
8
+
9
+ ### 🐛 Bug Fix
10
+
11
+ * spout types: ([7666611](https://github.com/ntucker/anansi/commit/76666114833a416e79c7b8e8953bb11d2170bca8))
12
+ * Use split by field requirements ([f9133b7](https://github.com/ntucker/anansi/commit/f9133b760845b9dfa7037d14373bfe48a456475c))
13
+
14
+
15
+
16
+ ### [0.14.1](https://github.com/ntucker/anansi/compare/@anansi/core@0.14.0...@anansi/core@0.14.1) (2022-06-29)
17
+
18
+
19
+ ### 🐛 Bug Fix
20
+
21
+ * Provide rest-hooks package for rest-hooks/ssr ([#1569](https://github.com/ntucker/anansi/issues/1569)) ([1dbb8ae](https://github.com/ntucker/anansi/commit/1dbb8aec39ad3180a96e76827611b05b53d7e02f))
22
+
23
+
24
+ ### 📦 Package
25
+
26
+ * Update babel monorepo to v7.18.6 ([#1566](https://github.com/ntucker/anansi/issues/1566)) ([1634f13](https://github.com/ntucker/anansi/commit/1634f1358de98ba724433ffb462094ad17f88b72))
27
+ * Update jest monorepo to ^28.1.2 ([#1567](https://github.com/ntucker/anansi/issues/1567)) ([2e614b1](https://github.com/ntucker/anansi/commit/2e614b1bc54ade3cf78717e7d26d606f5e917888))
28
+
29
+
30
+
31
+ ## [0.14.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.13.0...@anansi/core@0.14.0) (2022-06-24)
32
+
33
+
34
+ ### 🚀 Features
35
+
36
+ * Add Spout type for easy spout construction ([8f93eb3](https://github.com/ntucker/anansi/commit/8f93eb363f1bfe30d1ac30395df1a3d9fbd9cab3))
37
+
38
+
39
+
6
40
  ## [0.13.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.12.0...@anansi/core@0.13.0) (2022-06-23)
7
41
 
8
42
 
package/dist/client.js CHANGED
@@ -52,7 +52,6 @@ __webpack_require__.r(__webpack_exports__);
52
52
  // EXPORTS
53
53
  __webpack_require__.d(__webpack_exports__, {
54
54
  "JSONSpout": () => (/* reexport */ JSONSpout),
55
- "ServerProps": () => (/* reexport */ types_namespaceObject.ServerProps),
56
55
  "appSpout": () => (/* reexport */ app),
57
56
  "documentSpout": () => (/* reexport */ documentSpout),
58
57
  "floodSpouts": () => (/* reexport */ floodSpouts),
@@ -60,10 +59,6 @@ __webpack_require__.d(__webpack_exports__, {
60
59
  "routerSpout": () => (/* reexport */ routerSpout)
61
60
  });
62
61
 
63
- // NAMESPACE OBJECT: ./src/spouts/types.ts
64
- var types_namespaceObject = {};
65
- __webpack_require__.r(types_namespaceObject);
66
-
67
62
  ;// CONCATENATED MODULE: external "react-dom/client"
68
63
  const client_namespaceObject = require("react-dom/client");
69
64
  ;// CONCATENATED MODULE: ./src/floodSpouts.tsx
@@ -80,11 +75,9 @@ async function floodSpouts(spouts, {
80
75
  }
81
76
  ;// CONCATENATED MODULE: ./src/spouts/document.tsx
82
77
  function documentSpout(options) {
83
- return function (next) {
84
- return async props => {
85
- const nextProps = await next(props);
86
- return nextProps;
87
- };
78
+ return next => async props => {
79
+ const nextProps = await next(props);
80
+ return nextProps;
88
81
  };
89
82
  }
90
83
  ;// CONCATENATED MODULE: external "react"
@@ -99,22 +92,20 @@ var _jsxFileName = "/home/ntucker/src/anansi/packages/core/src/spouts/restHooks.
99
92
  function restHooksSpout(options = {
100
93
  getManagers: () => [new core_namespaceObject.NetworkManager()]
101
94
  }) {
102
- return function (next) {
103
- return async props => {
104
- const data = props.initData.resthooks;
105
- const nextProps = await next(props);
106
- return { ...nextProps,
107
- app: /*#__PURE__*/external_react_default().createElement(core_namespaceObject.CacheProvider, {
108
- initialState: data,
109
- managers: options.getManagers(),
110
- __self: this,
111
- __source: {
112
- fileName: _jsxFileName,
113
- lineNumber: 28,
114
- columnNumber: 11
115
- }
116
- }, nextProps.app)
117
- };
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)
118
109
  };
119
110
  };
120
111
  }
@@ -139,31 +130,32 @@ function routerSpout(options) {
139
130
  __self: this,
140
131
  __source: {
141
132
  fileName: router_jsxFileName,
142
- lineNumber: 23,
133
+ lineNumber: 28,
143
134
  columnNumber: 9
144
135
  }
145
136
  }, children);
146
137
  };
147
138
 
148
- return function (next) {
149
- return async props => {
150
- const history = (0,external_history_namespaceObject.createBrowserHistory)();
151
- const router = options.createRouter(history);
152
- const matchedRoutes = router.getMatchedRoutes(history.location.pathname);
153
- const nextProps = await next(props);
154
- const Router = createRouteComponent(router);
155
- return { ...nextProps,
156
- matchedRoutes,
157
- router,
158
- app: /*#__PURE__*/external_react_default().createElement(Router, {
159
- __self: this,
160
- __source: {
161
- fileName: router_jsxFileName,
162
- lineNumber: 48,
163
- columnNumber: 14
164
- }
165
- }, nextProps.app)
166
- };
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: 50,
156
+ columnNumber: 12
157
+ }
158
+ }, nextProps.app)
167
159
  };
168
160
  };
169
161
  }
@@ -171,12 +163,12 @@ function routerSpout(options) {
171
163
  function JSONSpout({
172
164
  id = 'anansi-json'
173
165
  } = {}) {
174
- return function (next) {
175
- return async props => {
176
- const initData = getDatafromDOM(id);
177
- return await next({ ...props,
166
+ return next => async props => {
167
+ const initData = getDatafromDOM(id);
168
+ return { ...(await next({ ...props,
178
169
  initData
179
- });
170
+ })),
171
+ initData
180
172
  };
181
173
  };
182
174
  }
@@ -191,8 +183,6 @@ const appSpout = app => props => Promise.resolve({ ...props,
191
183
  });
192
184
 
193
185
  /* harmony default export */ const app = (appSpout);
194
- ;// CONCATENATED MODULE: ./src/spouts/types.ts
195
-
196
186
  ;// CONCATENATED MODULE: ./src/index.ts
197
187
 
198
188
 
@@ -200,7 +190,6 @@ const appSpout = app => props => Promise.resolve({ ...props,
200
190
 
201
191
 
202
192
 
203
-
204
193
  module.exports = __webpack_exports__;
205
194
  /******/ })()
206
195
  ;
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;ACNA;;ACAA;AAEA;AAIA;AAAA;AACA;;AACA;AAAA;AAAA;AAEA;AACA;;ACDA;AAIA;AAGA;AACA;AAEA;AACA;AACA;AACA;;ACvBA;;;ACAA;;;;ACAA;AAWA;AAGA;AAAA;AAEA;AAGA;AACA;AAEA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AAQA;AACA;AACA;;AClCA;;ACAA;;;ACAA;AACA;AACA;AAOA;AAMA;AAGA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;;AAEA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAJA;AAMA;AACA;AACA;;AC/CA;AACA;AADA;AAGA;AAGA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;ACnBA;AAGA;AAAA;;AAEA;;;;AELA;AACA;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/spouts/types.ts","/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 { ResolveProps } from './types';\n\ntype NeededNext = {\n matchedRoutes: Route<any>[];\n title?: string;\n} & ResolveProps;\n\nexport default function documentSpout(options: {\n head?: React.ReactNode;\n title: string;\n}) {\n return function <N extends NeededNext, I extends Record<string, unknown>>(\n next: (props: I) => Promise<N>,\n ) {\n return async (props: I) => {\n const nextProps = await next(props);\n\n return nextProps;\n };\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 { ResolveProps } from './types';\n\ntype NeededNext = ResolveProps;\n\nexport default function restHooksSpout(\n options: {\n getManagers: () => Manager[];\n } = { getManagers: () => [new NetworkManager()] },\n) {\n return function <N extends NeededNext, I extends Record<string, unknown>>(\n next: (props: I) => Promise<N>,\n ) {\n return async (props: I & { initData: Record<string, unknown> }) => {\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}\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 { ResolveProps, CreateRouter } from './types';\n\ntype NeededNext = ResolveProps;\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}) {\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 function <N extends NeededNext, I extends Record<string, unknown>>(\n next: (initData: Record<string, unknown>) => Promise<N>,\n ) {\n return async (props: I) => {\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);\n\n const Router = createRouteComponent(router);\n return {\n ...nextProps,\n matchedRoutes,\n router,\n app: <Router>{nextProps.app}</Router>,\n };\n };\n };\n}\n","import type { ResolveProps } from './types';\n\ntype NeededNext = ResolveProps;\n\nexport default function JSONSpout({\n id = 'anansi-json',\n}: { id?: string } = {}) {\n return function <N extends NeededNext, I extends Record<string, unknown>>(\n next: (props: I & { initData: Record<string, unknown> }) => Promise<N>,\n ) {\n return async (props: I) => {\n const initData = getDatafromDOM(id);\n return await next({ ...props, initData });\n };\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","import { IncomingMessage, ServerResponse } from 'http';\nimport { Request, Response } from 'express';\nimport type { StatsCompilation } from 'webpack';\nimport { History } from 'history';\nimport { Route, RouteController } from '@anansi/router';\n\n/* Variables from the rendering call */\nexport type ServerProps = {\n req: Request | IncomingMessage;\n res: Response | ServerResponse;\n clientManifest: StatsCompilation;\n nonce: string;\n};\n\n/* Baseline expectations of return value */\nexport type ResolveProps = {\n app: JSX.Element;\n};\n\nexport type CreateRouter<T> = (\n history: History,\n) => RouteController<Route<T, any>>;\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 { ServerProps } from './spouts/types';\n"],"names":[],"sourceRoot":""}
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;AAaA;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;;AClDA;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 } & {\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":""}
package/dist/server.js CHANGED
@@ -52,7 +52,6 @@ __webpack_require__.r(__webpack_exports__);
52
52
  // EXPORTS
53
53
  __webpack_require__.d(__webpack_exports__, {
54
54
  "JSONSpout": () => (/* reexport */ JSONSpout),
55
- "ServerProps": () => (/* reexport */ types_namespaceObject.ServerProps),
56
55
  "appSpout": () => (/* reexport */ app_server),
57
56
  "documentSpout": () => (/* reexport */ DocumentSpout),
58
57
  "laySpouts": () => (/* reexport */ laySpouts),
@@ -61,10 +60,6 @@ __webpack_require__.d(__webpack_exports__, {
61
60
  "routerSpout": () => (/* reexport */ routerSpout)
62
61
  });
63
62
 
64
- // NAMESPACE OBJECT: ./src/spouts/types.ts
65
- var types_namespaceObject = {};
66
- __webpack_require__.r(types_namespaceObject);
67
-
68
63
  ;// CONCATENATED MODULE: external "react-dom/server"
69
64
  const server_namespaceObject = require("react-dom/server");
70
65
  ;// CONCATENATED MODULE: external "crypto"
@@ -293,59 +288,57 @@ var document_server_jsxFileName = "/home/ntucker/src/anansi/packages/core/src/sp
293
288
 
294
289
 
295
290
  function DocumentSpout(options) {
296
- return function (next) {
297
- return async props => {
298
- var _props$clientManifest, _props$clientManifest2, _props$clientManifest3, _props$clientManifest4, _props$clientManifest5, _nextProps$title;
291
+ return next => async props => {
292
+ var _props$clientManifest, _props$clientManifest2, _props$clientManifest3, _props$clientManifest4, _props$clientManifest5, _nextProps$title;
299
293
 
300
- const nextProps = await next(props);
301
- const publicPath = props.clientManifest.publicPath;
302
- if (Object.keys((_props$clientManifest = (_props$clientManifest2 = props.clientManifest) === null || _props$clientManifest2 === void 0 ? void 0 : _props$clientManifest2.entrypoints) != null ? _props$clientManifest : {}).length < 1 || publicPath === undefined) throw new Error('Manifest missing entries needed'); // TODO: consider using this package for build stats in future:
303
- // https://github.com/facebook/react/tree/main/packages/react-server-dom-webpack
294
+ const nextProps = await next(props);
295
+ const publicPath = props.clientManifest.publicPath;
296
+ if (Object.keys((_props$clientManifest = (_props$clientManifest2 = props.clientManifest) === null || _props$clientManifest2 === void 0 ? void 0 : _props$clientManifest2.entrypoints) != null ? _props$clientManifest : {}).length < 1 || publicPath === undefined) throw new Error('Manifest missing entries needed'); // TODO: consider using this package for build stats in future:
297
+ // https://github.com/facebook/react/tree/main/packages/react-server-dom-webpack
304
298
 
305
- const assetMap = assets => assets.map(({
306
- name
307
- }) => `${publicPath}${name}`);
299
+ const assetMap = assets => assets.map(({
300
+ name
301
+ }) => `${publicPath}${name}`);
308
302
 
309
- const assetList = [];
310
- Object.values((_props$clientManifest3 = (_props$clientManifest4 = props.clientManifest) === null || _props$clientManifest4 === void 0 ? void 0 : _props$clientManifest4.entrypoints) != null ? _props$clientManifest3 : {}).forEach(entrypoint => {
311
- var _entrypoint$assets;
303
+ const assetList = [];
304
+ Object.values((_props$clientManifest3 = (_props$clientManifest4 = props.clientManifest) === null || _props$clientManifest4 === void 0 ? void 0 : _props$clientManifest4.entrypoints) != null ? _props$clientManifest3 : {}).forEach(entrypoint => {
305
+ var _entrypoint$assets;
312
306
 
313
- assetList.push(...assetMap((_entrypoint$assets = entrypoint.assets) != null ? _entrypoint$assets : []));
314
- });
315
- new Set(assetMap(Object.values((_props$clientManifest5 = props.clientManifest.namedChunkGroups) != null ? _props$clientManifest5 : {}).filter(({
316
- name
317
- }) => nextProps.matchedRoutes.some(route => name === null || name === void 0 ? void 0 : name.includes(route.name))).flatMap(chunk => {
318
- var _chunk$assets;
319
-
320
- return [...((_chunk$assets = chunk.assets) != null ? _chunk$assets : []), // any chunk preloads
321
- ...childrenAssets(chunk)];
322
- }))).forEach(asset => assetList.push(asset)); // find additional assets to preload based on matched route
323
-
324
- const assets = assetList.filter(asset => !asset.endsWith('.hot-update.js')).map(asset => asset.endsWith('.css') ? {
325
- href: asset,
326
- rel: 'stylesheet'
327
- } : asset.endsWith('.js') ? {
328
- href: asset,
329
- as: 'script'
330
- } : {
331
- href: asset
332
- });
333
- return { ...nextProps,
334
- app: /*#__PURE__*/external_react_default().createElement(Document, { ...options,
335
- title: (_nextProps$title = nextProps.title) != null ? _nextProps$title : options.title,
336
- assets: assets,
337
- rootId: options.rootId,
338
- nonce: props.nonce,
339
- csPolicy: options.csPolicy,
340
- scripts: nextProps.scripts,
341
- __self: this,
342
- __source: {
343
- fileName: document_server_jsxFileName,
344
- lineNumber: 56,
345
- columnNumber: 14
346
- }
347
- }, nextProps.app)
348
- };
307
+ assetList.push(...assetMap((_entrypoint$assets = entrypoint.assets) != null ? _entrypoint$assets : []));
308
+ });
309
+ new Set(assetMap(Object.values((_props$clientManifest5 = props.clientManifest.namedChunkGroups) != null ? _props$clientManifest5 : {}).filter(({
310
+ name
311
+ }) => nextProps.matchedRoutes.some(route => name === null || name === void 0 ? void 0 : name.includes(route.name))).flatMap(chunk => {
312
+ var _chunk$assets;
313
+
314
+ return [...((_chunk$assets = chunk.assets) != null ? _chunk$assets : []), // any chunk preloads
315
+ ...childrenAssets(chunk)];
316
+ }))).forEach(asset => assetList.push(asset)); // find additional assets to preload based on matched route
317
+
318
+ const assets = assetList.filter(asset => !asset.endsWith('.hot-update.js')).map(asset => asset.endsWith('.css') ? {
319
+ href: asset,
320
+ rel: 'stylesheet'
321
+ } : asset.endsWith('.js') ? {
322
+ href: asset,
323
+ as: 'script'
324
+ } : {
325
+ href: asset
326
+ });
327
+ return { ...nextProps,
328
+ app: /*#__PURE__*/external_react_default().createElement(Document, { ...options,
329
+ title: (_nextProps$title = nextProps.title) != null ? _nextProps$title : options.title,
330
+ assets: assets,
331
+ rootId: options.rootId,
332
+ nonce: props.nonce,
333
+ csPolicy: options.csPolicy,
334
+ scripts: nextProps.scripts,
335
+ __self: this,
336
+ __source: {
337
+ fileName: document_server_jsxFileName,
338
+ lineNumber: 55,
339
+ columnNumber: 12
340
+ }
341
+ }, nextProps.app)
349
342
  };
350
343
  };
351
344
  }
@@ -412,29 +405,27 @@ var restHooks_server_jsxFileName = "/home/ntucker/src/anansi/packages/core/src/s
412
405
  function restHooksSpout(options = {
413
406
  getManagers: () => [new core_namespaceObject.NetworkManager()]
414
407
  }) {
415
- return function (next) {
416
- return async props => {
417
- const [ServerCacheProvider, controller, store] = createPersistedStore(options.getManagers());
418
- const nextProps = await next({ ...props,
419
- controller,
420
- store
421
- });
422
- return { ...nextProps,
423
- initData: { ...nextProps.initData,
424
- resthooks: () => store.getState()
425
- },
426
- app: /*#__PURE__*/external_react_default().createElement(ServerCacheProvider, {
427
- __self: this,
428
- __source: {
429
- fileName: restHooks_server_jsxFileName,
430
- lineNumber: 36,
431
- columnNumber: 14
432
- }
433
- }, nextProps.app),
434
- // TODO: figure out how to only inject in next and not have to also put here
435
- controller,
436
- store
437
- };
408
+ return next => async props => {
409
+ const [ServerCacheProvider, controller, store] = createPersistedStore(options.getManagers());
410
+ const nextProps = await next({ ...props,
411
+ controller,
412
+ store
413
+ });
414
+ return { ...nextProps,
415
+ initData: { ...nextProps.initData,
416
+ resthooks: () => store.getState()
417
+ },
418
+ app: /*#__PURE__*/external_react_default().createElement(ServerCacheProvider, {
419
+ __self: this,
420
+ __source: {
421
+ fileName: restHooks_server_jsxFileName,
422
+ lineNumber: 33,
423
+ columnNumber: 12
424
+ }
425
+ }, nextProps.app),
426
+ // TODO: figure out how to only inject in next and not have to also put here
427
+ controller,
428
+ store
438
429
  };
439
430
  };
440
431
  }
@@ -458,37 +449,35 @@ function routerSpout(options) {
458
449
  __self: this,
459
450
  __source: {
460
451
  fileName: router_server_jsxFileName,
461
- lineNumber: 21,
452
+ lineNumber: 26,
462
453
  columnNumber: 9
463
454
  }
464
455
  }, children);
465
456
  };
466
457
 
467
- return function (next) {
468
- return async props => {
469
- const url = props.req.url || '';
470
- const router = options.createRouter((0,external_history_namespaceObject.createMemoryHistory)({
471
- initialEntries: [url]
472
- }));
473
- const matchedRoutes = router.getMatchedRoutes(url);
474
- const nextProps = await next({ ...props,
475
- matchedRoutes,
476
- router
477
- });
478
- const Router = createRouteComponent(router);
479
- return { ...nextProps,
480
- app: /*#__PURE__*/external_react_default().createElement(Router, {
481
- __self: this,
482
- __source: {
483
- fileName: router_server_jsxFileName,
484
- lineNumber: 52,
485
- columnNumber: 14
486
- }
487
- }, nextProps.app),
488
- // TODO: figure out how to only inject in next and not have to also put here
489
- matchedRoutes,
490
- router
491
- };
458
+ return next => async props => {
459
+ const url = props.req.url || '';
460
+ const router = options.createRouter((0,external_history_namespaceObject.createMemoryHistory)({
461
+ initialEntries: [url]
462
+ }));
463
+ const matchedRoutes = router.getMatchedRoutes(url);
464
+ const nextProps = await next({ ...props,
465
+ matchedRoutes,
466
+ router
467
+ });
468
+ const Router = createRouteComponent(router);
469
+ return { ...nextProps,
470
+ app: /*#__PURE__*/external_react_default().createElement(Router, {
471
+ __self: this,
472
+ __source: {
473
+ fileName: router_server_jsxFileName,
474
+ lineNumber: 49,
475
+ columnNumber: 12
476
+ }
477
+ }, nextProps.app),
478
+ // TODO: figure out how to only inject in next and not have to also put here
479
+ matchedRoutes,
480
+ router
492
481
  };
493
482
  };
494
483
  }
@@ -520,13 +509,12 @@ var json_server_jsxFileName = "/home/ntucker/src/anansi/packages/core/src/spouts
520
509
  function JSONSpout({
521
510
  id = 'anansi-json'
522
511
  } = {}) {
523
- return function (next) {
524
- return async props => {
525
- var _nextProps$scripts;
512
+ return next => async props => {
513
+ var _nextProps$scripts;
526
514
 
527
- const nextProps = await next(props);
528
- const scripts = (_nextProps$scripts = nextProps.scripts) != null ? _nextProps$scripts : [];
529
- /*
515
+ const nextProps = await next(props);
516
+ const scripts = (_nextProps$scripts = nextProps.scripts) != null ? _nextProps$scripts : [];
517
+ /*
530
518
  Object.entries(nextProps.initData ?? {}).forEach(([key, data]) => {
531
519
  try {
532
520
  const encoded = JSON.stringify(data);
@@ -547,49 +535,48 @@ function JSONSpout({
547
535
  }
548
536
  });*/
549
537
 
550
- const Script = () => {
551
- try {
552
- var _nextProps$initData;
538
+ const Script = () => {
539
+ try {
540
+ var _nextProps$initData;
553
541
 
554
- const data = {};
555
- Object.entries((_nextProps$initData = nextProps.initData) != null ? _nextProps$initData : {}).forEach(([key, getData]) => {
556
- data[key] = getData();
557
- });
558
- const encoded = JSON.stringify(data);
559
- return /*#__PURE__*/external_react_default().createElement("script", {
560
- key: id,
561
- id: id,
562
- type: "application/json",
563
- dangerouslySetInnerHTML: {
564
- __html: encoded
565
- },
566
- nonce: props.nonce,
567
- __self: this,
568
- __source: {
569
- fileName: json_server_jsxFileName,
570
- lineNumber: 48,
571
- columnNumber: 13
572
- }
573
- });
574
- } catch (e) {
575
- // TODO: Use unified logging
576
- console.error('Error serializing json');
577
- console.error(e);
578
- return null;
579
- }
580
- };
542
+ const data = {};
543
+ Object.entries((_nextProps$initData = nextProps.initData) != null ? _nextProps$initData : {}).forEach(([key, getData]) => {
544
+ data[key] = getData();
545
+ });
546
+ const encoded = JSON.stringify(data);
547
+ return /*#__PURE__*/external_react_default().createElement("script", {
548
+ key: id,
549
+ id: id,
550
+ type: "application/json",
551
+ dangerouslySetInnerHTML: {
552
+ __html: encoded
553
+ },
554
+ nonce: props.nonce,
555
+ __self: this,
556
+ __source: {
557
+ fileName: json_server_jsxFileName,
558
+ lineNumber: 49,
559
+ columnNumber: 11
560
+ }
561
+ });
562
+ } catch (e) {
563
+ // TODO: Use unified logging
564
+ console.error('Error serializing json');
565
+ console.error(e);
566
+ return null;
567
+ }
568
+ };
581
569
 
582
- scripts.push( /*#__PURE__*/external_react_default().createElement(Script, {
583
- __self: this,
584
- __source: {
585
- fileName: json_server_jsxFileName,
586
- lineNumber: 65,
587
- columnNumber: 20
588
- }
589
- }));
590
- return { ...nextProps,
591
- scripts
592
- };
570
+ scripts.push( /*#__PURE__*/external_react_default().createElement(Script, {
571
+ __self: this,
572
+ __source: {
573
+ fileName: json_server_jsxFileName,
574
+ lineNumber: 66,
575
+ columnNumber: 18
576
+ }
577
+ }));
578
+ return { ...nextProps,
579
+ scripts
593
580
  };
594
581
  };
595
582
  }
@@ -599,8 +586,6 @@ const appSpout = app => props => Promise.resolve({ ...props,
599
586
  });
600
587
 
601
588
  /* harmony default export */ const app_server = (appSpout);
602
- ;// CONCATENATED MODULE: ./src/spouts/types.ts
603
-
604
589
  ;// CONCATENATED MODULE: ./src/index.server.ts
605
590
 
606
591
 
@@ -609,7 +594,6 @@ const appSpout = app => props => Promise.resolve({ ...props,
609
594
 
610
595
 
611
596
 
612
-
613
597
  module.exports = __webpack_exports__;
614
598
  /******/ })()
615
599
  ;