From ee89737d723f14af4ded15bb01bf5c6db389bca0 Mon Sep 17 00:00:00 2001 From: cha0s Date: Mon, 29 Jan 2024 08:25:55 -0600 Subject: [PATCH] 9e663c5248dc542ae3cf324f0063498a59f38ffd --- 404.html | 2 +- assets/js/72512343.41c505c1.js | 1 + assets/js/72512343.b4528359.js | 1 - ...n.71b5c3e4.js => runtime~main.ccecf166.js} | 2 +- docs/adding-flecks/index.html | 2 +- docs/category/generated-details/index.html | 2 +- docs/category/getting-started/index.html | 2 +- docs/category/guides/index.html | 2 +- docs/category/writing-your-code/index.html | 2 +- docs/cli/index.html | 2 +- docs/configuration/index.html | 2 +- docs/creating-a-fleck/index.html | 2 +- docs/database/index.html | 2 +- docs/docker/index.html | 2 +- docs/documentation/index.html | 2 +- docs/electron/index.html | 2 +- docs/environment/index.html | 2 +- docs/flecks/build-files/index.html | 2 +- docs/flecks/config/index.html | 2 +- docs/flecks/hooks/index.html | 104 +++++++++--------- docs/flecks/todos/index.html | 2 +- docs/gathering/index.html | 2 +- docs/hooks/index.html | 2 +- docs/index.html | 2 +- docs/installation/index.html | 2 +- docs/isomorphism/index.html | 2 +- docs/ordering/index.html | 2 +- docs/react/index.html | 2 +- docs/redux/index.html | 2 +- docs/repl/index.html | 2 +- docs/sockets/index.html | 2 +- docs/testing/index.html | 2 +- index.html | 2 +- 33 files changed, 83 insertions(+), 83 deletions(-) create mode 100644 assets/js/72512343.41c505c1.js delete mode 100644 assets/js/72512343.b4528359.js rename assets/js/{runtime~main.71b5c3e4.js => runtime~main.ccecf166.js} (98%) diff --git a/404.html b/404.html index 3102360b..54d3c2fb 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | flecks - + diff --git a/assets/js/72512343.41c505c1.js b/assets/js/72512343.41c505c1.js new file mode 100644 index 00000000..588a3f42 --- /dev/null +++ b/assets/js/72512343.41c505c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkflecks_docusaurus=self.webpackChunkflecks_docusaurus||[]).push([[5679],{6057:(e,s,c)=>{c.r(s),c.d(s,{assets:()=>o,contentTitle:()=>d,default:()=>x,frontMatter:()=>i,metadata:()=>t,toc:()=>h});var r=c(5893),n=c(1151),l=c(7113);const i={title:"Hooks",description:"All the hooks in this project."},d=void 0,t={id:"flecks/hooks",title:"Hooks",description:"All the hooks in this project.",source:"@site/docs/flecks/hooks.mdx",sourceDirName:"flecks",slug:"/flecks/hooks",permalink:"/flecks/docs/flecks/hooks",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Hooks",description:"All the hooks in this project."},sidebar:"flecksSidebar",previous:{title:"Generated details",permalink:"/flecks/docs/category/generated-details"},next:{title:"Fleck configuration",permalink:"/flecks/docs/flecks/config"}},o={},h=[{value:"@flecks/build.commands",id:"flecksbuildcommands",level:2},{value:"Example usage",id:"example-usage",level:3},{value:"program: Command",id:"program-command",level:3},{value:"@flecks/build.config",id:"flecksbuildconfig",level:2},{value:"Example usage",id:"example-usage-1",level:3},{value:"target: string",id:"target-string",level:3},{value:"config: Object",id:"config-object",level:3},{value:"env: Object",id:"env-object",level:3},{value:"argv: Object",id:"argv-object",level:3},{value:"@flecks/build.config.alter",id:"flecksbuildconfigalter",level:2},{value:"Example usage",id:"example-usage-2",level:3},{value:"configs: Object",id:"configs-object",level:3},{value:"env: Object",id:"env-object-1",level:3},{value:"argv: Object",id:"argv-object-1",level:3},{value:"@flecks/build.extensions",id:"flecksbuildextensions",level:2},{value:"Example usage",id:"example-usage-3",level:3},{value:"@flecks/build.files",id:"flecksbuildfiles",level:2},{value:"Example usage",id:"example-usage-4",level:3},{value:"@flecks/build.processAssets",id:"flecksbuildprocessassets",level:2},{value:"Example usage",id:"example-usage-5",level:3},{value:"target: string",id:"target-string-1",level:3},{value:"assets: Record<string, Source>",id:"assets-recordstring-source",level:3},{value:"compilation: Compilation",id:"compilation-compilation",level:3},{value:"@flecks/build.targets",id:"flecksbuildtargets",level:2},{value:"Example usage",id:"example-usage-6",level:3},{value:"@flecks/build.targets.alter",id:"flecksbuildtargetsalter",level:2},{value:"Example usage",id:"example-usage-7",level:3},{value:"targets: Set<string>",id:"targets-setstring",level:3},{value:"@flecks/core.babel",id:"fleckscorebabel",level:2},{value:"Example usage",id:"example-usage-8",level:3},{value:"@flecks/core.config",id:"fleckscoreconfig",level:2},{value:"Example usage",id:"example-usage-9",level:3},{value:"@flecks/core.gathered",id:"fleckscoregathered",level:2},{value:"Example usage",id:"example-usage-10",level:3},{value:"@flecks/core.hmr",id:"fleckscorehmr",level:2},{value:"Example usage",id:"example-usage-11",level:3},{value:"path: string",id:"path-string",level:3},{value:"updatedFleck: Module",id:"updatedfleck-module",level:3},{value:"@flecks/core.hmr.gathered",id:"fleckscorehmrgathered",level:2},{value:"Example usage",id:"example-usage-12",level:3},{value:"gathered: constructor",id:"gathered-constructor",level:3},{value:"hook: string",id:"hook-string",level:3},{value:"@flecks/core.hmr.gathered.class",id:"fleckscorehmrgatheredclass",level:2},{value:"Example usage",id:"example-usage-13",level:3},{value:"Class: constructor",id:"class-constructor",level:3},{value:"hook: string",id:"hook-string-1",level:3},{value:"@flecks/core.priority",id:"fleckscorepriority",level:2},{value:"Example usage",id:"example-usage-14",level:3},{value:"graph: Digraph",id:"graph-digraph",level:3},{value:"hook: string",id:"hook-string-2",level:3},{value:"@flecks/core.registered",id:"fleckscoreregistered",level:2},{value:"Example usage",id:"example-usage-15",level:3},{value:"fleck: string",id:"fleck-string",level:3},{value:"M: Module",id:"m-module",level:3},{value:"@flecks/core.starting",id:"fleckscorestarting",level:2},{value:"Example usage",id:"example-usage-16",level:3},{value:"@flecks/db.models",id:"flecksdbmodels",level:2},{value:"Example usage",id:"example-usage-17",level:3},{value:"@flecks/db.models.decorate",id:"flecksdbmodelsdecorate",level:2},{value:"Example usage",id:"example-usage-18",level:3},{value:"Model: constructor",id:"model-constructor",level:3},{value:"@flecks/docker.Dockerfile",id:"flecksdockerdockerfile",level:2},{value:"Example usage",id:"example-usage-19",level:3},{value:"dockerfile: string",id:"dockerfile-string",level:3},{value:"@flecks/docker.containers",id:"flecksdockercontainers",level:2},{value:"Example usage",id:"example-usage-20",level:3},{value:"@flecks/docker.docker-compose.yml",id:"flecksdockerdocker-composeyml",level:2},{value:"Example usage",id:"example-usage-21",level:3},{value:"config: Object",id:"config-object-1",level:3},{value:"@flecks/electron/server.browserWindowOptions.alter",id:"fleckselectronserverbrowserwindowoptionsalter",level:2},{value:"Example usage",id:"example-usage-22",level:3},{value:"browserWindowOptions: BrowserWindowConstructorOptions",id:"browserwindowoptions-browserwindowconstructoroptions",level:3},{value:"@flecks/electron/server.extensions",id:"fleckselectronserverextensions",level:2},{value:"Example usage",id:"example-usage-23",level:3},{value:"installer: Installer",id:"installer-installer",level:3},{value:"@flecks/electron/server.initialize",id:"fleckselectronserverinitialize",level:2},{value:"Example usage",id:"example-usage-24",level:3},{value:"electron: Electron",id:"electron-electron",level:3},{value:"@flecks/electron/server.window",id:"fleckselectronserverwindow",level:2},{value:"Example usage",id:"example-usage-25",level:3},{value:"win: Electron.BrowserWindow",id:"win-electronbrowserwindow",level:3},{value:"@flecks/fleck.packageJson",id:"flecksfleckpackagejson",level:2},{value:"Example usage",id:"example-usage-26",level:3},{value:"json: Object",id:"json-object",level:3},{value:"compilation: Compilation",id:"compilation-compilation-1",level:3},{value:"@flecks/passport-react.strategies",id:"fleckspassport-reactstrategies",level:2},{value:"Example usage",id:"example-usage-27",level:3},{value:"@flecks/passport.strategies",id:"fleckspassportstrategies",level:2},{value:"Example usage",id:"example-usage-28",level:3},{value:"passport: Passport",id:"passport-passport",level:3},{value:"@flecks/react.providers",id:"flecksreactproviders",level:2},{value:"Example usage",id:"example-usage-29",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest",level:3},{value:"@flecks/react.roots",id:"flecksreactroots",level:2},{value:"Example usage",id:"example-usage-30",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest-1",level:3},{value:"@flecks/redux.effects",id:"flecksreduxeffects",level:2},{value:"Example usage",id:"example-usage-31",level:3},{value:"@flecks/redux.reducers",id:"flecksreduxreducers",level:2},{value:"Example usage",id:"example-usage-32",level:3},{value:"@flecks/redux.slices",id:"flecksreduxslices",level:2},{value:"Example usage",id:"example-usage-33",level:3},{value:"@flecks/redux.store",id:"flecksreduxstore",level:2},{value:"Example usage",id:"example-usage-34",level:3},{value:"options: Object",id:"options-object",level:3},{value:"@flecks/repl.commands",id:"flecksreplcommands",level:2},{value:"Example usage",id:"example-usage-35",level:3},{value:"@flecks/repl.context",id:"flecksreplcontext",level:2},{value:"Example usage",id:"example-usage-36",level:3},{value:"@flecks/server.runtime",id:"flecksserverruntime",level:2},{value:"Example usage",id:"example-usage-37",level:3},{value:"@flecks/server.up",id:"flecksserverup",level:2},{value:"Example usage",id:"example-usage-38",level:3},{value:"@flecks/session.config",id:"fleckssessionconfig",level:2},{value:"Example usage",id:"example-usage-39",level:3},{value:"@flecks/socket.client",id:"fleckssocketclient",level:2},{value:"Example usage",id:"example-usage-40",level:3},{value:"@flecks/socket.intercom",id:"fleckssocketintercom",level:2},{value:"Example usage",id:"example-usage-41",level:3},{value:"@flecks/socket.packets",id:"fleckssocketpackets",level:2},{value:"Example usage",id:"example-usage-42",level:3},{value:"@flecks/socket.packets.decorate",id:"fleckssocketpacketsdecorate",level:2},{value:"Example usage",id:"example-usage-43",level:3},{value:"Packet: constructor",id:"packet-constructor",level:3},{value:"@flecks/socket.server",id:"fleckssocketserver",level:2},{value:"Example usage",id:"example-usage-44",level:3},{value:"@flecks/socket/server.connect",id:"fleckssocketserverconnect",level:2},{value:"Example usage",id:"example-usage-45",level:3},{value:"socket: ServerSocket",id:"socket-serversocket",level:3},{value:"@flecks/socket/server.io",id:"fleckssocketserverio",level:2},{value:"Example usage",id:"example-usage-46",level:3},{value:"io: SocketIo",id:"io-socketio",level:3},{value:"@flecks/socket/server.request.socket",id:"fleckssocketserverrequestsocket",level:2},{value:"Example usage",id:"example-usage-47",level:3},{value:"@flecks/web.config",id:"fleckswebconfig",level:2},{value:"Example usage",id:"example-usage-48",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest-2",level:3},{value:"@flecks/web.routes",id:"fleckswebroutes",level:2},{value:"Example usage",id:"example-usage-49",level:3},{value:"@flecks/web/client.up",id:"fleckswebclientup",level:2},{value:"Example usage",id:"example-usage-50",level:3},{value:"@flecks/web/server.request.route",id:"fleckswebserverrequestroute",level:2},{value:"Example usage",id:"example-usage-51",level:3},{value:"@flecks/web/server.request.socket",id:"fleckswebserverrequestsocket",level:2},{value:"Example usage",id:"example-usage-52",level:3},{value:"@flecks/web/server.stream.html",id:"fleckswebserverstreamhtml",level:2},{value:"Example usage",id:"example-usage-53",level:3},{value:"stream: stream.Readable",id:"stream-streamreadable",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest-3",level:3},{value:"@flecks/web/server.up",id:"fleckswebserverup",level:2},{value:"Example usage",id:"example-usage-54",level:3}];function a(e){const s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.p,{children:"This page documents all the hooks in this project."}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildcommands",children:(0,r.jsx)(s.code,{children:"@flecks/build.commands"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define CLI commands."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.commands': (program, flecks) => {\n return {\n // So this could be invoked like:\n // npx flecks something -t --blow-up blah\n something: {\n action: (...args) => {\n // Run the command...\n },\n args: [\n program.createArgument('', 'some argument'),\n ],\n description: 'This command does tests and also blows up',\n options: [\n program.createOption('-t, --test', 'Do a test'),\n program.createOption('-b, --blow-up', 'Blow up instead of running the command'),\n ],\n },\n };\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"program-command",children:(0,r.jsxs)("code",{children:["program: ",(0,r.jsx)(s.a,{href:"https://github.com/tj/commander.js/tree/master#declaring-program-variable",children:"Command"})]})}),"\n",(0,r.jsxs)("p",{children:["The ",(0,r.jsx)(s.a,{href:"https://github.com/tj/commander.js",children:"Commander.js"})," program."]}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L14",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:14:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/dox/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"dox"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L6",children:["@flecks/",(0,r.jsx)(s.strong,{children:"fleck"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:6:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"repl"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/cli.js#L44",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/cli.js:44:25"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildconfig",children:(0,r.jsx)(s.code,{children:"@flecks/build.config"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Hook into webpack configuration."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-1",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.config': (target, config, env, argv) => {\n if ('something' === target) {\n if ('production' === argv.mode) {\n config.plugins.push(new SomePlugin());\n }\n }\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"target-string",children:(0,r.jsx)("code",{children:"target: string"})}),"\n",(0,r.jsxs)("p",{children:["The build target; e.g. ",(0,r.jsx)(s.code,{children:"server"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"config-object",children:(0,r.jsx)("code",{children:"config: Object"})}),"\n",(0,r.jsx)("p",{children:"The webpack configuration."}),"\n",(0,r.jsx)(s.h3,{id:"env-object",children:(0,r.jsx)("code",{children:"env: Object"})}),"\n",(0,r.jsx)("p",{children:"The webpack environment."}),"\n",(0,r.jsx)(s.h3,{id:"argv-object",children:(0,r.jsx)("code",{children:"argv: Object"})}),"\n",(0,r.jsx)("p",{children:"The webpack commandline arguments."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L15",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:15:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"docker"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/build/flecks.bootstrap.js#L22",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:22:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L14",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:14:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L113",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/build.js:113:10"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildconfigalter",children:(0,r.jsx)(s.code,{children:"@flecks/build.config.alter"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Alter build configurations after they have been hooked."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-2",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.config.alter': (configs) => {\n // Maybe we want to do something if a target exists..?\n if (configs.someTarget) {\n configs.plugins.push('...');\n }\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"configs-object",children:(0,r.jsx)("code",{children:"configs: Object"})}),"\n",(0,r.jsx)("p",{children:"The webpack configurations keyed by target."}),"\n",(0,r.jsx)(s.h3,{id:"env-object-1",children:(0,r.jsx)("code",{children:"env: Object"})}),"\n",(0,r.jsx)("p",{children:"The webpack environment."}),"\n",(0,r.jsx)(s.h3,{id:"argv-object-1",children:(0,r.jsx)("code",{children:"argv: Object"})}),"\n",(0,r.jsx)("p",{children:"The webpack commandline arguments."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"server"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L112",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:112:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L116",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/build.js:116:10"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildextensions",children:(0,r.jsx)(s.code,{children:"@flecks/build.extensions"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokeflat",children:"invokeFlat"})})}),"\n",(0,r.jsx)(s.p,{children:"Add implicitly resolved extensions."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-3",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.extensions': () => ['.coffee']\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L13",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:13:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/webpack.js#L23",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/webpack.js:23:21"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildfiles",children:(0,r.jsx)(s.code,{children:"@flecks/build.files"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsxs)(s.p,{children:["Register build files. See ",(0,r.jsx)(s.a,{href:"./build-files",children:"the build files page"})," for more details."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-4",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.files': () => [\n /**\n * If you document your build files like this, documentation will be automatically generated.\n */\n '.myrc.js',\n ]\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L22",children:["@flecks/",(0,r.jsx)(s.strong,{children:"server"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:22:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L192",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:192:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L152",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/build.js:152:19"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildprocessassets",children:(0,r.jsx)(s.code,{children:"@flecks/build.processAssets"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Process assets during a compilation."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-5",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.processAssets': (target, assets, compilation) => {\n if (this.myTargets.includes(target)) {\n assets['my-file.js'] = new compilation.compiler.webpack.sources.RawSource('content');\n }\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"target-string-1",children:(0,r.jsx)("code",{children:"target: string"})}),"\n",(0,r.jsx)("p",{children:"The build target."}),"\n",(0,r.jsx)(s.h3,{id:"assets-recordstring-source",children:(0,r.jsx)("code",{children:"assets: Record"})}),"\n",(0,r.jsx)("p",{children:"The assets."}),"\n",(0,r.jsx)(s.h3,{id:"compilation-compilation",children:(0,r.jsxs)("code",{children:["compilation: ",(0,r.jsx)(s.a,{href:"https://webpack.js.org/api/compilation-object/",children:"Compilation"})]})}),"\n",(0,r.jsx)("p",{children:"The webpack compilation."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L17",children:["@flecks/",(0,r.jsx)(s.strong,{children:"fleck"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:17:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/process-assets.js#L24",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/process-assets.js:24:16"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildtargets",children:(0,r.jsx)(s.code,{children:"@flecks/build.targets"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsx)(s.p,{children:"Define build targets."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-6",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.targets': () => ['sometarget']\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L16",children:["@flecks/",(0,r.jsx)(s.strong,{children:"fleck"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:16:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L53",children:["@flecks/",(0,r.jsx)(s.strong,{children:"server"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:53:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L295",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:295:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L250",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/build.js:250:20"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksbuildtargetsalter",children:(0,r.jsx)(s.code,{children:"@flecks/build.targets.alter"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsx)(s.p,{children:"Alter defined build targets."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-7",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.targets.alter': (targets) => {\n targets.delete('some-target');\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"targets-setstring",children:(0,r.jsx)("code",{children:"targets: Set"})}),"\n",(0,r.jsx)("p",{children:"The targets to build."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L54",children:["@flecks/",(0,r.jsx)(s.strong,{children:"server"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:54:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L299",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:299:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L272",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/build.js:272:4"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckscorebabel",children:(0,r.jsx)(s.code,{children:"@flecks/core.babel"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Babel configuration."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-8",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.babel': () => ({\n plugins: ['...'],\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/build/flecks.bootstrap.js#L16",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:16:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L69",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/build.js:69:15"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckscoreconfig",children:(0,r.jsx)(s.code,{children:"@flecks/core.config"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokefleck",children:"invokeFleck"})})}),"\n",(0,r.jsxs)(s.p,{children:["Define configuration. See ",(0,r.jsx)(s.a,{href:"./config",children:"the configuration page"})," for more details."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-9",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.config': () => ({\n whatever: 'configuration',\n your: 1337,\n fleck: 'needs',\n /**\n * Also, comments like this will be used to automatically generate documentation.\n */\n though: 'you should keep the values serializable',\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L51",children:["@flecks/",(0,r.jsx)(s.strong,{children:"build"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:51:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.bootstrap.js#L8",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:8:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/index.js#L2",children:["@flecks/",(0,r.jsx)(s.strong,{children:"db"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:2:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/flecks.bootstrap.js#L10",children:["@flecks/",(0,r.jsx)(s.strong,{children:"docker"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:10:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/dox/build/flecks.bootstrap.js#L5",children:["@flecks/",(0,r.jsx)(s.strong,{children:"dox"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:5:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L7",children:["@flecks/",(0,r.jsx)(s.strong,{children:"fleck"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:7:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/index.js#L8",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:8:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/index.js#L15",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:15:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/index.js#L2",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redis"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:2:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,r.jsx)(s.strong,{children:"server"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L9",children:["@flecks/",(0,r.jsx)(s.strong,{children:"session"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:9:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L214",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:214:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L103",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.js:103:9"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckscoregathered",children:(0,r.jsx)(s.code,{children:"@flecks/core.gathered"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Let flecks gather for you."}),"\n",(0,r.jsxs)(s.p,{children:["See ",(0,r.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-10",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.gathered': () => ({\n // If this hook is implemented by a fleck called `@some/fleck`, then:\n //\n // This is equivalent to flecks.gather('@some/fleck.somethings'):\n somethings: {},\n //\n // This is equivalent to flecks.gather('@some/fleck.others', {typeProperty: 'name'}):\n others: {\n typeProperty: 'name',\n },\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/index.js#L30",children:["@flecks/",(0,r.jsx)(s.strong,{children:"db"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:30:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/index.js#L11",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:11:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L436",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.js:436:28"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckscorehmr",children:(0,r.jsx)(s.code,{children:"@flecks/core.hmr"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when a fleck is HMR'd"}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-11",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.hmr': (path, updatedFleck) => {\n if ('my-fleck' === path) {\n updatedFleck.doSomething();\n }\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"path-string",children:(0,r.jsx)("code",{children:"path: string"})}),"\n",(0,r.jsx)("p",{children:"The path of the fleck"}),"\n",(0,r.jsx)(s.h3,{id:"updatedfleck-module",children:(0,r.jsx)("code",{children:"updatedFleck: Module"})}),"\n",(0,r.jsx)("p",{children:"The updated fleck module."}),"\n",(0,r.jsx)(s.h2,{id:"fleckscorehmrgathered",children:(0,r.jsx)(s.code,{children:"@flecks/core.hmr.gathered"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when a gathered set is HMR'd."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-12",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.hmr.gathered': (gathered, hook) => {\n // Do something with the gathered set...\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"gathered-constructor",children:(0,r.jsx)("code",{children:"gathered: constructor"})}),"\n",(0,r.jsx)("p",{children:"The gathered set."}),"\n",(0,r.jsx)(s.h3,{id:"hook-string",children:(0,r.jsx)("code",{children:"hook: string"})}),"\n",(0,r.jsxs)("p",{children:["The gather hook; e.g. ",(0,r.jsx)(s.code,{children:"@flecks/db.models"}),"."]}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/server.js#L19",children:["@flecks/",(0,r.jsx)(s.strong,{children:"db"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:19:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L874",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.js:874:12"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckscorehmrgatheredclass",children:(0,r.jsx)(s.code,{children:"@flecks/core.hmr.gathered.class"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when a gathered class is HMR'd."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-13",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.hmr.gathered.class': (Class, hook) => {\n // Do something with Class...\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"class-constructor",children:(0,r.jsx)("code",{children:"Class: constructor"})}),"\n",(0,r.jsx)("p",{children:"The class."}),"\n",(0,r.jsx)(s.h3,{id:"hook-string-1",children:(0,r.jsx)("code",{children:"hook: string"})}),"\n",(0,r.jsxs)("p",{children:["The gather hook; e.g. ",(0,r.jsx)(s.code,{children:"@flecks/db.models"}),"."]}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L872",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.js:872:14"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckscorepriority",children:(0,r.jsx)(s.code,{children:"@flecks/core.priority"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when flecks is building a fleck dependency graph."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-14",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.priority': (graph, hook) => {\n // Make `@flecks/socket/server`'s `@flecks/server.up` implementation depend on\n // `@flecks/db/server`'s:\n if ('@flecks/server.up' === hook) {\n graph.addDependency('@flecks/socket/server', '@flecks/db/server');\n // Remove a dependency.\n graph.removeDependency('@flecks/socket/server', '@flecks/db/server');\n }\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"graph-digraph",children:(0,r.jsx)("code",{children:"graph: Digraph"})}),"\n",(0,r.jsx)("p",{children:"The dependency graph."}),"\n",(0,r.jsx)(s.h3,{id:"hook-string-2",children:(0,r.jsx)("code",{children:"hook: string"})}),"\n",(0,r.jsxs)("p",{children:["The hook; e.g. ",(0,r.jsx)(s.code,{children:"@flecks/server.up"}),"."]}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/session/server.js#L14",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redis"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/session/server.js:14:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L355",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.js:355:4"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckscoreregistered",children:(0,r.jsx)(s.code,{children:"@flecks/core.registered"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when a fleck is registered."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-15",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.registered': (fleck, M) => {\n if ('@something/or-other' === fleck) {\n doSomethingWith(M);\n }\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"fleck-string",children:(0,r.jsx)("code",{children:"fleck: string"})}),"\n",(0,r.jsx)("p",{}),"\n",(0,r.jsx)(s.h3,{id:"m-module",children:(0,r.jsx)("code",{children:"M: Module"})}),"\n",(0,r.jsx)("p",{}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L89",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.js:89:6"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckscorestarting",children:(0,r.jsx)(s.code,{children:"@flecks/core.starting"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when the application is starting."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-16",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.starting': () => {\n console.log('starting!');\n }\n};\n"})}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/build/entry.js#L59",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/build/entry.js:59:22"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"flecksdbmodels",children:(0,r.jsx)(s.code,{children:"@flecks/db.models"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Gather database models."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-17",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/db.models': Flecks.provide(require.context('./models', false, /\\.js$/))\n};\n"})}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L8",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:8:2"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"flecksdbmodelsdecorate",children:(0,r.jsx)(s.code,{children:"@flecks/db.models.decorate"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokecomposedasync",children:"invokeComposedAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Decorate database models."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-18",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/db.models.decorate': Flecks.decorate(require.context('./models/decorators', false, /\\.js$/))\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"model-constructor",children:(0,r.jsx)("code",{children:"Model: constructor"})}),"\n",(0,r.jsx)("p",{children:"The model to decorate."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local/src/server/index.js#L7",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport-local"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:7:2"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"flecksdockerdockerfile",children:(0,r.jsx)(s.code,{children:"@flecks/docker.Dockerfile"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokecomposedasync",children:"invokeComposedAsync"})})}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-19",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/docker.Dockerfile': (dockerfile) => (\n dockerfile.replace('DEBUG=*', 'DEBUG=*,-*:silly')\n )\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"dockerfile-string",children:(0,r.jsx)("code",{children:"dockerfile: string"})}),"\n",(0,r.jsx)("p",{children:"The content of the Dockerfile."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/generate.js#L19",children:["@flecks/",(0,r.jsx)(s.strong,{children:"docker"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/generate.js:19:9"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"flecksdockercontainers",children:(0,r.jsx)(s.code,{children:"@flecks/docker.containers"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define docker containers."}),"\n",(0,r.jsx)(s.admonition,{type:"warning",children:(0,r.jsxs)(s.p,{children:["The user running the server must have Docker privileges.\nSee: ",(0,r.jsx)(s.a,{href:"https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user",children:"https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user"})]})}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-20",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/docker.containers': () => ({\n someContainer: {\n // Environment variables.\n environment: {\n SOME_CONTAINER_VAR: 'hello',\n },\n // The docker image.\n image: 'some-image:latest',\n // Some container path you'd like to persist. Flecks handles the host path.\n mount: '/some/container/path',\n // Expose ports.\n ports: {3000: 3000},\n },\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/server.js#L24",children:["@flecks/",(0,r.jsx)(s.strong,{children:"db"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:24:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/server.js#L33",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redis"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:33:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/generate.js#L39",children:["@flecks/",(0,r.jsx)(s.strong,{children:"docker"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/generate.js:39:27"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/src/server.js#L8",children:["@flecks/",(0,r.jsx)(s.strong,{children:"docker"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:8:29"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksdockerdocker-composeyml",children:(0,r.jsx)(s.code,{children:"@flecks/docker.docker-compose.yml"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-21",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/docker.docker-compose.yml': (config) => {\n config.version = '3.1';\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"config-object-1",children:(0,r.jsx)("code",{children:"config: Object"})}),"\n",(0,r.jsx)("p",{children:"The object representing the docker compose configuration."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/generate.js#L72",children:["@flecks/",(0,r.jsx)(s.strong,{children:"docker"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/generate.js:72:8"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckselectronserverbrowserwindowoptionsalter",children:(0,r.jsx)(s.code,{children:"@flecks/electron/server.browserWindowOptions.alter"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Alter the options for initialization of the Electron browser window."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-22",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.browserWindowOptions.alter': (browserWindowOptions) => {\n browserWindowOptions.icon = 'cute-kitten.png';\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"browserwindowoptions-browserwindowconstructoroptions",children:(0,r.jsxs)("code",{children:["browserWindowOptions: ",(0,r.jsx)(s.a,{href:"https://www.electronjs.org/docs/latest/api/structures/browser-window-options",children:"BrowserWindowConstructorOptions"})]})}),"\n",(0,r.jsx)("p",{children:"The options."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L10",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:10:8"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckselectronserverextensions",children:(0,r.jsx)(s.code,{children:"@flecks/electron/server.extensions"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokeflat",children:"invokeFlat"})})}),"\n",(0,r.jsx)(s.p,{children:"Extensions to install."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-23",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.extensions': (installer) => [\n // Some defaults provided...\n installer.BACKBONE_DEBUGGER,\n // By ID (Tamper Monkey):\n 'dhdgffkkebhmkfjojejmpbldmpobfkfo',\n ]\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"installer-installer",children:(0,r.jsxs)("code",{children:["installer: ",(0,r.jsx)(s.a,{href:"https://github.com/MarshallOfSound/electron-devtools-installer",children:"Installer"})]})}),"\n",(0,r.jsx)("p",{children:"The installer."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/server.js#L6",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:6:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/server.js#L11",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:11:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L47",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:47:11"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckselectronserverinitialize",children:(0,r.jsx)(s.code,{children:"@flecks/electron/server.initialize"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when electron is initializing."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-24",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.initialize': (electron) => {\n electron.app.on('will-quit', () => {\n // ...\n });\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"electron-electron",children:(0,r.jsx)("code",{children:"electron: Electron"})}),"\n",(0,r.jsx)("p",{children:"The electron module."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L19",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:19:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L61",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:61:14"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckselectronserverwindow",children:(0,r.jsx)(s.code,{children:"@flecks/electron/server.window"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Invoked when a window is created"}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-25",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.window': (win) => {\n win.maximize();\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"win-electronbrowserwindow",children:(0,r.jsx)("code",{children:"win: Electron.BrowserWindow"})}),"\n",(0,r.jsxs)("p",{children:["The electron browser window. See: ",(0,r.jsx)(s.a,{href:"https://www.electronjs.org/docs/latest/api/browser-window",children:"https://www.electronjs.org/docs/latest/api/browser-window"})]}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L39",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:39:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L15",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:15:8"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksfleckpackagejson",children:(0,r.jsx)(s.code,{children:"@flecks/fleck.packageJson"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsxs)(s.p,{children:["Process the ",(0,r.jsx)(s.code,{children:"package.json"})," for a built fleck."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-26",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/fleck.packageJson': (json, compilation) => {\n json.files.push('something');\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"json-object",children:(0,r.jsx)("code",{children:"json: Object"})}),"\n",(0,r.jsx)("p",{children:"The JSON."}),"\n",(0,r.jsx)(s.h3,{id:"compilation-compilation-1",children:(0,r.jsxs)("code",{children:["compilation: ",(0,r.jsx)(s.a,{href:"https://webpack.js.org/api/compilation-object/",children:"Compilation"})]})}),"\n",(0,r.jsx)("p",{children:"The webpack compilation."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L305",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:305:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L20",children:["@flecks/",(0,r.jsx)(s.strong,{children:"fleck"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:20:8"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckspassport-reactstrategies",children:(0,r.jsx)(s.code,{children:"@flecks/passport-react.strategies"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeunique",children:"invokeMergeUnique"})})}),"\n",(0,r.jsx)(s.p,{children:"Define React components for login strategies."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-27",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/passport-react.strategies': () => ({\n MyService: SomeBeautifulComponent,\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local-react/src/index.js#L6",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport-local-react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:6:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-react/src/login.jsx#L11",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport-react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/login.jsx:11:36"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckspassportstrategies",children:(0,r.jsx)(s.code,{children:"@flecks/passport.strategies"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,r.jsxs)(s.p,{children:["Define passport login strategies. See: ",(0,r.jsx)(s.a,{href:"https://www.passportjs.org/concepts/authentication/strategies/",children:"https://www.passportjs.org/concepts/authentication/strategies/"})]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-28",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/passport.strategies': (passport) => ({\n MyService: SomeStrategy,\n })\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"passport-passport",children:(0,r.jsx)("code",{children:"passport: Passport"})}),"\n",(0,r.jsx)("p",{children:"The passport instance."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local/src/server/index.js#L8",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport-local"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:8:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L44",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:44:26"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksreactproviders",children:(0,r.jsx)(s.code,{children:"@flecks/react.providers"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define React Providers."}),"\n",(0,r.jsxs)(s.p,{children:["Note: ",(0,r.jsx)(s.code,{children:"req"})," will be only be defined when server-side rendering."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-29",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/react.providers': (req) => {\n // Generally it makes more sense to separate client and server concerns using platform\n // naming conventions, but this is just a small contrived example.\n return req ? serverSideProvider(req) : clientSideProvider();\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"req-httpclientrequest",children:(0,r.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,r.jsx)("p",{children:"The HTTP request object."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react-redux/src/client.js#L5",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react-redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client.js:5:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react-redux/src/server.js#L5",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react-redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:5:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/client.js#L7",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/router/client.js:7:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/server.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/router/server.js:4:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/root.js#L15",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/root.js:15:26"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksreactroots",children:(0,r.jsx)(s.code,{children:"@flecks/react.roots"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,r.jsxs)(s.p,{children:["Define root-level React components that are mounted as siblings on ",(0,r.jsx)(s.code,{children:"#main"}),".\nNote: ",(0,r.jsx)(s.code,{children:"req"})," will be only be defined when server-side rendering."]}),"\n",(0,r.jsx)(s.p,{children:"Return either a React component or an array whose elements must either be a React component\nor an array of two elements where the first element is the component and the second element\nis the props passed to the component."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-30",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/react.roots': (req) => {\n // Note that we're not returning ``, but `Component`.\n return [\n Component,\n [SomeOtherComponent, {prop: 'value'}]\n ];\n // You can also just:\n return Component;\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"req-httpclientrequest-1",children:(0,r.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,r.jsx)("p",{children:"The HTTP request object."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/root.js#L13",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/root.js:13:22"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"flecksreduxeffects",children:(0,r.jsx)(s.code,{children:"@flecks/redux.effects"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define side-effects to run against Redux actions."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-31",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.effects': () => ({\n someActionName: (store, action) => {\n // Runs when `someActionName` actions are dispatched.\n },\n })\n};\n"})}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/store/middleware/effects.js#L2",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/store/middleware/effects.js:2:24"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"flecksreduxreducers",children:(0,r.jsx)(s.code,{children:"@flecks/redux.reducers"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define root-level reducers for the Redux store."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-32",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.reducers': () => {\n return (state, action) => {\n // Whatever you'd like.\n return state;\n };\n }\n};\n"})}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/store/create-reducer.js#L5",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/store/create-reducer.js:5:23"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"flecksreduxslices",children:(0,r.jsx)(s.code,{children:"@flecks/redux.slices"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define Redux slices."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"https://redux-toolkit.js.org/api/createSlice",children:"https://redux-toolkit.js.org/api/createSlice"})]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-33",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.slices': () => {\n const something = createSlice(\n // ...\n );\n return {\n something: something.reducer,\n };\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/index.js#L22",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:22:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/index.js#L8",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/router/index.js:8:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L9",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client/index.js:9:27"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/server.js#L13",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:13:25"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksreduxstore",children:(0,r.jsx)(s.code,{children:"@flecks/redux.store"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Modify Redux store configuration."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-34",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.store': (options) => {\n options.enhancers.splice(someIndex, 1);\n options.middleware.push(mySpecialMiddleware);\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"options-object",children:(0,r.jsx)("code",{children:"options: Object"})}),"\n",(0,r.jsx)("p",{children:"A mutable object with keys for enhancers and middleware."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/index.js#L11",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/router/index.js:11:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L18",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client/index.js:18:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/store/index.js#L17",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/store/index.js:17:8"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksreplcommands",children:(0,r.jsx)(s.code,{children:"@flecks/repl.commands"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define REPL commands."}),"\n",(0,r.jsx)(s.p,{children:"Note: commands will be prefixed with a period in the Node REPL."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-35",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/repl.commands': () => ({\n someCommand: (...args) => {\n // args are passed from the Node REPL. So, you could invoke it like:\n // .someCommand foo bar\n // and `args` would be `['foo', 'bar']`.\n },\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local/src/server/index.js#L23",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport-local"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:23:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/src/repl.js#L23",children:["@flecks/",(0,r.jsx)(s.strong,{children:"repl"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/repl.js:23:23"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksreplcontext",children:(0,r.jsx)(s.code,{children:"@flecks/repl.context"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Provide global context to the REPL."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-36",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/repl.context': () => {\n // Now you'd be able to do like:\n // `node> someValue;`\n // and the REPL would evaluate it to `'foobar'`.\n return {\n someValue: 'foobar',\n };\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L53",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:53:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/server.js#L34",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redis"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:34:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/src/repl.js#L15",children:["@flecks/",(0,r.jsx)(s.strong,{children:"repl"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/repl.js:15:13"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksserverruntime",children:(0,r.jsx)(s.code,{children:"@flecks/server.runtime"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Pass information to the runtime."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-37",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/server.runtime': async () => ({\n something: '...',\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L310",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/flecks.bootstrap.js:310:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/runtime.js#L41",children:["@flecks/",(0,r.jsx)(s.strong,{children:"server"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/build/runtime.js:41:13"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"flecksserverup",children:(0,r.jsx)(s.code,{children:"@flecks/server.up"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define sequential actions to run when the server comes up."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-38",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/server.up': async () => {\n await youCanDoAsyncThingsHere();\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/server.js#L25",children:["@flecks/",(0,r.jsx)(s.strong,{children:"db"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:25:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/src/server.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"docker"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:4:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L58",children:["@flecks/",(0,r.jsx)(s.strong,{children:"electron"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:58:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L29",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:29:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/server.js#L37",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redis"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:37:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/src/server.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"repl"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:4:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L38",children:["@flecks/",(0,r.jsx)(s.strong,{children:"session"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:38:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/index.js#L18",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:18:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/src/entry.js#L26",children:["@flecks/",(0,r.jsx)(s.strong,{children:"server"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/entry.js:26:10"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckssessionconfig",children:(0,r.jsx)(s.code,{children:"@flecks/session.config"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,r.jsxs)(s.p,{children:["Configure the session. See: ",(0,r.jsx)(s.a,{href:"https://github.com/expressjs/session#sessionoptions",children:"https://github.com/expressjs/session#sessionoptions"})]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-39",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/session.config': async () => ({\n saveUninitialized: true,\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/session/server.js#L19",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redis"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/session/server.js:19:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L44",children:["@flecks/",(0,r.jsx)(s.strong,{children:"session"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:44:15"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketclient",children:(0,r.jsx)(s.code,{children:"@flecks/socket.client"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Modify Socket.io client configuration."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"https://socket.io/docs/v4/client-options/",children:"https://socket.io/docs/v4/client-options/"})]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-40",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.client': () => ({\n timeout: Infinity,\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/client/index.js#L10",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client/index.js:10:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/client/socket.js#L33",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client/socket.js:33:17"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketintercom",children:(0,r.jsx)(s.code,{children:"@flecks/socket.intercom"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Define server-side intercom channels."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-41",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.intercom': (req) => ({\n // Assuming `@my/fleck` implemented this hook, this could be called like:\n // `const result = await req.intercom('@my/fleck.key', payload)`.\n // `result` will be an `n`-length array, where `n` is the number of server instances. Each\n // element in the array will be the result of `someServiceSpecificInformation()` running\n // against that server instance.\n key: async (payload, server) => {\n return someServiceSpecificInformation();\n },\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L53",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:53:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L26",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/server.js:26:26"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketpackets",children:(0,r.jsx)(s.code,{children:"@flecks/socket.packets"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Gather socket packets."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-42",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.packets': Flecks.provide(require.context('./packets', false, /\\.js$/))\n};\n"})}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/index.js#L23",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:23:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/index.js#L8",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:8:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/index.js#L16",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:16:2"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketpacketsdecorate",children:(0,r.jsx)(s.code,{children:"@flecks/socket.packets.decorate"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokecomposedasync",children:"invokeComposedAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Decorate socket packets."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-43",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.packets.decorate': Flecks.decorate(require.context('./packets/decorators', false, /\\.js$/))\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"packet-constructor",children:(0,r.jsx)("code",{children:"Packet: constructor"})}),"\n",(0,r.jsx)("p",{children:"The packet to decorate."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L9",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:9:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L22",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client/index.js:22:2"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketserver",children:(0,r.jsx)(s.code,{children:"@flecks/socket.server"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Modify Socket.io server configuration."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"https://socket.io/docs/v4/server-options/",children:"https://socket.io/docs/v4/server-options/"})]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-44",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.server': () => ({\n pingTimeout: Infinity,\n })\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/session/server.js#L25",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redis"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/session/server.js:25:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/index.js#L14",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:14:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L46",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/server.js:46:15"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketserverconnect",children:(0,r.jsx)(s.code,{children:"@flecks/socket/server.connect"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Do something with a connecting socket."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-45",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket/server.connect': (socket) => {\n socket.on('disconnect', () => {\n // ...\n });\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"socket-serversocket",children:(0,r.jsxs)("code",{children:["socket: ",(0,r.jsx)(s.a,{href:"https://github.com/cha0s/flecks/blob/master/packages/socket/src/server/socket.js",children:"ServerSocket"})]})}),"\n",(0,r.jsx)("p",{children:"The connecting socket."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L86",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/server.js:86:4"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketserverio",children:(0,r.jsx)(s.code,{children:"@flecks/socket/server.io"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,r.jsx)(s.p,{children:"Do something with the Socket.IO instance."}),"\n",(0,r.jsxs)(s.p,{children:["See: ",(0,r.jsx)(s.a,{href:"https://socket.io/docs/v4/server-instance/",children:"https://socket.io/docs/v4/server-instance/"})]}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-46",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:'export const hooks = {\n \'@flecks/socket/server.io\': (io) => {\n io.engine.on("headers", (headers, req) => {\n headers["test"] = "789";\n });\n }\n};\n'})}),"\n",(0,r.jsx)(s.h3,{id:"io-socketio",children:(0,r.jsx)("code",{children:"io: SocketIo"})}),"\n",(0,r.jsx)("p",{children:"The Socket.IO server instance."}),"\n",(0,r.jsx)("div",{className:l.Z.hooks,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L51",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/server.js:51:10"})]})]})})]})}),"\n",(0,r.jsx)(s.h2,{id:"fleckssocketserverrequestsocket",children:(0,r.jsx)(s.code,{children:"@flecks/socket/server.request.socket"})}),"\n",(0,r.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,r.jsx)(s.p,{children:(0,r.jsx)(s.a,{href:"../hooks#invokemiddleware",children:"invokeMiddleware"})})}),"\n",(0,r.jsx)(s.p,{children:"Define middleware to run when a socket connection is established."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-47",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket/server.request.socket': () => (socket, next) => {\n // Express-style route middleware...\n next();\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L67",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:67:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L47",children:["@flecks/",(0,r.jsx)(s.strong,{children:"session"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:47:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L61",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/server.js:61:23"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckswebconfig",children:(0,r.jsx)(s.code,{children:"@flecks/web.config"})}),"\n",(0,r.jsx)(s.p,{children:"Send configuration to clients."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-48",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web.config': (req) => ({\n someConfig: req.someConfig,\n })\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"req-httpclientrequest-2",children:(0,r.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,r.jsx)("p",{children:"The HTTP request object."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/src/index.js#L12",children:["@flecks/",(0,r.jsx)(s.strong,{children:"core"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:12:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/index.js#L9",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:9:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/index.js#L21",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:21:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/index.js#L2",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/index.js:2:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/config.js#L9",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/config.js:9:44"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckswebroutes",children:(0,r.jsx)(s.code,{children:"@flecks/web.routes"})}),"\n",(0,r.jsx)(s.p,{children:"Define HTTP routes."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-49",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web.routes': () => [\n {\n method: 'get',\n path: '/some-path',\n middleware: (req, res, next) => {\n // Express-style route middleware...\n next();\n },\n },\n ]\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L87",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:87:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/index.js#L7",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:7:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L41",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/http.js:41:25"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckswebclientup",children:(0,r.jsx)(s.code,{children:"@flecks/web/client.up"})}),"\n",(0,r.jsx)(s.p,{children:"Define sequential actions to run when the client comes up."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-50",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/client.up': async () => {\n await youCanDoAsyncThingsHere();\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/client.js#L14",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client.js:14:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L7",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client/index.js:7:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/client/index.js#L4",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/client/index.js:4:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/build/entry.js#L60",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/build/entry.js:60:10"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckswebserverrequestroute",children:(0,r.jsx)(s.code,{children:"@flecks/web/server.request.route"})}),"\n",(0,r.jsx)(s.p,{children:"Define middleware to run when a route is matched."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-51",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.request.route': () => (req, res, next) => {\n // Express-style route middleware...\n next();\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L10",children:["@flecks/",(0,r.jsx)(s.strong,{children:"passport"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:10:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/server.js#L12",children:["@flecks/",(0,r.jsx)(s.strong,{children:"redux"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:12:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L19",children:["@flecks/",(0,r.jsx)(s.strong,{children:"session"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:19:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L40",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/http.js:40:26"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckswebserverrequestsocket",children:(0,r.jsx)(s.code,{children:"@flecks/web/server.request.socket"})}),"\n",(0,r.jsx)(s.p,{children:"Define middleware to run when an HTTP socket connection is established."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-52",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.request.socket': () => (req, res, next) => {\n // Express-style route middleware...\n next();\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/index.js#L5",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:5:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L38",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/http.js:38:10"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckswebserverstreamhtml",children:(0,r.jsx)(s.code,{children:"@flecks/web/server.stream.html"})}),"\n",(0,r.jsx)(s.p,{children:"Define composition functions to run over the HTML stream prepared for the client."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-53",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.stream.html': (stream, req) => {\n return stream.pipe(myTransformStream);\n }\n};\n"})}),"\n",(0,r.jsx)(s.h3,{id:"stream-streamreadable",children:(0,r.jsx)("code",{children:"stream: stream.Readable"})}),"\n",(0,r.jsx)("p",{children:"The HTML stream."}),"\n",(0,r.jsx)(s.h3,{id:"req-httpclientrequest-3",children:(0,r.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,r.jsx)("p",{children:"The HTTP request object."}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/server.js#L7",children:["@flecks/",(0,r.jsx)(s.strong,{children:"react"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server.js:7:2"})]})]})}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/index.js#L17",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:17:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L19",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/http.js:19:9"})]})]})})]})]}),"\n",(0,r.jsx)(s.h2,{id:"fleckswebserverup",children:(0,r.jsx)(s.code,{children:"@flecks/web/server.up"})}),"\n",(0,r.jsx)(s.p,{children:"Define sequential actions to run when the HTTP server comes up."}),"\n",(0,r.jsx)(s.h3,{id:"example-usage-54",children:"Example usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.up': async () => {\n await youCanDoAsyncThingsHere();\n }\n};\n"})}),"\n",(0,r.jsxs)("div",{className:l.Z.hooks,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Implementations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/index.js#L9",children:["@flecks/",(0,r.jsx)(s.strong,{children:"socket"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/index.js:9:2"})]})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{children:"Invocations"}),(0,r.jsx)("div",{children:(0,r.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L138",children:["@flecks/",(0,r.jsx)(s.strong,{children:"web"}),(0,r.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,r.jsx)(s.code,{children:"/src/server/http.js:138:24"})]})]})})]})]})]})}function x(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},7113:(e,s,c)=>{c.d(s,{Z:()=>r});const r={configBig:"configBig_NxNb",configSmall:"configSmall_SLee",configTable:"configTable_hbGc",hooks:"hooks_uvt_"}},1151:(e,s,c)=>{c.d(s,{Z:()=>d,a:()=>i});var r=c(7294);const n={},l=r.createContext(n);function i(e){const s=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/72512343.b4528359.js b/assets/js/72512343.b4528359.js deleted file mode 100644 index 1abd507b..00000000 --- a/assets/js/72512343.b4528359.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkflecks_docusaurus=self.webpackChunkflecks_docusaurus||[]).push([[5679],{6057:(e,s,c)=>{c.r(s),c.d(s,{assets:()=>t,contentTitle:()=>d,default:()=>x,frontMatter:()=>i,metadata:()=>o,toc:()=>h});var n=c(5893),r=c(1151),l=c(7113);const i={title:"Hooks",description:"All the hooks in this project."},d=void 0,o={id:"flecks/hooks",title:"Hooks",description:"All the hooks in this project.",source:"@site/docs/flecks/hooks.mdx",sourceDirName:"flecks",slug:"/flecks/hooks",permalink:"/flecks/docs/flecks/hooks",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Hooks",description:"All the hooks in this project."},sidebar:"flecksSidebar",previous:{title:"Generated details",permalink:"/flecks/docs/category/generated-details"},next:{title:"Fleck configuration",permalink:"/flecks/docs/flecks/config"}},t={},h=[{value:"@flecks/build.commands",id:"flecksbuildcommands",level:2},{value:"Example usage",id:"example-usage",level:3},{value:"program: Command",id:"program-command",level:3},{value:"@flecks/build.config",id:"flecksbuildconfig",level:2},{value:"Example usage",id:"example-usage-1",level:3},{value:"target: string",id:"target-string",level:3},{value:"config: Object",id:"config-object",level:3},{value:"env: Object",id:"env-object",level:3},{value:"argv: Object",id:"argv-object",level:3},{value:"@flecks/build.config.alter",id:"flecksbuildconfigalter",level:2},{value:"Example usage",id:"example-usage-2",level:3},{value:"configs: Object",id:"configs-object",level:3},{value:"env: Object",id:"env-object-1",level:3},{value:"argv: Object",id:"argv-object-1",level:3},{value:"@flecks/build.extensions",id:"flecksbuildextensions",level:2},{value:"Example usage",id:"example-usage-3",level:3},{value:"@flecks/build.files",id:"flecksbuildfiles",level:2},{value:"Example usage",id:"example-usage-4",level:3},{value:"@flecks/build.processAssets",id:"flecksbuildprocessassets",level:2},{value:"Example usage",id:"example-usage-5",level:3},{value:"target: string",id:"target-string-1",level:3},{value:"assets: Record<string, Source>",id:"assets-recordstring-source",level:3},{value:"compilation: Compilation",id:"compilation-compilation",level:3},{value:"@flecks/build.targets",id:"flecksbuildtargets",level:2},{value:"Example usage",id:"example-usage-6",level:3},{value:"@flecks/build.targets.alter",id:"flecksbuildtargetsalter",level:2},{value:"Example usage",id:"example-usage-7",level:3},{value:"targets: Set<string>",id:"targets-setstring",level:3},{value:"@flecks/core.babel",id:"fleckscorebabel",level:2},{value:"Example usage",id:"example-usage-8",level:3},{value:"@flecks/core.config",id:"fleckscoreconfig",level:2},{value:"Example usage",id:"example-usage-9",level:3},{value:"@flecks/core.gathered",id:"fleckscoregathered",level:2},{value:"Example usage",id:"example-usage-10",level:3},{value:"@flecks/core.hmr",id:"fleckscorehmr",level:2},{value:"Example usage",id:"example-usage-11",level:3},{value:"path: string",id:"path-string",level:3},{value:"updatedFleck: Module",id:"updatedfleck-module",level:3},{value:"@flecks/core.hmr.gathered",id:"fleckscorehmrgathered",level:2},{value:"Example usage",id:"example-usage-12",level:3},{value:"gathered: constructor",id:"gathered-constructor",level:3},{value:"hook: string",id:"hook-string",level:3},{value:"@flecks/core.hmr.gathered.class",id:"fleckscorehmrgatheredclass",level:2},{value:"Example usage",id:"example-usage-13",level:3},{value:"Class: constructor",id:"class-constructor",level:3},{value:"hook: string",id:"hook-string-1",level:3},{value:"@flecks/core.priority",id:"fleckscorepriority",level:2},{value:"Example usage",id:"example-usage-14",level:3},{value:"graph: Digraph",id:"graph-digraph",level:3},{value:"hook: string",id:"hook-string-2",level:3},{value:"@flecks/core.registered",id:"fleckscoreregistered",level:2},{value:"Example usage",id:"example-usage-15",level:3},{value:"fleck: string",id:"fleck-string",level:3},{value:"M: Module",id:"m-module",level:3},{value:"@flecks/core.starting",id:"fleckscorestarting",level:2},{value:"Example usage",id:"example-usage-16",level:3},{value:"@flecks/db.models",id:"flecksdbmodels",level:2},{value:"Example usage",id:"example-usage-17",level:3},{value:"@flecks/db.models.decorate",id:"flecksdbmodelsdecorate",level:2},{value:"Example usage",id:"example-usage-18",level:3},{value:"Model: constructor",id:"model-constructor",level:3},{value:"@flecks/docker.Dockerfile",id:"flecksdockerdockerfile",level:2},{value:"Example usage",id:"example-usage-19",level:3},{value:"dockerfile: string",id:"dockerfile-string",level:3},{value:"@flecks/docker.containers",id:"flecksdockercontainers",level:2},{value:"Example usage",id:"example-usage-20",level:3},{value:"@flecks/docker.docker-compose.yml",id:"flecksdockerdocker-composeyml",level:2},{value:"Example usage",id:"example-usage-21",level:3},{value:"config: Object",id:"config-object-1",level:3},{value:"@flecks/electron/server.browserWindowOptions.alter",id:"fleckselectronserverbrowserwindowoptionsalter",level:2},{value:"Example usage",id:"example-usage-22",level:3},{value:"browserWindowOptions: BrowserWindowConstructorOptions",id:"browserwindowoptions-browserwindowconstructoroptions",level:3},{value:"@flecks/electron/server.extensions",id:"fleckselectronserverextensions",level:2},{value:"Example usage",id:"example-usage-23",level:3},{value:"installer: Installer",id:"installer-installer",level:3},{value:"@flecks/electron/server.initialize",id:"fleckselectronserverinitialize",level:2},{value:"Example usage",id:"example-usage-24",level:3},{value:"electron: Electron",id:"electron-electron",level:3},{value:"@flecks/electron/server.window",id:"fleckselectronserverwindow",level:2},{value:"Example usage",id:"example-usage-25",level:3},{value:"win: Electron.BrowserWindow",id:"win-electronbrowserwindow",level:3},{value:"@flecks/fleck.packageJson",id:"flecksfleckpackagejson",level:2},{value:"Example usage",id:"example-usage-26",level:3},{value:"json: Object",id:"json-object",level:3},{value:"compilation: Compilation",id:"compilation-compilation-1",level:3},{value:"@flecks/passport-react.strategies",id:"fleckspassport-reactstrategies",level:2},{value:"Example usage",id:"example-usage-27",level:3},{value:"@flecks/passport.strategies",id:"fleckspassportstrategies",level:2},{value:"Example usage",id:"example-usage-28",level:3},{value:"passport: Passport",id:"passport-passport",level:3},{value:"@flecks/react.providers",id:"flecksreactproviders",level:2},{value:"Example usage",id:"example-usage-29",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest",level:3},{value:"@flecks/react.roots",id:"flecksreactroots",level:2},{value:"Example usage",id:"example-usage-30",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest-1",level:3},{value:"@flecks/redux.effects",id:"flecksreduxeffects",level:2},{value:"Example usage",id:"example-usage-31",level:3},{value:"@flecks/redux.reducers",id:"flecksreduxreducers",level:2},{value:"Example usage",id:"example-usage-32",level:3},{value:"@flecks/redux.slices",id:"flecksreduxslices",level:2},{value:"Example usage",id:"example-usage-33",level:3},{value:"@flecks/redux.store",id:"flecksreduxstore",level:2},{value:"Example usage",id:"example-usage-34",level:3},{value:"options: Object",id:"options-object",level:3},{value:"@flecks/repl.commands",id:"flecksreplcommands",level:2},{value:"Example usage",id:"example-usage-35",level:3},{value:"@flecks/repl.context",id:"flecksreplcontext",level:2},{value:"Example usage",id:"example-usage-36",level:3},{value:"@flecks/server.runtime",id:"flecksserverruntime",level:2},{value:"Example usage",id:"example-usage-37",level:3},{value:"@flecks/server.up",id:"flecksserverup",level:2},{value:"Example usage",id:"example-usage-38",level:3},{value:"@flecks/session.config",id:"fleckssessionconfig",level:2},{value:"Example usage",id:"example-usage-39",level:3},{value:"@flecks/socket.client",id:"fleckssocketclient",level:2},{value:"Example usage",id:"example-usage-40",level:3},{value:"@flecks/socket.intercom",id:"fleckssocketintercom",level:2},{value:"Example usage",id:"example-usage-41",level:3},{value:"@flecks/socket.packets",id:"fleckssocketpackets",level:2},{value:"Example usage",id:"example-usage-42",level:3},{value:"@flecks/socket.packets.decorate",id:"fleckssocketpacketsdecorate",level:2},{value:"Example usage",id:"example-usage-43",level:3},{value:"Packet: constructor",id:"packet-constructor",level:3},{value:"@flecks/socket.server",id:"fleckssocketserver",level:2},{value:"Example usage",id:"example-usage-44",level:3},{value:"@flecks/socket/server.connect",id:"fleckssocketserverconnect",level:2},{value:"Example usage",id:"example-usage-45",level:3},{value:"socket: ServerSocket",id:"socket-serversocket",level:3},{value:"@flecks/socket/server.io",id:"fleckssocketserverio",level:2},{value:"Example usage",id:"example-usage-46",level:3},{value:"io: SocketIo",id:"io-socketio",level:3},{value:"@flecks/socket/server.request.socket",id:"fleckssocketserverrequestsocket",level:2},{value:"Example usage",id:"example-usage-47",level:3},{value:"@flecks/web.config",id:"fleckswebconfig",level:2},{value:"Example usage",id:"example-usage-48",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest-2",level:3},{value:"@flecks/web.routes",id:"fleckswebroutes",level:2},{value:"Example usage",id:"example-usage-49",level:3},{value:"@flecks/web/client.up",id:"fleckswebclientup",level:2},{value:"Example usage",id:"example-usage-50",level:3},{value:"@flecks/web/server.request.route",id:"fleckswebserverrequestroute",level:2},{value:"Example usage",id:"example-usage-51",level:3},{value:"@flecks/web/server.request.socket",id:"fleckswebserverrequestsocket",level:2},{value:"Example usage",id:"example-usage-52",level:3},{value:"@flecks/web/server.stream.html",id:"fleckswebserverstreamhtml",level:2},{value:"Example usage",id:"example-usage-53",level:3},{value:"stream: stream.Readable",id:"stream-streamreadable",level:3},{value:"req: http.ClientRequest",id:"req-httpclientrequest-3",level:3},{value:"@flecks/web/server.up",id:"fleckswebserverup",level:2},{value:"Example usage",id:"example-usage-54",level:3}];function a(e){const s={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.p,{children:"This page documents all the hooks in this project."}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildcommands",children:(0,n.jsx)(s.code,{children:"@flecks/build.commands"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define CLI commands."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.commands': (program, flecks) => {\n return {\n // So this could be invoked like:\n // npx flecks something -t --blow-up blah\n something: {\n action: (...args) => {\n // Run the command...\n },\n args: [\n program.createArgument('', 'some argument'),\n ],\n description: 'This command does tests and also blows up',\n options: [\n program.createOption('-t, --test', 'Do a test'),\n program.createOption('-b, --blow-up', 'Blow up instead of running the command'),\n ],\n },\n };\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"program-command",children:(0,n.jsxs)("code",{children:["program: ",(0,n.jsx)(s.a,{href:"https://github.com/tj/commander.js/tree/master#declaring-program-variable",children:"Command"})]})}),"\n",(0,n.jsxs)("p",{children:["The ",(0,n.jsx)(s.a,{href:"https://github.com/tj/commander.js",children:"Commander.js"})," program."]}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L14",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:14:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/dox/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"dox"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L6",children:["@flecks/",(0,n.jsx)(s.strong,{children:"fleck"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:6:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"repl"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUniqueAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/cli.js#L44",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/cli.js:44:25"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildconfig",children:(0,n.jsx)(s.code,{children:"@flecks/build.config"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Hook into webpack configuration."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-1",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.config': (target, config, env, argv) => {\n if ('something' === target) {\n if ('production' === argv.mode) {\n config.plugins.push(new SomePlugin());\n }\n }\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"target-string",children:(0,n.jsx)("code",{children:"target: string"})}),"\n",(0,n.jsxs)("p",{children:["The build target; e.g. ",(0,n.jsx)(s.code,{children:"server"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"config-object",children:(0,n.jsx)("code",{children:"config: Object"})}),"\n",(0,n.jsx)("p",{children:"The webpack configuration."}),"\n",(0,n.jsx)(s.h3,{id:"env-object",children:(0,n.jsx)("code",{children:"env: Object"})}),"\n",(0,n.jsx)("p",{children:"The webpack environment."}),"\n",(0,n.jsx)(s.h3,{id:"argv-object",children:(0,n.jsx)("code",{children:"argv: Object"})}),"\n",(0,n.jsx)("p",{children:"The webpack commandline arguments."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L15",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:15:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"docker"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/build/flecks.bootstrap.js#L22",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:22:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L14",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:14:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L113",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/build.js:113:10"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildconfigalter",children:(0,n.jsx)(s.code,{children:"@flecks/build.config.alter"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Alter build configurations after they have been hooked."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-2",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.config.alter': (configs) => {\n // Maybe we want to do something if a target exists..?\n if (configs.someTarget) {\n configs.plugins.push('...');\n }\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"configs-object",children:(0,n.jsx)("code",{children:"configs: Object"})}),"\n",(0,n.jsx)("p",{children:"The webpack configurations keyed by target."}),"\n",(0,n.jsx)(s.h3,{id:"env-object-1",children:(0,n.jsx)("code",{children:"env: Object"})}),"\n",(0,n.jsx)("p",{children:"The webpack environment."}),"\n",(0,n.jsx)(s.h3,{id:"argv-object-1",children:(0,n.jsx)("code",{children:"argv: Object"})}),"\n",(0,n.jsx)("p",{children:"The webpack commandline arguments."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"server"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L112",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:112:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L116",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/build.js:116:10"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildextensions",children:(0,n.jsx)(s.code,{children:"@flecks/build.extensions"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokeflat",children:"invokeFlat"})})}),"\n",(0,n.jsx)(s.p,{children:"Add implicitly resolved extensions."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-3",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.extensions': () => ['.coffee']\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L13",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:13:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFlat"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/webpack.js#L23",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/webpack.js:23:21"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildfiles",children:(0,n.jsx)(s.code,{children:"@flecks/build.files"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsxs)(s.p,{children:["Register build files. See ",(0,n.jsx)(s.a,{href:"./build-files",children:"the build files page"})," for more details."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-4",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.files': () => [\n /**\n * If you document your build files like this, documentation will be automatically generated.\n */\n '.myrc.js',\n ]\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L22",children:["@flecks/",(0,n.jsx)(s.strong,{children:"server"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:22:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L192",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:192:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invoke"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L152",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/build.js:152:19"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildprocessassets",children:(0,n.jsx)(s.code,{children:"@flecks/build.processAssets"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Process assets during a compilation."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-5",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.processAssets': (target, assets, compilation) => {\n if (this.myTargets.includes(target)) {\n assets['my-file.js'] = new compilation.compiler.webpack.sources.RawSource('content');\n }\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"target-string-1",children:(0,n.jsx)("code",{children:"target: string"})}),"\n",(0,n.jsx)("p",{children:"The build target."}),"\n",(0,n.jsx)(s.h3,{id:"assets-recordstring-source",children:(0,n.jsx)("code",{children:"assets: Record"})}),"\n",(0,n.jsx)("p",{children:"The assets."}),"\n",(0,n.jsx)(s.h3,{id:"compilation-compilation",children:(0,n.jsxs)("code",{children:["compilation: ",(0,n.jsx)(s.a,{href:"https://webpack.js.org/api/compilation-object/",children:"Compilation"})]})}),"\n",(0,n.jsx)("p",{children:"The webpack compilation."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L17",children:["@flecks/",(0,n.jsx)(s.strong,{children:"fleck"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:17:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/process-assets.js#L24",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/process-assets.js:24:16"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildtargets",children:(0,n.jsx)(s.code,{children:"@flecks/build.targets"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsx)(s.p,{children:"Define build targets."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-6",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.targets': () => ['sometarget']\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L16",children:["@flecks/",(0,n.jsx)(s.strong,{children:"fleck"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:16:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L53",children:["@flecks/",(0,n.jsx)(s.strong,{children:"server"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:53:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L295",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:295:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invoke"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L250",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/build.js:250:20"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksbuildtargetsalter",children:(0,n.jsx)(s.code,{children:"@flecks/build.targets.alter"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsx)(s.p,{children:"Alter defined build targets."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-7",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/build.targets.alter': (targets) => {\n targets.delete('some-target');\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"targets-setstring",children:(0,n.jsx)("code",{children:"targets: Set"})}),"\n",(0,n.jsx)("p",{children:"The targets to build."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L54",children:["@flecks/",(0,n.jsx)(s.strong,{children:"server"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:54:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L299",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:299:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invoke"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L272",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/build.js:272:4"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckscorebabel",children:(0,n.jsx)(s.code,{children:"@flecks/core.babel"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Babel configuration."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-8",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.babel': () => ({\n plugins: ['...'],\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/build/flecks.bootstrap.js#L16",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:16:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/build.js#L69",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/build.js:69:15"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckscoreconfig",children:(0,n.jsx)(s.code,{children:"@flecks/core.config"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokefleck",children:"invokeFleck"})})}),"\n",(0,n.jsxs)(s.p,{children:["Define configuration. See ",(0,n.jsx)(s.a,{href:"./config",children:"the configuration page"})," for more details."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-9",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.config': () => ({\n whatever: 'configuration',\n your: 1337,\n fleck: 'needs',\n /**\n * Also, comments like this will be used to automatically generate documentation.\n */\n though: 'you should keep the values serializable',\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/build/build/flecks.bootstrap.js#L51",children:["@flecks/",(0,n.jsx)(s.strong,{children:"build"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:51:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.bootstrap.js#L8",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:8:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/index.js#L2",children:["@flecks/",(0,n.jsx)(s.strong,{children:"db"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:2:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/flecks.bootstrap.js#L10",children:["@flecks/",(0,n.jsx)(s.strong,{children:"docker"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:10:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/dox/build/flecks.bootstrap.js#L5",children:["@flecks/",(0,n.jsx)(s.strong,{children:"dox"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:5:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/build/flecks.bootstrap.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:4:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L7",children:["@flecks/",(0,n.jsx)(s.strong,{children:"fleck"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:7:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/index.js#L8",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:8:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/index.js#L15",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:15:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/index.js#L2",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redis"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:2:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/flecks.bootstrap.js#L28",children:["@flecks/",(0,n.jsx)(s.strong,{children:"server"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:28:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L9",children:["@flecks/",(0,n.jsx)(s.strong,{children:"session"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:9:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L214",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:214:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFleck"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L103",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.js:103:9"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckscoregathered",children:(0,n.jsx)(s.code,{children:"@flecks/core.gathered"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Let flecks gather for you."}),"\n",(0,n.jsxs)(s.p,{children:["See ",(0,n.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-10",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.gathered': () => ({\n // If this hook is implemented by a fleck called `@some/fleck`, then:\n //\n // This is equivalent to flecks.gather('@some/fleck.somethings'):\n somethings: {},\n //\n // This is equivalent to flecks.gather('@some/fleck.others', {typeProperty: 'name'}):\n others: {\n typeProperty: 'name',\n },\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/index.js#L30",children:["@flecks/",(0,n.jsx)(s.strong,{children:"db"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:30:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/index.js#L11",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:11:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L436",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.js:436:28"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckscorehmr",children:(0,n.jsx)(s.code,{children:"@flecks/core.hmr"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when a fleck is HMR'd"}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-11",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.hmr': (path, updatedFleck) => {\n if ('my-fleck' === path) {\n updatedFleck.doSomething();\n }\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"path-string",children:(0,n.jsx)("code",{children:"path: string"})}),"\n",(0,n.jsx)("p",{children:"The path of the fleck"}),"\n",(0,n.jsx)(s.h3,{id:"updatedfleck-module",children:(0,n.jsx)("code",{children:"updatedFleck: Module"})}),"\n",(0,n.jsx)("p",{children:"The updated fleck module."}),"\n",(0,n.jsx)(s.h2,{id:"fleckscorehmrgathered",children:(0,n.jsx)(s.code,{children:"@flecks/core.hmr.gathered"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when a gathered set is HMR'd."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-12",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.hmr.gathered': (gathered, hook) => {\n // Do something with the gathered set...\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"gathered-constructor",children:(0,n.jsx)("code",{children:"gathered: constructor"})}),"\n",(0,n.jsx)("p",{children:"The gathered set."}),"\n",(0,n.jsx)(s.h3,{id:"hook-string",children:(0,n.jsx)("code",{children:"hook: string"})}),"\n",(0,n.jsxs)("p",{children:["The gather hook; e.g. ",(0,n.jsx)(s.code,{children:"@flecks/db.models"}),"."]}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/server.js#L19",children:["@flecks/",(0,n.jsx)(s.strong,{children:"db"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:19:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invoke"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L874",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.js:874:12"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckscorehmrgatheredclass",children:(0,n.jsx)(s.code,{children:"@flecks/core.hmr.gathered.class"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when a gathered class is HMR'd."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-13",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.hmr.gathered.class': (Class, hook) => {\n // Do something with Class...\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"class-constructor",children:(0,n.jsx)("code",{children:"Class: constructor"})}),"\n",(0,n.jsx)("p",{children:"The class."}),"\n",(0,n.jsx)(s.h3,{id:"hook-string-1",children:(0,n.jsx)("code",{children:"hook: string"})}),"\n",(0,n.jsxs)("p",{children:["The gather hook; e.g. ",(0,n.jsx)(s.code,{children:"@flecks/db.models"}),"."]}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invoke"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L872",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.js:872:14"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckscorepriority",children:(0,n.jsx)(s.code,{children:"@flecks/core.priority"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when flecks is building a fleck dependency graph."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-14",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.priority': (graph, hook) => {\n // Make `@flecks/socket/server`'s `@flecks/server.up` implementation depend on\n // `@flecks/db/server`'s:\n if ('@flecks/server.up' === hook) {\n graph.addDependency('@flecks/socket/server', '@flecks/db/server');\n // Remove a dependency.\n graph.removeDependency('@flecks/socket/server', '@flecks/db/server');\n }\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"graph-digraph",children:(0,n.jsx)("code",{children:"graph: Digraph"})}),"\n",(0,n.jsx)("p",{children:"The dependency graph."}),"\n",(0,n.jsx)(s.h3,{id:"hook-string-2",children:(0,n.jsx)("code",{children:"hook: string"})}),"\n",(0,n.jsxs)("p",{children:["The hook; e.g. ",(0,n.jsx)(s.code,{children:"@flecks/server.up"}),"."]}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/session/server.js#L14",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redis"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/session/server.js:14:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invoke"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L355",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.js:355:4"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckscoreregistered",children:(0,n.jsx)(s.code,{children:"@flecks/core.registered"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invoke",children:"invoke"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when a fleck is registered."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-15",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.registered': (fleck, M) => {\n if ('@something/or-other' === fleck) {\n doSomethingWith(M);\n }\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"fleck-string",children:(0,n.jsx)("code",{children:"fleck: string"})}),"\n",(0,n.jsx)("p",{}),"\n",(0,n.jsx)(s.h3,{id:"m-module",children:(0,n.jsx)("code",{children:"M: Module"})}),"\n",(0,n.jsx)("p",{}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invoke"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/build/flecks.js#L89",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.js:89:6"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckscorestarting",children:(0,n.jsx)(s.code,{children:"@flecks/core.starting"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when the application is starting."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-16",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/core.starting': () => {\n console.log('starting!');\n }\n};\n"})}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFlat"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/build/entry.js#L59",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/build/entry.js:59:22"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"flecksdbmodels",children:(0,n.jsx)(s.code,{children:"@flecks/db.models"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Gather database models."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-17",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/db.models': Flecks.provide(require.context('./models', false, /\\.js$/))\n};\n"})}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L8",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:8:2"})]})]})})]})}),"\n",(0,n.jsx)(s.h2,{id:"flecksdbmodelsdecorate",children:(0,n.jsx)(s.code,{children:"@flecks/db.models.decorate"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokecomposedasync",children:"invokeComposedAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Decorate database models."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-18",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/db.models.decorate': Flecks.decorate(require.context('./models/decorators', false, /\\.js$/))\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"model-constructor",children:(0,n.jsx)("code",{children:"Model: constructor"})}),"\n",(0,n.jsx)("p",{children:"The model to decorate."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local/src/server/index.js#L7",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport-local"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:7:2"})]})]})})]})}),"\n",(0,n.jsx)(s.h2,{id:"flecksdockerdockerfile",children:(0,n.jsx)(s.code,{children:"@flecks/docker.Dockerfile"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokecomposedasync",children:"invokeComposedAsync"})})}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-19",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/docker.Dockerfile': (dockerfile) => (\n dockerfile.replace('DEBUG=*', 'DEBUG=*,-*:silly')\n )\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"dockerfile-string",children:(0,n.jsx)("code",{children:"dockerfile: string"})}),"\n",(0,n.jsx)("p",{children:"The content of the Dockerfile."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeComposedAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/generate.js#L19",children:["@flecks/",(0,n.jsx)(s.strong,{children:"docker"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/generate.js:19:9"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"flecksdockercontainers",children:(0,n.jsx)(s.code,{children:"@flecks/docker.containers"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define docker containers."}),"\n",(0,n.jsx)(s.admonition,{type:"warning",children:(0,n.jsxs)(s.p,{children:["The user running the server must have Docker privileges.\nSee: ",(0,n.jsx)(s.a,{href:"https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user",children:"https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user"})]})}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-20",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/docker.containers': () => ({\n someContainer: {\n // Environment variables.\n environment: {\n SOME_CONTAINER_VAR: 'hello',\n },\n // The docker image.\n image: 'some-image:latest',\n // Some container path you'd like to persist. Flecks handles the host path.\n mount: '/some/container/path',\n // Expose ports.\n ports: {3000: 3000},\n },\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/server.js#L24",children:["@flecks/",(0,n.jsx)(s.strong,{children:"db"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:24:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/server.js#L33",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redis"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:33:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/generate.js#L39",children:["@flecks/",(0,n.jsx)(s.strong,{children:"docker"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/generate.js:39:27"})]})]})]}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUniqueAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/src/server.js#L8",children:["@flecks/",(0,n.jsx)(s.strong,{children:"docker"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:8:29"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksdockerdocker-composeyml",children:(0,n.jsx)(s.code,{children:"@flecks/docker.docker-compose.yml"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-21",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/docker.docker-compose.yml': (config) => {\n config.version = '3.1';\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"config-object-1",children:(0,n.jsx)("code",{children:"config: Object"})}),"\n",(0,n.jsx)("p",{children:"The object representing the docker compose configuration."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/build/generate.js#L72",children:["@flecks/",(0,n.jsx)(s.strong,{children:"docker"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/generate.js:72:8"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckselectronserverbrowserwindowoptionsalter",children:(0,n.jsx)(s.code,{children:"@flecks/electron/server.browserWindowOptions.alter"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Alter the options for initialization of the Electron browser window."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-22",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.browserWindowOptions.alter': (browserWindowOptions) => {\n browserWindowOptions.icon = 'cute-kitten.png';\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"browserwindowoptions-browserwindowconstructoroptions",children:(0,n.jsxs)("code",{children:["browserWindowOptions: ",(0,n.jsx)(s.a,{href:"https://www.electronjs.org/docs/latest/api/structures/browser-window-options",children:"BrowserWindowConstructorOptions"})]})}),"\n",(0,n.jsx)("p",{children:"The options."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L10",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:10:8"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckselectronserverextensions",children:(0,n.jsx)(s.code,{children:"@flecks/electron/server.extensions"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokeflat",children:"invokeFlat"})})}),"\n",(0,n.jsx)(s.p,{children:"Extensions to install."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-23",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.extensions': (installer) => [\n // Some defaults provided...\n installer.BACKBONE_DEBUGGER,\n // By ID (Tamper Monkey):\n 'dhdgffkkebhmkfjojejmpbldmpobfkfo',\n ]\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"installer-installer",children:(0,n.jsxs)("code",{children:["installer: ",(0,n.jsx)(s.a,{href:"https://github.com/MarshallOfSound/electron-devtools-installer",children:"Installer"})]})}),"\n",(0,n.jsx)("p",{children:"The installer."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/server.js#L6",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:6:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/server.js#L11",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:11:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFlat"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L47",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:47:11"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckselectronserverinitialize",children:(0,n.jsx)(s.code,{children:"@flecks/electron/server.initialize"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when electron is initializing."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-24",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.initialize': (electron) => {\n electron.app.on('will-quit', () => {\n // ...\n });\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"electron-electron",children:(0,n.jsx)("code",{children:"electron: Electron"})}),"\n",(0,n.jsx)("p",{children:"The electron module."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L19",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:19:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L61",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:61:14"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckselectronserverwindow",children:(0,n.jsx)(s.code,{children:"@flecks/electron/server.window"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Invoked when a window is created"}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-25",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/electron/server.window': (win) => {\n win.maximize();\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"win-electronbrowserwindow",children:(0,n.jsx)("code",{children:"win: Electron.BrowserWindow"})}),"\n",(0,n.jsxs)("p",{children:["The electron browser window. See: ",(0,n.jsx)(s.a,{href:"https://www.electronjs.org/docs/latest/api/browser-window",children:"https://www.electronjs.org/docs/latest/api/browser-window"})]}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L39",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:39:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L15",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:15:8"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksfleckpackagejson",children:(0,n.jsx)(s.code,{children:"@flecks/fleck.packageJson"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsxs)(s.p,{children:["Process the ",(0,n.jsx)(s.code,{children:"package.json"})," for a built fleck."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-26",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/fleck.packageJson': (json, compilation) => {\n json.files.push('something');\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"json-object",children:(0,n.jsx)("code",{children:"json: Object"})}),"\n",(0,n.jsx)("p",{children:"The JSON."}),"\n",(0,n.jsx)(s.h3,{id:"compilation-compilation-1",children:(0,n.jsxs)("code",{children:["compilation: ",(0,n.jsx)(s.a,{href:"https://webpack.js.org/api/compilation-object/",children:"Compilation"})]})}),"\n",(0,n.jsx)("p",{children:"The webpack compilation."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L305",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:305:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/fleck/build/flecks.bootstrap.js#L20",children:["@flecks/",(0,n.jsx)(s.strong,{children:"fleck"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:20:8"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckspassport-reactstrategies",children:(0,n.jsx)(s.code,{children:"@flecks/passport-react.strategies"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeunique",children:"invokeMergeUnique"})})}),"\n",(0,n.jsx)(s.p,{children:"Define React components for login strategies."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-27",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/passport-react.strategies': () => ({\n MyService: SomeBeautifulComponent,\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local-react/src/index.js#L6",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport-local-react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:6:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUnique"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-react/src/login.jsx#L11",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport-react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/login.jsx:11:36"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckspassportstrategies",children:(0,n.jsx)(s.code,{children:"@flecks/passport.strategies"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,n.jsxs)(s.p,{children:["Define passport login strategies. See: ",(0,n.jsx)(s.a,{href:"https://www.passportjs.org/concepts/authentication/strategies/",children:"https://www.passportjs.org/concepts/authentication/strategies/"})]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-28",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/passport.strategies': (passport) => ({\n MyService: SomeStrategy,\n })\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"passport-passport",children:(0,n.jsx)("code",{children:"passport: Passport"})}),"\n",(0,n.jsx)("p",{children:"The passport instance."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local/src/server/index.js#L8",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport-local"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:8:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUniqueAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L44",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:44:26"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksreactproviders",children:(0,n.jsx)(s.code,{children:"@flecks/react.providers"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define React Providers."}),"\n",(0,n.jsxs)(s.p,{children:["Note: ",(0,n.jsx)(s.code,{children:"req"})," will be only be defined when server-side rendering."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-29",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/react.providers': (req) => {\n // Generally it makes more sense to separate client and server concerns using platform\n // naming conventions, but this is just a small contrived example.\n return req ? serverSideProvider(req) : clientSideProvider();\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"req-httpclientrequest",children:(0,n.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,n.jsx)("p",{children:"The HTTP request object."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react-redux/src/client.js#L5",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react-redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client.js:5:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react-redux/src/server.js#L5",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react-redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:5:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/client.js#L7",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/router/client.js:7:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/server.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/router/server.js:4:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/root.js#L15",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/root.js:15:26"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksreactroots",children:(0,n.jsx)(s.code,{children:"@flecks/react.roots"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,n.jsxs)(s.p,{children:["Define root-level React components that are mounted as siblings on ",(0,n.jsx)(s.code,{children:"#main"}),".\nNote: ",(0,n.jsx)(s.code,{children:"req"})," will be only be defined when server-side rendering."]}),"\n",(0,n.jsx)(s.p,{children:"Return either a React component or an array whose elements must either be a React component\nor an array of two elements where the first element is the component and the second element\nis the props passed to the component."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-30",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/react.roots': (req) => {\n // Note that we're not returning ``, but `Component`.\n return [\n Component,\n [SomeOtherComponent, {prop: 'value'}]\n ];\n // You can also just:\n return Component;\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"req-httpclientrequest-1",children:(0,n.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,n.jsx)("p",{children:"The HTTP request object."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/root.js#L13",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/root.js:13:22"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"flecksreduxeffects",children:(0,n.jsx)(s.code,{children:"@flecks/redux.effects"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define side-effects to run against Redux actions."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-31",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.effects': () => ({\n someActionName: (store, action) => {\n // Runs when `someActionName` actions are dispatched.\n },\n })\n};\n"})}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/store/middleware/effects.js#L2",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/store/middleware/effects.js:2:24"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"flecksreduxreducers",children:(0,n.jsx)(s.code,{children:"@flecks/redux.reducers"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define root-level reducers for the Redux store."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-32",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.reducers': () => {\n return (state, action) => {\n // Whatever you'd like.\n return state;\n };\n }\n};\n"})}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/store/create-reducer.js#L5",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/store/create-reducer.js:5:23"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"flecksreduxslices",children:(0,n.jsx)(s.code,{children:"@flecks/redux.slices"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define Redux slices."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"https://redux-toolkit.js.org/api/createSlice",children:"https://redux-toolkit.js.org/api/createSlice"})]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-33",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.slices': () => {\n const something = createSlice(\n // ...\n );\n return {\n something: something.reducer,\n };\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/index.js#L22",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:22:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/index.js#L8",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/router/index.js:8:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUniqueAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L9",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client/index.js:9:27"})]})]})]}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUniqueAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/server.js#L13",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:13:25"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksreduxstore",children:(0,n.jsx)(s.code,{children:"@flecks/redux.store"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Modify Redux store configuration."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-34",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/redux.store': (options) => {\n options.enhancers.splice(someIndex, 1);\n options.middleware.push(mySpecialMiddleware);\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"options-object",children:(0,n.jsx)("code",{children:"options: Object"})}),"\n",(0,n.jsx)("p",{children:"A mutable object with keys for enhancers and middleware."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/router/index.js#L11",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/router/index.js:11:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L18",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client/index.js:18:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/store/index.js#L17",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/store/index.js:17:8"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksreplcommands",children:(0,n.jsx)(s.code,{children:"@flecks/repl.commands"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define REPL commands."}),"\n",(0,n.jsx)(s.p,{children:"Note: commands will be prefixed with a period in the Node REPL."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-35",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/repl.commands': () => ({\n someCommand: (...args) => {\n // args are passed from the Node REPL. So, you could invoke it like:\n // .someCommand foo bar\n // and `args` would be `['foo', 'bar']`.\n },\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport-local/src/server/index.js#L23",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport-local"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:23:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUniqueAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/src/repl.js#L23",children:["@flecks/",(0,n.jsx)(s.strong,{children:"repl"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/repl.js:23:23"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksreplcontext",children:(0,n.jsx)(s.code,{children:"@flecks/repl.context"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeuniqueasync",children:"invokeMergeUniqueAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Provide global context to the REPL."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-36",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/repl.context': () => {\n // Now you'd be able to do like:\n // `node> someValue;`\n // and the REPL would evaluate it to `'foobar'`.\n return {\n someValue: 'foobar',\n };\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L53",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:53:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/server.js#L34",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redis"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:34:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeUniqueAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/src/repl.js#L15",children:["@flecks/",(0,n.jsx)(s.strong,{children:"repl"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/repl.js:15:13"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksserverruntime",children:(0,n.jsx)(s.code,{children:"@flecks/server.runtime"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Pass information to the runtime."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-37",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/server.runtime': async () => ({\n something: '...',\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/build/flecks.bootstrap.js#L310",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/flecks.bootstrap.js:310:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/build/runtime.js#L41",children:["@flecks/",(0,n.jsx)(s.strong,{children:"server"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/build/runtime.js:41:13"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"flecksserverup",children:(0,n.jsx)(s.code,{children:"@flecks/server.up"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define sequential actions to run when the server comes up."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-38",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/server.up': async () => {\n await youCanDoAsyncThingsHere();\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/db/src/server.js#L25",children:["@flecks/",(0,n.jsx)(s.strong,{children:"db"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:25:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/docker/src/server.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"docker"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:4:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/electron/src/server/index.js#L58",children:["@flecks/",(0,n.jsx)(s.strong,{children:"electron"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:58:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L29",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:29:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/server.js#L37",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redis"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:37:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/repl/src/server.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"repl"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:4:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L38",children:["@flecks/",(0,n.jsx)(s.strong,{children:"session"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:38:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/index.js#L18",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:18:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/server/src/entry.js#L26",children:["@flecks/",(0,n.jsx)(s.strong,{children:"server"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/entry.js:26:10"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckssessionconfig",children:(0,n.jsx)(s.code,{children:"@flecks/session.config"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,n.jsxs)(s.p,{children:["Configure the session. See: ",(0,n.jsx)(s.a,{href:"https://github.com/expressjs/session#sessionoptions",children:"https://github.com/expressjs/session#sessionoptions"})]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-39",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/session.config': async () => ({\n saveUninitialized: true,\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/session/server.js#L19",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redis"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/session/server.js:19:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L44",children:["@flecks/",(0,n.jsx)(s.strong,{children:"session"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:44:15"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketclient",children:(0,n.jsx)(s.code,{children:"@flecks/socket.client"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Modify Socket.io client configuration."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"https://socket.io/docs/v4/client-options/",children:"https://socket.io/docs/v4/client-options/"})]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-40",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.client': () => ({\n timeout: Infinity,\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/client/index.js#L10",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client/index.js:10:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/client/socket.js#L33",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client/socket.js:33:17"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketintercom",children:(0,n.jsx)(s.code,{children:"@flecks/socket.intercom"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokeasync",children:"invokeAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Define server-side intercom channels."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-41",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.intercom': (req) => ({\n // Assuming `@my/fleck` implemented this hook, this could be called like:\n // `const result = await req.intercom('@my/fleck.key', payload)`.\n // `result` will be an `n`-length array, where `n` is the number of server instances. Each\n // element in the array will be the result of `someServiceSpecificInformation()` running\n // against that server instance.\n key: async (payload, server) => {\n return someServiceSpecificInformation();\n },\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L53",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:53:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L26",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/server.js:26:26"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketpackets",children:(0,n.jsx)(s.code,{children:"@flecks/socket.packets"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Gather socket packets."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-42",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.packets': Flecks.provide(require.context('./packets', false, /\\.js$/))\n};\n"})}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/index.js#L23",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:23:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/index.js#L8",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:8:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/index.js#L16",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:16:2"})]})]})})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketpacketsdecorate",children:(0,n.jsx)(s.code,{children:"@flecks/socket.packets.decorate"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokecomposedasync",children:"invokeComposedAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Decorate socket packets."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"../gathering",children:"the Gathering guide"}),"."]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-43",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.packets.decorate': Flecks.decorate(require.context('./packets/decorators', false, /\\.js$/))\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"packet-constructor",children:(0,n.jsx)("code",{children:"Packet: constructor"})}),"\n",(0,n.jsx)("p",{children:"The packet to decorate."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L9",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:9:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L22",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client/index.js:22:2"})]})]})})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketserver",children:(0,n.jsx)(s.code,{children:"@flecks/socket.server"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemergeasync",children:"invokeMergeAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Modify Socket.io server configuration."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"https://socket.io/docs/v4/server-options/",children:"https://socket.io/docs/v4/server-options/"})]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-44",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket.server': () => ({\n pingTimeout: Infinity,\n })\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redis/src/session/server.js#L25",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redis"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/session/server.js:25:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/index.js#L14",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:14:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeMergeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L46",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/server.js:46:15"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketserverconnect",children:(0,n.jsx)(s.code,{children:"@flecks/socket/server.connect"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Do something with a connecting socket."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-45",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket/server.connect': (socket) => {\n socket.on('disconnect', () => {\n // ...\n });\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"socket-serversocket",children:(0,n.jsxs)("code",{children:["socket: ",(0,n.jsx)(s.a,{href:"https://github.com/cha0s/flecks/blob/master/packages/socket/src/server/socket.js",children:"ServerSocket"})]})}),"\n",(0,n.jsx)("p",{children:"The connecting socket."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L86",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/server.js:86:4"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketserverio",children:(0,n.jsx)(s.code,{children:"@flecks/socket/server.io"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokesequentialasync",children:"invokeSequentialAsync"})})}),"\n",(0,n.jsx)(s.p,{children:"Do something with the Socket.IO instance."}),"\n",(0,n.jsxs)(s.p,{children:["See: ",(0,n.jsx)(s.a,{href:"https://socket.io/docs/v4/server-instance/",children:"https://socket.io/docs/v4/server-instance/"})]}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-46",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:'export const hooks = {\n \'@flecks/socket/server.io\': (io) => {\n io.engine.on("headers", (headers, req) => {\n headers["test"] = "789";\n });\n }\n};\n'})}),"\n",(0,n.jsx)(s.h3,{id:"io-socketio",children:(0,n.jsx)("code",{children:"io: SocketIo"})}),"\n",(0,n.jsx)("p",{children:"The Socket.IO server instance."}),"\n",(0,n.jsx)("div",{className:l.Z.hooks,children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L51",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/server.js:51:10"})]})]})]})]})}),"\n",(0,n.jsx)(s.h2,{id:"fleckssocketserverrequestsocket",children:(0,n.jsx)(s.code,{children:"@flecks/socket/server.request.socket"})}),"\n",(0,n.jsx)("h3",{style:{fontSize:"1.125rem",marginTop:0},children:(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"../hooks#invokemiddleware",children:"invokeMiddleware"})})}),"\n",(0,n.jsx)(s.p,{children:"Define middleware to run when a socket connection is established."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-47",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/socket/server.request.socket': () => (socket, next) => {\n // Express-style route middleware...\n next();\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L67",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:67:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L47",children:["@flecks/",(0,n.jsx)(s.strong,{children:"session"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:47:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFleck"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/server.js#L61",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/server.js:61:23"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckswebconfig",children:(0,n.jsx)(s.code,{children:"@flecks/web.config"})}),"\n",(0,n.jsx)(s.p,{children:"Send configuration to clients."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-48",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web.config': (req) => ({\n someConfig: req.someConfig,\n })\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"req-httpclientrequest-2",children:(0,n.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,n.jsx)("p",{children:"The HTTP request object."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/core/src/index.js#L12",children:["@flecks/",(0,n.jsx)(s.strong,{children:"core"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:12:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/index.js#L9",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:9:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/index.js#L21",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:21:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/index.js#L2",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/index.js:2:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/config.js#L9",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/config.js:9:44"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckswebroutes",children:(0,n.jsx)(s.code,{children:"@flecks/web.routes"})}),"\n",(0,n.jsx)(s.p,{children:"Define HTTP routes."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-49",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web.routes': () => [\n {\n method: 'get',\n path: '/some-path',\n middleware: (req, res, next) => {\n // Express-style route middleware...\n next();\n },\n },\n ]\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L87",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:87:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/index.js#L7",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:7:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFlat"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L41",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/http.js:41:25"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckswebclientup",children:(0,n.jsx)(s.code,{children:"@flecks/web/client.up"})}),"\n",(0,n.jsx)(s.p,{children:"Define sequential actions to run when the client comes up."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-50",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/client.up': async () => {\n await youCanDoAsyncThingsHere();\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/client.js#L14",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client.js:14:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/client/index.js#L7",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client/index.js:7:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/client/index.js#L4",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/client/index.js:4:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeSequentialAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/build/entry.js#L60",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/build/entry.js:60:10"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckswebserverrequestroute",children:(0,n.jsx)(s.code,{children:"@flecks/web/server.request.route"})}),"\n",(0,n.jsx)(s.p,{children:"Define middleware to run when a route is matched."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-51",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.request.route': () => (req, res, next) => {\n // Express-style route middleware...\n next();\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/passport/src/server/index.js#L10",children:["@flecks/",(0,n.jsx)(s.strong,{children:"passport"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:10:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/redux/src/server.js#L12",children:["@flecks/",(0,n.jsx)(s.strong,{children:"redux"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:12:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/session/src/server.js#L19",children:["@flecks/",(0,n.jsx)(s.strong,{children:"session"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:19:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFleck"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L40",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/http.js:40:26"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckswebserverrequestsocket",children:(0,n.jsx)(s.code,{children:"@flecks/web/server.request.socket"})}),"\n",(0,n.jsx)(s.p,{children:"Define middleware to run when an HTTP socket connection is established."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-52",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.request.socket': () => (req, res, next) => {\n // Express-style route middleware...\n next();\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/index.js#L5",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:5:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFleck"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L38",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/http.js:38:10"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckswebserverstreamhtml",children:(0,n.jsx)(s.code,{children:"@flecks/web/server.stream.html"})}),"\n",(0,n.jsx)(s.p,{children:"Define composition functions to run over the HTML stream prepared for the client."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-53",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.stream.html': (stream, req) => {\n return stream.pipe(myTransformStream);\n }\n};\n"})}),"\n",(0,n.jsx)(s.h3,{id:"stream-streamreadable",children:(0,n.jsx)("code",{children:"stream: stream.Readable"})}),"\n",(0,n.jsx)("p",{children:"The HTML stream."}),"\n",(0,n.jsx)(s.h3,{id:"req-httpclientrequest-3",children:(0,n.jsx)("code",{children:"req: http.ClientRequest"})}),"\n",(0,n.jsx)("p",{children:"The HTTP request object."}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/react/src/server.js#L7",children:["@flecks/",(0,n.jsx)(s.strong,{children:"react"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server.js:7:2"})]})]})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/index.js#L17",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:17:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeComposedAsync"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L19",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/http.js:19:9"})]})]})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"fleckswebserverup",children:(0,n.jsx)(s.code,{children:"@flecks/web/server.up"})}),"\n",(0,n.jsx)(s.p,{children:"Define sequential actions to run when the HTTP server comes up."}),"\n",(0,n.jsx)(s.h3,{id:"example-usage-54",children:"Example usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-javascript",children:"export const hooks = {\n '@flecks/web/server.up': async () => {\n await youCanDoAsyncThingsHere();\n }\n};\n"})}),"\n",(0,n.jsxs)("div",{className:l.Z.hooks,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Implementations"}),(0,n.jsx)("div",{children:(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/socket/src/server/index.js#L9",children:["@flecks/",(0,n.jsx)(s.strong,{children:"socket"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/index.js:9:2"})]})]})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{children:"Invocations"}),(0,n.jsxs)("div",{children:["(",(0,n.jsx)(s.code,{children:"invokeFlat"}),") ",(0,n.jsxs)(s.a,{href:"https://github.com/cha0s/flecks/tree/master/packages/web/src/server/http.js#L138",children:["@flecks/",(0,n.jsx)(s.strong,{children:"web"}),(0,n.jsxs)("span",{style:{fontSize:"80%"},children:["\u200b",(0,n.jsx)(s.code,{children:"/src/server/http.js:138:24"})]})]})]})]})]})]})}function x(e={}){const{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},7113:(e,s,c)=>{c.d(s,{Z:()=>n});const n={configBig:"configBig_NxNb",configSmall:"configSmall_SLee",configTable:"configTable_hbGc",hooks:"hooks_uvt_"}},1151:(e,s,c)=>{c.d(s,{Z:()=>d,a:()=>i});var n=c(7294);const r={},l=n.createContext(r);function i(e){const s=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.71b5c3e4.js b/assets/js/runtime~main.ccecf166.js similarity index 98% rename from assets/js/runtime~main.71b5c3e4.js rename to assets/js/runtime~main.ccecf166.js index 4d570746..845de776 100644 --- a/assets/js/runtime~main.71b5c3e4.js +++ b/assets/js/runtime~main.ccecf166.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,t,r,f={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return f[e].call(c.exports,c,c.exports,d),c.loaded=!0,c.exports}d.m=f,d.c=b,e=[],d.O=(a,c,t,r)=>{if(!c){var f=1/0;for(i=0;i=r)&&Object.keys(d.O).every((e=>d.O[e](c[o])))?c.splice(o--,1):(b=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[c,t,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var f={};a=a||[null,c({}),c([]),c(c)];for(var b=2&t&&e;"object"==typeof b&&!~a.indexOf(b);b=c(b))Object.getOwnPropertyNames(b).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,d.d(r,f),r},d.d=(e,a)=>{for(var c in a)d.o(a,c)&&!d.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,c)=>(d.f[c](e,a),a)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",196:"cbb899e4",937:"972d9d57",944:"57cdf011",1052:"3c291670",1073:"9967cc6c",1144:"773fe5c0",1204:"be07d3f5",1825:"c208b484",1851:"b045326f",2528:"1dc09441",2596:"357e2da2",2873:"18911325",3541:"af7d3287",3850:"1ecec20c",3951:"94cab2e7",4364:"5df00a39",4368:"a94703ab",4639:"8d4b214a",4891:"cb5b5a7a",5287:"8d2f4c1c",5679:"72512343",5930:"fa4d91bf",6128:"160a3b85",6324:"01bbcd7b",6325:"8f92789c",6911:"8b0cd02a",7041:"ba61d949",7918:"17896441",8312:"bfa2a205",8518:"a7bd4aaa",8532:"32a57bab",9091:"06d8b529",9661:"5e95c892",9686:"041c5cc5",9817:"14eb3368",9828:"fb49b6cf"}[e]||e)+"."+{53:"d26d451f",109:"32733b05",132:"ae35eca4",196:"c02bcdbb",240:"07917f61",937:"eeafcbae",944:"f3413ebc",1052:"1e709b46",1073:"685bbc8f",1144:"316c3d4e",1204:"fc009175",1504:"957f1d57",1644:"03bc3b57",1763:"5ae8bab8",1772:"897dbcaa",1825:"5a907d2a",1851:"50773016",2183:"3334b572",2312:"2c0c9fc1",2528:"0a9c8d1b",2596:"b6b0f02c",2661:"5f234f73",2693:"a00fcec7",2696:"43f9fa5f",2700:"b8c28ffc",2873:"0dc82106",3076:"1e2e3390",3343:"e0acdec4",3541:"7d31ac00",3619:"fbb2fff5",3850:"37a9cd97",3951:"d4af77d8",4238:"641fbfe9",4364:"7bfa3769",4368:"0848533e",4639:"4aa69cf7",4706:"a02e6509",4891:"cd3d8902",5269:"c28d6be0",5287:"012e4fbc",5326:"b2028c2d",5679:"b4528359",5790:"4a3585b2",5930:"927421e0",5943:"426845a9",6128:"f00afb49",6255:"d3d0f009",6324:"1dfb9d17",6325:"01fc6817",6648:"b268d988",6911:"c73f1091",6985:"bd79313b",7041:"e7781aa1",7918:"f9921edf",7936:"8edc4d0d",8016:"5c15b204",8312:"fe5e394a",8518:"b46b1112",8532:"41bf717a",8955:"e03572fe",9091:"82b2e1be",9138:"8c3e3e31",9661:"68abf1d3",9686:"d6ff3d43",9817:"67536d34",9828:"10ec73be",9893:"cf0ffbf2"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},r="flecks-docusaurus:",d.l=(e,a,c,f)=>{if(t[e])t[e].push(a);else{var b,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/flecks/",d.gca=function(e){return e={17896441:"7918",18911325:"2873",72512343:"5679","935f2afb":"53",cbb899e4:"196","972d9d57":"937","57cdf011":"944","3c291670":"1052","9967cc6c":"1073","773fe5c0":"1144",be07d3f5:"1204",c208b484:"1825",b045326f:"1851","1dc09441":"2528","357e2da2":"2596",af7d3287:"3541","1ecec20c":"3850","94cab2e7":"3951","5df00a39":"4364",a94703ab:"4368","8d4b214a":"4639",cb5b5a7a:"4891","8d2f4c1c":"5287",fa4d91bf:"5930","160a3b85":"6128","01bbcd7b":"6324","8f92789c":"6325","8b0cd02a":"6911",ba61d949:"7041",bfa2a205:"8312",a7bd4aaa:"8518","32a57bab":"8532","06d8b529":"9091","5e95c892":"9661","041c5cc5":"9686","14eb3368":"9817",fb49b6cf:"9828"}[e]||e,d.p+d.u(e)},(()=>{var e={1303:0,532:0};d.f.j=(a,c)=>{var t=d.o(e,a)?e[a]:void 0;if(0!==t)if(t)c.push(t[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var r=new Promise(((c,r)=>t=e[a]=[c,r]));c.push(t[2]=r);var f=d.p+d.u(a),b=new Error;d.l(f,(c=>{if(d.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var r=c&&("load"===c.type?"missing":c.type),f=c&&c.target&&c.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+f+")",b.name="ChunkLoadError",b.type=r,b.request=f,t[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,c)=>{var t,r,f=c[0],b=c[1],o=c[2],n=0;if(f.some((a=>0!==e[a]))){for(t in b)d.o(b,t)&&(d.m[t]=b[t]);if(o)var i=o(d)}for(a&&a(c);n{"use strict";var e,a,c,t,r,f={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return f[e].call(c.exports,c,c.exports,d),c.loaded=!0,c.exports}d.m=f,d.c=b,e=[],d.O=(a,c,t,r)=>{if(!c){var f=1/0;for(i=0;i=r)&&Object.keys(d.O).every((e=>d.O[e](c[o])))?c.splice(o--,1):(b=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[c,t,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var f={};a=a||[null,c({}),c([]),c(c)];for(var b=2&t&&e;"object"==typeof b&&!~a.indexOf(b);b=c(b))Object.getOwnPropertyNames(b).forEach((a=>f[a]=()=>e[a]));return f.default=()=>e,d.d(r,f),r},d.d=(e,a)=>{for(var c in a)d.o(a,c)&&!d.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,c)=>(d.f[c](e,a),a)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",196:"cbb899e4",937:"972d9d57",944:"57cdf011",1052:"3c291670",1073:"9967cc6c",1144:"773fe5c0",1204:"be07d3f5",1825:"c208b484",1851:"b045326f",2528:"1dc09441",2596:"357e2da2",2873:"18911325",3541:"af7d3287",3850:"1ecec20c",3951:"94cab2e7",4364:"5df00a39",4368:"a94703ab",4639:"8d4b214a",4891:"cb5b5a7a",5287:"8d2f4c1c",5679:"72512343",5930:"fa4d91bf",6128:"160a3b85",6324:"01bbcd7b",6325:"8f92789c",6911:"8b0cd02a",7041:"ba61d949",7918:"17896441",8312:"bfa2a205",8518:"a7bd4aaa",8532:"32a57bab",9091:"06d8b529",9661:"5e95c892",9686:"041c5cc5",9817:"14eb3368",9828:"fb49b6cf"}[e]||e)+"."+{53:"d26d451f",109:"32733b05",132:"ae35eca4",196:"c02bcdbb",240:"07917f61",937:"eeafcbae",944:"f3413ebc",1052:"1e709b46",1073:"685bbc8f",1144:"316c3d4e",1204:"fc009175",1504:"957f1d57",1644:"03bc3b57",1763:"5ae8bab8",1772:"897dbcaa",1825:"5a907d2a",1851:"50773016",2183:"3334b572",2312:"2c0c9fc1",2528:"0a9c8d1b",2596:"b6b0f02c",2661:"5f234f73",2693:"a00fcec7",2696:"43f9fa5f",2700:"b8c28ffc",2873:"0dc82106",3076:"1e2e3390",3343:"e0acdec4",3541:"7d31ac00",3619:"fbb2fff5",3850:"37a9cd97",3951:"d4af77d8",4238:"641fbfe9",4364:"7bfa3769",4368:"0848533e",4639:"4aa69cf7",4706:"a02e6509",4891:"cd3d8902",5269:"c28d6be0",5287:"012e4fbc",5326:"b2028c2d",5679:"41c505c1",5790:"4a3585b2",5930:"927421e0",5943:"426845a9",6128:"f00afb49",6255:"d3d0f009",6324:"1dfb9d17",6325:"01fc6817",6648:"b268d988",6911:"c73f1091",6985:"bd79313b",7041:"e7781aa1",7918:"f9921edf",7936:"8edc4d0d",8016:"5c15b204",8312:"fe5e394a",8518:"b46b1112",8532:"41bf717a",8955:"e03572fe",9091:"82b2e1be",9138:"8c3e3e31",9661:"68abf1d3",9686:"d6ff3d43",9817:"67536d34",9828:"10ec73be",9893:"cf0ffbf2"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},r="flecks-docusaurus:",d.l=(e,a,c,f)=>{if(t[e])t[e].push(a);else{var b,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/flecks/",d.gca=function(e){return e={17896441:"7918",18911325:"2873",72512343:"5679","935f2afb":"53",cbb899e4:"196","972d9d57":"937","57cdf011":"944","3c291670":"1052","9967cc6c":"1073","773fe5c0":"1144",be07d3f5:"1204",c208b484:"1825",b045326f:"1851","1dc09441":"2528","357e2da2":"2596",af7d3287:"3541","1ecec20c":"3850","94cab2e7":"3951","5df00a39":"4364",a94703ab:"4368","8d4b214a":"4639",cb5b5a7a:"4891","8d2f4c1c":"5287",fa4d91bf:"5930","160a3b85":"6128","01bbcd7b":"6324","8f92789c":"6325","8b0cd02a":"6911",ba61d949:"7041",bfa2a205:"8312",a7bd4aaa:"8518","32a57bab":"8532","06d8b529":"9091","5e95c892":"9661","041c5cc5":"9686","14eb3368":"9817",fb49b6cf:"9828"}[e]||e,d.p+d.u(e)},(()=>{var e={1303:0,532:0};d.f.j=(a,c)=>{var t=d.o(e,a)?e[a]:void 0;if(0!==t)if(t)c.push(t[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var r=new Promise(((c,r)=>t=e[a]=[c,r]));c.push(t[2]=r);var f=d.p+d.u(a),b=new Error;d.l(f,(c=>{if(d.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var r=c&&("load"===c.type?"missing":c.type),f=c&&c.target&&c.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+f+")",b.name="ChunkLoadError",b.type=r,b.request=f,t[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,c)=>{var t,r,f=c[0],b=c[1],o=c[2],n=0;if(f.some((a=>0!==e[a]))){for(t in b)d.o(b,t)&&(d.m[t]=b[t]);if(o)var i=o(d)}for(a&&a(c);n Adding flecks | flecks - + diff --git a/docs/category/generated-details/index.html b/docs/category/generated-details/index.html index 82019465..95faa1c5 100644 --- a/docs/category/generated-details/index.html +++ b/docs/category/generated-details/index.html @@ -4,7 +4,7 @@ Generated details | flecks - + diff --git a/docs/category/getting-started/index.html b/docs/category/getting-started/index.html index be539599..2f442f07 100644 --- a/docs/category/getting-started/index.html +++ b/docs/category/getting-started/index.html @@ -4,7 +4,7 @@ Getting Started | flecks - + diff --git a/docs/category/guides/index.html b/docs/category/guides/index.html index 6b68681b..73cf5517 100644 --- a/docs/category/guides/index.html +++ b/docs/category/guides/index.html @@ -4,7 +4,7 @@ Guides | flecks - + diff --git a/docs/category/writing-your-code/index.html b/docs/category/writing-your-code/index.html index 89b56881..c2b54a6e 100644 --- a/docs/category/writing-your-code/index.html +++ b/docs/category/writing-your-code/index.html @@ -4,7 +4,7 @@ Writing your code | flecks - + diff --git a/docs/cli/index.html b/docs/cli/index.html index 90993692..ece96623 100644 --- a/docs/cli/index.html +++ b/docs/cli/index.html @@ -4,7 +4,7 @@ Command-line interface | flecks - + diff --git a/docs/configuration/index.html b/docs/configuration/index.html index 34584352..b19f4475 100644 --- a/docs/configuration/index.html +++ b/docs/configuration/index.html @@ -4,7 +4,7 @@ Configuration | flecks - + diff --git a/docs/creating-a-fleck/index.html b/docs/creating-a-fleck/index.html index f0a4833f..b87f6bcd 100644 --- a/docs/creating-a-fleck/index.html +++ b/docs/creating-a-fleck/index.html @@ -4,7 +4,7 @@ Creating a fleck | flecks - + diff --git a/docs/database/index.html b/docs/database/index.html index 9d9261b4..d3466d73 100644 --- a/docs/database/index.html +++ b/docs/database/index.html @@ -4,7 +4,7 @@ Database | flecks - + diff --git a/docs/docker/index.html b/docs/docker/index.html index 8b7c0d9c..11d91482 100644 --- a/docs/docker/index.html +++ b/docs/docker/index.html @@ -4,7 +4,7 @@ Docker | flecks - + diff --git a/docs/documentation/index.html b/docs/documentation/index.html index 85d3f1e2..e9f966ae 100644 --- a/docs/documentation/index.html +++ b/docs/documentation/index.html @@ -4,7 +4,7 @@ Documentation | flecks - + diff --git a/docs/electron/index.html b/docs/electron/index.html index 082b6675..27252650 100644 --- a/docs/electron/index.html +++ b/docs/electron/index.html @@ -4,7 +4,7 @@ Electron | flecks - + diff --git a/docs/environment/index.html b/docs/environment/index.html index e0e7e533..c819a0b4 100644 --- a/docs/environment/index.html +++ b/docs/environment/index.html @@ -4,7 +4,7 @@ Environment Variables | flecks - + diff --git a/docs/flecks/build-files/index.html b/docs/flecks/build-files/index.html index 481ebda4..6bc93e3e 100644 --- a/docs/flecks/build-files/index.html +++ b/docs/flecks/build-files/index.html @@ -4,7 +4,7 @@ Build files | flecks - + diff --git a/docs/flecks/config/index.html b/docs/flecks/config/index.html index 995d8300..620a4282 100644 --- a/docs/flecks/config/index.html +++ b/docs/flecks/config/index.html @@ -4,7 +4,7 @@ Fleck configuration | flecks - + diff --git a/docs/flecks/hooks/index.html b/docs/flecks/hooks/index.html index b9c7114b..40cc73d6 100644 --- a/docs/flecks/hooks/index.html +++ b/docs/flecks/hooks/index.html @@ -4,7 +4,7 @@ Hooks | flecks - + @@ -16,7 +16,7 @@

Example usage<
export const hooks = {
'@flecks/build.commands': (program, flecks) => {
return {
// So this could be invoked like:
// npx flecks something -t --blow-up blah
something: {
action: (...args) => {
// Run the command...
},
args: [
program.createArgument('<somearg>', 'some argument'),
],
description: 'This command does tests and also blows up',
options: [
program.createOption('-t, --test', 'Do a test'),
program.createOption('-b, --blow-up', 'Blow up instead of running the command'),
],
},
};
}
};

program: Command

The Commander.js program.

- +

@flecks/build.config

invokeSequentialAsync

Hook into webpack configuration.

@@ -30,7 +30,7 @@

env: Object

The webpack environment.

argv: Object

The webpack commandline arguments.

- +

@flecks/build.config.alter

invokeSequentialAsync

Alter build configurations after they have been hooked.

@@ -42,19 +42,19 @@

env: Obje

The webpack environment.

argv: Object

The webpack commandline arguments.

- +

@flecks/build.extensions

invokeFlat

Add implicitly resolved extensions.

Example usage

export const hooks = {
'@flecks/build.extensions': () => ['.coffee']
};
- +

@flecks/build.files

invoke

Register build files. See the build files page for more details.

Example usage

export const hooks = {
'@flecks/build.files': () => [
/**
* If you document your build files like this, documentation will be automatically generated.
*/
'.myrc.js',
]
};
- +

@flecks/build.processAssets

invokeSequentialAsync

Process assets during a compilation.

@@ -66,13 +66,13 @@

<

The assets.

compilation: Compilation

The webpack compilation.

- +

@flecks/build.targets

invoke

Define build targets.

Example usage

export const hooks = {
'@flecks/build.targets': () => ['sometarget']
};
- +

@flecks/build.targets.alter

invoke

Alter defined build targets.

@@ -80,26 +80,26 @@

Example usag
export const hooks = {
'@flecks/build.targets.alter': (targets) => {
targets.delete('some-target');
}
};

targets: Set<string>

The targets to build.

- +

@flecks/core.babel

invokeSequentialAsync

Babel configuration.

Example usage

export const hooks = {
'@flecks/core.babel': () => ({
plugins: ['...'],
})
};
- +

@flecks/core.config

invokeFleck

Define configuration. See the configuration page for more details.

Example usage

export const hooks = {
'@flecks/core.config': () => ({
whatever: 'configuration',
your: 1337,
fleck: 'needs',
/**
* Also, comments like this will be used to automatically generate documentation.
*/
though: 'you should keep the values serializable',
})
};
- +

@flecks/core.gathered

invokeAsync

Let flecks gather for you.

See the Gathering guide.

Example usage

export const hooks = {
'@flecks/core.gathered': () => ({
// If this hook is implemented by a fleck called `@some/fleck`, then:
//
// This is equivalent to flecks.gather('@some/fleck.somethings'):
somethings: {},
//
// This is equivalent to flecks.gather('@some/fleck.others', {typeProperty: 'name'}):
others: {
typeProperty: 'name',
},
})
};
- +

@flecks/core.hmr

invoke

Invoked when a fleck is HMR'd

@@ -118,7 +118,7 @@

g

The gathered set.

hook: string

The gather hook; e.g. @flecks/db.models.

- +

@flecks/core.hmr.gathered.class

invoke

Invoked when a gathered class is HMR'd.

@@ -128,7 +128,7 @@

Clas

The class.

hook: string

The gather hook; e.g. @flecks/db.models.

- +

@flecks/core.priority

invoke

Invoked when flecks is building a fleck dependency graph.

@@ -138,7 +138,7 @@

graph: D

The dependency graph.

hook: string

The hook; e.g. @flecks/server.up.

- +

@flecks/core.registered

invoke

Invoked when a fleck is registered.

@@ -148,13 +148,13 @@

fleck: st

M: Module

- +

@flecks/core.starting

invokeSequentialAsync

Invoked when the application is starting.

Example usage

export const hooks = {
'@flecks/core.starting': () => {
console.log('starting!');
}
};
- +

@flecks/db.models

invokeMergeAsync

Gather database models.

@@ -177,7 +177,7 @@

Example usa
export const hooks = {
'@flecks/docker.Dockerfile': (dockerfile) => (
dockerfile.replace('DEBUG=*', 'DEBUG=*,-*:silly')
)
};

dockerfile: string

The content of the Dockerfile.

-

Invocations

+

@flecks/docker.containers

invokeMergeUniqueAsync

Define docker containers.

@@ -185,14 +185,14 @@

https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user

Example usage

export const hooks = {
'@flecks/docker.containers': () => ({
someContainer: {
// Environment variables.
environment: {
SOME_CONTAINER_VAR: 'hello',
},
// The docker image.
image: 'some-image:latest',
// Some container path you'd like to persist. Flecks handles the host path.
mount: '/some/container/path',
// Expose ports.
ports: {3000: 3000},
},
})
};
- +

@flecks/docker.docker-compose.yml

invokeSequentialAsync

-

Example usage

+

Example usage

export const hooks = {
'@flecks/docker.docker-compose.yml': (config) => {
config.version = '3.1';
}
};

config: Object

The object representing the docker compose configuration.

-

Invocations

+

@flecks/electron/server.browserWindowOptions.alter

invokeSequentialAsync

Alter the options for initialization of the Electron browser window.

@@ -200,7 +200,7 @@

Example usa
export const hooks = {
'@flecks/electron/server.browserWindowOptions.alter': (browserWindowOptions) => {
browserWindowOptions.icon = 'cute-kitten.png';
}
};

browserWindowOptions: BrowserWindowConstructorOptions

The options.

-

Invocations

+

@flecks/electron/server.extensions

invokeFlat

Extensions to install.

@@ -208,7 +208,7 @@

Example usa
export const hooks = {
'@flecks/electron/server.extensions': (installer) => [
// Some defaults provided...
installer.BACKBONE_DEBUGGER,
// By ID (Tamper Monkey):
'dhdgffkkebhmkfjojejmpbldmpobfkfo',
]
};

installer: Installer

The installer.

- +

@flecks/electron/server.initialize

invokeSequentialAsync

Invoked when electron is initializing.

@@ -216,7 +216,7 @@

Example usa
export const hooks = {
'@flecks/electron/server.initialize': (electron) => {
electron.app.on('will-quit', () => {
// ...
});
}
};

electron: Electron

The electron module.

- +

@flecks/electron/server.window

invokeSequentialAsync

Invoked when a window is created

@@ -224,7 +224,7 @@

Example usa
export const hooks = {
'@flecks/electron/server.window': (win) => {
win.maximize();
}
};

win: Electron.BrowserWindow

The electron browser window. See: https://www.electronjs.org/docs/latest/api/browser-window

- +

@flecks/fleck.packageJson

invokeSequentialAsync

Process the package.json for a built fleck.

@@ -234,13 +234,13 @@

json: Obje

The JSON.

compilation: Compilation

The webpack compilation.

- +

@flecks/passport-react.strategies

invokeMergeUnique

Define React components for login strategies.

Example usage

export const hooks = {
'@flecks/passport-react.strategies': () => ({
MyService: SomeBeautifulComponent,
})
};
- +

@flecks/passport.strategies

invokeMergeUniqueAsync

Define passport login strategies. See: https://www.passportjs.org/concepts/authentication/strategies/

@@ -248,7 +248,7 @@

Example usa
export const hooks = {
'@flecks/passport.strategies': (passport) => ({
MyService: SomeStrategy,
})
};

passport: Passport

The passport instance.

- +

@flecks/react.providers

invokeSequentialAsync

Define React Providers.

@@ -257,7 +257,7 @@

Example usa
export const hooks = {
'@flecks/react.providers': (req) => {
// Generally it makes more sense to separate client and server concerns using platform
// naming conventions, but this is just a small contrived example.
return req ? serverSideProvider(req) : clientSideProvider();
}
};

req: http.ClientRequest

The HTTP request object.

- +

@flecks/react.roots

invokeAsync

Define root-level React components that are mounted as siblings on #main. @@ -269,26 +269,26 @@

Example usa
export const hooks = {
'@flecks/react.roots': (req) => {
// Note that we're not returning `<Component />`, but `Component`.
return [
Component,
[SomeOtherComponent, {prop: 'value'}]
];
// You can also just:
return Component;
}
};

req: http.ClientRequest

The HTTP request object.

-

Invocations

+

@flecks/redux.effects

invokeSequentialAsync

Define side-effects to run against Redux actions.

Example usage

export const hooks = {
'@flecks/redux.effects': () => ({
someActionName: (store, action) => {
// Runs when `someActionName` actions are dispatched.
},
})
};
- +

@flecks/redux.reducers

invokeSequentialAsync

Define root-level reducers for the Redux store.

Example usage

export const hooks = {
'@flecks/redux.reducers': () => {
return (state, action) => {
// Whatever you'd like.
return state;
};
}
};
-

Invocations

+

@flecks/redux.slices

invokeMergeUniqueAsync

Define Redux slices.

See: https://redux-toolkit.js.org/api/createSlice

Example usage

export const hooks = {
'@flecks/redux.slices': () => {
const something = createSlice(
// ...
);
return {
something: something.reducer,
};
}
};
- +

@flecks/redux.store

invokeSequentialAsync

Modify Redux store configuration.

@@ -296,51 +296,51 @@

Example usa
export const hooks = {
'@flecks/redux.store': (options) => {
options.enhancers.splice(someIndex, 1);
options.middleware.push(mySpecialMiddleware);
}
};

options: Object

A mutable object with keys for enhancers and middleware.

- +

@flecks/repl.commands

invokeMergeUniqueAsync

Define REPL commands.

Note: commands will be prefixed with a period in the Node REPL.

Example usage

export const hooks = {
'@flecks/repl.commands': () => ({
someCommand: (...args) => {
// args are passed from the Node REPL. So, you could invoke it like:
// .someCommand foo bar
// and `args` would be `['foo', 'bar']`.
},
})
};
- +

@flecks/repl.context

invokeMergeUniqueAsync

Provide global context to the REPL.

Example usage

export const hooks = {
'@flecks/repl.context': () => {
// Now you'd be able to do like:
// `node> someValue;`
// and the REPL would evaluate it to `'foobar'`.
return {
someValue: 'foobar',
};
}
};
- +

@flecks/server.runtime

invokeAsync

Pass information to the runtime.

Example usage

export const hooks = {
'@flecks/server.runtime': async () => ({
something: '...',
})
};
- +

@flecks/server.up

invokeSequentialAsync

Define sequential actions to run when the server comes up.

Example usage

export const hooks = {
'@flecks/server.up': async () => {
await youCanDoAsyncThingsHere();
}
};
- +

@flecks/session.config

invokeMergeAsync

Configure the session. See: https://github.com/expressjs/session#sessionoptions

Example usage

export const hooks = {
'@flecks/session.config': async () => ({
saveUninitialized: true,
})
};
- +

@flecks/socket.client

invokeMergeAsync

Modify Socket.io client configuration.

See: https://socket.io/docs/v4/client-options/

Example usage

export const hooks = {
'@flecks/socket.client': () => ({
timeout: Infinity,
})
};
- +

@flecks/socket.intercom

invokeAsync

Define server-side intercom channels.

Example usage

export const hooks = {
'@flecks/socket.intercom': (req) => ({
// Assuming `@my/fleck` implemented this hook, this could be called like:
// `const result = await req.intercom('@my/fleck.key', payload)`.
// `result` will be an `n`-length array, where `n` is the number of server instances. Each
// element in the array will be the result of `someServiceSpecificInformation()` running
// against that server instance.
key: async (payload, server) => {
return someServiceSpecificInformation();
},
})
};
- +

@flecks/socket.packets

invokeMergeAsync

Gather socket packets.

@@ -363,7 +363,7 @@

https://socket.io/docs/v4/server-options/

Example usage

export const hooks = {
'@flecks/socket.server': () => ({
pingTimeout: Infinity,
})
};
- +

@flecks/socket/server.connect

invokeSequentialAsync

Do something with a connecting socket.

@@ -371,7 +371,7 @@

Example usa
export const hooks = {
'@flecks/socket/server.connect': (socket) => {
socket.on('disconnect', () => {
// ...
});
}
};

socket: ServerSocket

The connecting socket.

-

Invocations

+

@flecks/socket/server.io

invokeSequentialAsync

Do something with the Socket.IO instance.

@@ -380,40 +380,40 @@

Example usa
export const hooks = {
'@flecks/socket/server.io': (io) => {
io.engine.on("headers", (headers, req) => {
headers["test"] = "789";
});
}
};

io: SocketIo

The Socket.IO server instance.

-

Invocations

+

@flecks/socket/server.request.socket

invokeMiddleware

Define middleware to run when a socket connection is established.

Example usage

export const hooks = {
'@flecks/socket/server.request.socket': () => (socket, next) => {
// Express-style route middleware...
next();
}
};
- +

@flecks/web.config

Send configuration to clients.

Example usage

export const hooks = {
'@flecks/web.config': (req) => ({
someConfig: req.someConfig,
})
};

req: http.ClientRequest

The HTTP request object.

- +

@flecks/web.routes

Define HTTP routes.

Example usage

export const hooks = {
'@flecks/web.routes': () => [
{
method: 'get',
path: '/some-path',
middleware: (req, res, next) => {
// Express-style route middleware...
next();
},
},
]
};
- +

@flecks/web/client.up

Define sequential actions to run when the client comes up.

Example usage

export const hooks = {
'@flecks/web/client.up': async () => {
await youCanDoAsyncThingsHere();
}
};
- +

@flecks/web/server.request.route

Define middleware to run when a route is matched.

Example usage

export const hooks = {
'@flecks/web/server.request.route': () => (req, res, next) => {
// Express-style route middleware...
next();
}
};
- +

@flecks/web/server.request.socket

Define middleware to run when an HTTP socket connection is established.

Example usage

export const hooks = {
'@flecks/web/server.request.socket': () => (req, res, next) => {
// Express-style route middleware...
next();
}
};
- +

@flecks/web/server.stream.html

Define composition functions to run over the HTML stream prepared for the client.

Example usage

@@ -422,11 +422,11 @@

The HTML stream.

req: http.ClientRequest

The HTTP request object.

- +

@flecks/web/server.up

Define sequential actions to run when the HTTP server comes up.

Example usage

export const hooks = {
'@flecks/web/server.up': async () => {
await youCanDoAsyncThingsHere();
}
};
-
+
\ No newline at end of file diff --git a/docs/flecks/todos/index.html b/docs/flecks/todos/index.html index 3993c840..89e72006 100644 --- a/docs/flecks/todos/index.html +++ b/docs/flecks/todos/index.html @@ -4,7 +4,7 @@ TODO list | flecks - + diff --git a/docs/gathering/index.html b/docs/gathering/index.html index 8518fb24..2318e337 100644 --- a/docs/gathering/index.html +++ b/docs/gathering/index.html @@ -4,7 +4,7 @@ Gathering and Providing | flecks - + diff --git a/docs/hooks/index.html b/docs/hooks/index.html index fc7d0f6d..256c1408 100644 --- a/docs/hooks/index.html +++ b/docs/hooks/index.html @@ -4,7 +4,7 @@ Hooks | flecks - + diff --git a/docs/index.html b/docs/index.html index 73b281ad..e8739eb1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ Introduction | flecks - + diff --git a/docs/installation/index.html b/docs/installation/index.html index e9e3ba22..2beeb240 100644 --- a/docs/installation/index.html +++ b/docs/installation/index.html @@ -4,7 +4,7 @@ Installation | flecks - + diff --git a/docs/isomorphism/index.html b/docs/isomorphism/index.html index a7c066d3..d2d61fbd 100644 --- a/docs/isomorphism/index.html +++ b/docs/isomorphism/index.html @@ -4,7 +4,7 @@ Isomorphism | flecks - + diff --git a/docs/ordering/index.html b/docs/ordering/index.html index cd0049ac..f5510226 100644 --- a/docs/ordering/index.html +++ b/docs/ordering/index.html @@ -4,7 +4,7 @@ Ordering | flecks - + diff --git a/docs/react/index.html b/docs/react/index.html index 5e6c7b30..b219d8c9 100644 --- a/docs/react/index.html +++ b/docs/react/index.html @@ -4,7 +4,7 @@ React | flecks - + diff --git a/docs/redux/index.html b/docs/redux/index.html index 873e7faa..418cd36e 100644 --- a/docs/redux/index.html +++ b/docs/redux/index.html @@ -4,7 +4,7 @@ Redux | flecks - + diff --git a/docs/repl/index.html b/docs/repl/index.html index 37c8d726..067ba1de 100644 --- a/docs/repl/index.html +++ b/docs/repl/index.html @@ -4,7 +4,7 @@ REPL | flecks - + diff --git a/docs/sockets/index.html b/docs/sockets/index.html index 5499d857..06e14ecb 100644 --- a/docs/sockets/index.html +++ b/docs/sockets/index.html @@ -4,7 +4,7 @@ Sockets | flecks - + diff --git a/docs/testing/index.html b/docs/testing/index.html index b9dae31b..f6e87b89 100644 --- a/docs/testing/index.html +++ b/docs/testing/index.html @@ -4,7 +4,7 @@ Testing | flecks - + diff --git a/index.html b/index.html index ec4874e2..4566b960 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Hello from flecks | flecks - +