[{"data":1,"prerenderedAt":487},["ShallowReactive",2],{"navigation":3,"-guide-server":51,"-guide-server-surround":482},[4],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","/guide","1.guide/1.index",[9,11,16,21,26,31,36,41,46],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"Fetch Handler","/guide/handler","1.guide/2.handler","i-fluent:target-24-regular",{"title":17,"path":18,"stem":19,"icon":20},"Server Instance","/guide/server","1.guide/3.server","radix-icons:component-instance",{"title":22,"path":23,"stem":24,"icon":25},"Middleware","/guide/middleware","1.guide/4.middleware","clarity:plugin-line",{"title":27,"path":28,"stem":29,"icon":30},"Server Options","/guide/options","1.guide/5.options","ri:settings-3-line",{"title":32,"path":33,"stem":34,"icon":35},"Bundler Usage","/guide/bundler","1.guide/6.bundler","clarity:bundle-line",{"title":37,"path":38,"stem":39,"icon":40},"Node.js Support","/guide/node","1.guide/7.node","akar-icons:node-fill",{"title":42,"path":43,"stem":44,"icon":45},"AWS Lambda","/guide/aws-lambda","1.guide/8.aws-lambda","clarity:cloud-traffic-line",{"title":47,"path":48,"stem":49,"icon":50},"Using CLI","/guide/cli","1.guide/9.cli","garden:terminal-cli-stroke-12",{"id":52,"title":17,"body":53,"description":476,"extension":477,"meta":478,"navigation":479,"path":18,"seo":480,"stem":19,"__hash__":481},"content/1.guide/3.server.md",{"type":54,"value":55,"toc":459,"icon":20},"minimark",[56,65,253,258,265,268,271,277,280,286,289,295,298,301,305,311,314,320,335,341,344,351,362,366,409,413,419,425,428,431,437,440,443,449,452,455],[57,58,59,60,64],"p",{},"When calling ",[61,62,63],"code",{},"serve"," to start a server, a server instance will be immediately returned in order to control the server instance.",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-js shiki shiki-themes github-light github-dark github-dark","import { serve } from \"srvx\";\n\nconst server = serve({\n  fetch(request) {\n    return new Response(`🔥 Server is powered by ${server.runtime}.`);\n  },\n});\n\nawait server.ready();\n\nconsole.log(`🚀 Server is ready at ${server.url}`);\n\n// When server is no longer needed\n// await server.close(true /* closeActiveConnections */)\n","js","",[61,73,74,97,104,124,140,172,178,184,189,204,209,235,240,247],{"__ignoreMap":71},[75,76,79,83,87,90,94],"span",{"class":77,"line":78},"line",1,[75,80,82],{"class":81},"so5gQ","import",[75,84,86],{"class":85},"slsVL"," { serve } ",[75,88,89],{"class":81},"from",[75,91,93],{"class":92},"sfrk1"," \"srvx\"",[75,95,96],{"class":85},";\n",[75,98,100],{"class":77,"line":99},2,[75,101,103],{"emptyLinePlaceholder":102},true,"\n",[75,105,107,110,114,117,121],{"class":77,"line":106},3,[75,108,109],{"class":81},"const",[75,111,113],{"class":112},"suiK_"," server",[75,115,116],{"class":81}," =",[75,118,120],{"class":119},"shcOC"," serve",[75,122,123],{"class":85},"({\n",[75,125,127,130,133,137],{"class":77,"line":126},4,[75,128,129],{"class":119},"  fetch",[75,131,132],{"class":85},"(",[75,134,136],{"class":135},"sQHwn","request",[75,138,139],{"class":85},") {\n",[75,141,143,146,149,152,154,157,160,163,166,169],{"class":77,"line":142},5,[75,144,145],{"class":81},"    return",[75,147,148],{"class":81}," new",[75,150,151],{"class":119}," Response",[75,153,132],{"class":85},[75,155,156],{"class":92},"`🔥 Server is powered by ${",[75,158,159],{"class":85},"server",[75,161,162],{"class":92},".",[75,164,165],{"class":85},"runtime",[75,167,168],{"class":92},"}.`",[75,170,171],{"class":85},");\n",[75,173,175],{"class":77,"line":174},6,[75,176,177],{"class":85},"  },\n",[75,179,181],{"class":77,"line":180},7,[75,182,183],{"class":85},"});\n",[75,185,187],{"class":77,"line":186},8,[75,188,103],{"emptyLinePlaceholder":102},[75,190,192,195,198,201],{"class":77,"line":191},9,[75,193,194],{"class":81},"await",[75,196,197],{"class":85}," server.",[75,199,200],{"class":119},"ready",[75,202,203],{"class":85},"();\n",[75,205,207],{"class":77,"line":206},10,[75,208,103],{"emptyLinePlaceholder":102},[75,210,212,215,218,220,223,225,227,230,233],{"class":77,"line":211},11,[75,213,214],{"class":85},"console.",[75,216,217],{"class":119},"log",[75,219,132],{"class":85},[75,221,222],{"class":92},"`🚀 Server is ready at ${",[75,224,159],{"class":85},[75,226,162],{"class":92},[75,228,229],{"class":85},"url",[75,231,232],{"class":92},"}`",[75,234,171],{"class":85},[75,236,238],{"class":77,"line":237},12,[75,239,103],{"emptyLinePlaceholder":102},[75,241,243],{"class":77,"line":242},13,[75,244,246],{"class":245},"sCsY4","// When server is no longer needed\n",[75,248,250],{"class":77,"line":249},14,[75,251,252],{"class":245},"// await server.close(true /* closeActiveConnections */)\n",[254,255,257],"h2",{"id":256},"server-properties","Server Properties",[259,260,262],"h3",{"id":261},"serveroptions",[61,263,264],{},"server.options",[57,266,267],{},"Access to the sever options set during initialization.",[269,270],"read-more",{"to":28},[259,272,274],{"id":273},"serverurl",[61,275,276],{},"server.url",[57,278,279],{},"Get the computed server listening URL.",[259,281,283],{"id":282},"serveraddr",[61,284,285],{},"server.addr",[57,287,288],{},"Listening address (hostname or ipv4/ipv6).",[259,290,292],{"id":291},"serverport",[61,293,294],{},"server.port",[57,296,297],{},"Listening port number.",[269,299],{"to":300},"/guide/options#port-required",[254,302,304],{"id":303},"server-methods","Server Methods",[259,306,308],{"id":307},"serverready",[61,309,310],{},"server.ready()",[57,312,313],{},"Returns a promise that will be resolved when server is listening to the port and ready to accept connections.",[57,315,316],{},[317,318,319],"strong",{},"Example:",[66,321,323],{"className":68,"code":322,"language":70,"meta":71,"style":71},"await server.ready();\n",[61,324,325],{"__ignoreMap":71},[75,326,327,329,331,333],{"class":77,"line":78},[75,328,194],{"class":81},[75,330,197],{"class":85},[75,332,200],{"class":119},[75,334,203],{"class":85},[259,336,338],{"id":337},"serverclosecloseactiveconnections",[61,339,340],{},"server.close(closeActiveConnections?)",[57,342,343],{},"Stop listening to prevent new connections from being accepted.",[57,345,346,347,350],{},"By default, calling ",[61,348,349],{},"close"," does not cancel in-flight requests or websockets. That means it may take some time before all network activity stops.",[57,352,353,354,357,358,361],{},"If ",[61,355,356],{},"closeActiveConnections"," is set to ",[61,359,360],{},"true",", it will immediately terminate in-flight requests, websockets, and stop accepting new connections.",[57,363,364],{},[317,365,319],{},[66,367,369],{"className":68,"code":368,"language":70,"meta":71,"style":71},"// Stop accepting new requests\nawait server.close();\n\n// Stop accepting new requests and cancel all current connections\nawait server.close(true);\n",[61,370,371,376,386,390,395],{"__ignoreMap":71},[75,372,373],{"class":77,"line":78},[75,374,375],{"class":245},"// Stop accepting new requests\n",[75,377,378,380,382,384],{"class":77,"line":99},[75,379,194],{"class":81},[75,381,197],{"class":85},[75,383,349],{"class":119},[75,385,203],{"class":85},[75,387,388],{"class":77,"line":106},[75,389,103],{"emptyLinePlaceholder":102},[75,391,392],{"class":77,"line":126},[75,393,394],{"class":245},"// Stop accepting new requests and cancel all current connections\n",[75,396,397,399,401,403,405,407],{"class":77,"line":142},[75,398,194],{"class":81},[75,400,197],{"class":85},[75,402,349],{"class":119},[75,404,132],{"class":85},[75,406,360],{"class":112},[75,408,171],{"class":85},[254,410,412],{"id":411},"access-to-the-underlying-server","Access to the Underlying Server",[414,415,416],"note",{},[57,417,418],{},"\nsrvx tries to translate most common options to op level properties. This is only for advanced usage.",[259,420,422],{"id":421},"serverbunserver",[61,423,424],{},"server.bun.server",[57,426,427],{},"Access to the underlying Bun server instance when running in Bun.",[269,429],{"to":430},"https://bun.sh/docs/api/http",[259,432,434],{"id":433},"serverdenoserver",[61,435,436],{},"server.deno.server",[57,438,439],{},"Access to the underlying Bun server instance when running in Deno.",[269,441],{"to":442},"https://docs.deno.com/api/deno/~/Deno.HttpServer",[259,444,446],{"id":445},"servernodeserver",[61,447,448],{},"server.node.server",[57,450,451],{},"Access to the underlying Node.js server instance when running in Node.js",[269,453],{"to":454},"https://nodejs.org/api/http.html#class-httpserver",[456,457,458],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":71,"searchDepth":99,"depth":99,"links":460},[461,467,471],{"id":256,"depth":99,"text":257,"children":462},[463,464,465,466],{"id":261,"depth":106,"text":264},{"id":273,"depth":106,"text":276},{"id":282,"depth":106,"text":285},{"id":291,"depth":106,"text":294},{"id":303,"depth":99,"text":304,"children":468},[469,470],{"id":307,"depth":106,"text":310},{"id":337,"depth":106,"text":340},{"id":411,"depth":99,"text":412,"children":472},[473,474,475],{"id":421,"depth":106,"text":424},{"id":433,"depth":106,"text":436},{"id":445,"depth":106,"text":448},"Control srvx server lifecycle.","md",{"icon":20},{"icon":20},{"title":17,"description":476},"d2T-pvLeLMDaYSDBhuRVq4tsjVRb0UQBXswy2sD_1Xg",[483,485],{"title":12,"path":13,"stem":14,"description":484,"icon":15,"children":-1},"Get familiar with srvx fetch server handler and ServerRequest.",{"title":22,"path":23,"stem":24,"description":486,"icon":25,"children":-1},"Plugins and middleware allow adding reusable server extensions.",1771317514428]