[{"data":1,"prerenderedAt":1318},["ShallowReactive",2],{"navigation":3,"-guide-cli":51,"-guide-cli-surround":1314},[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":47,"body":53,"description":1308,"extension":1309,"meta":1310,"navigation":1311,"path":48,"seo":1312,"stem":49,"__hash__":1313},"content/1.guide/9.cli.md",{"type":54,"value":55,"toc":1304,"icon":50},"minimark",[56,65,153,158,1121,1125,1141,1157,1167,1186,1197,1300],[57,58,59,60,64],"p",{},"You can run ",[61,62,63],"code",{},"srvx"," with your preferred runtime without installation:",[66,67,68,91,104,119,137],"CodeGroup",{},[69,70,76],"pre",{"className":71,"code":72,"filename":73,"language":74,"meta":75,"style":75},"language-bash shiki shiki-themes github-light github-dark github-dark","npx srvx\n","npm","bash","",[61,77,78],{"__ignoreMap":75},[79,80,83,87],"span",{"class":81,"line":82},"line",1,[79,84,86],{"class":85},"shcOC","npx",[79,88,90],{"class":89},"sfrk1"," srvx\n",[69,92,95],{"className":71,"code":93,"filename":94,"language":74,"meta":75,"style":75},"pnpx srvx\n","pnpm",[61,96,97],{"__ignoreMap":75},[79,98,99,102],{"class":81,"line":82},[79,100,101],{"class":85},"pnpx",[79,103,90],{"class":89},[69,105,108],{"className":71,"code":106,"filename":107,"language":74,"meta":75,"style":75},"yarn dlx srvx\n","yarn",[61,109,110],{"__ignoreMap":75},[79,111,112,114,117],{"class":81,"line":82},[79,113,107],{"class":85},[79,115,116],{"class":89}," dlx",[79,118,90],{"class":89},[69,120,123],{"className":71,"code":121,"filename":122,"language":74,"meta":75,"style":75},"deno -A npm:srvx\n","Deno",[61,124,125],{"__ignoreMap":75},[79,126,127,130,134],{"class":81,"line":82},[79,128,129],{"class":85},"deno",[79,131,133],{"class":132},"suiK_"," -A",[79,135,136],{"class":89}," npm:srvx\n",[69,138,141],{"className":71,"code":139,"filename":140,"language":74,"meta":75,"style":75},"bunx --bun srvx\n","Bun",[61,142,143],{"__ignoreMap":75},[79,144,145,148,151],{"class":81,"line":82},[79,146,147],{"class":85},"bunx",[79,149,150],{"class":132}," --bun",[79,152,90],{"class":89},[154,155,157],"h2",{"id":156},"usage","Usage",[69,159,163],{"className":160,"code":161,"language":162,"meta":75,"style":75},"language-sh shiki shiki-themes github-light github-dark github-dark","srvx   - Universal Server.\n\nSERVE MODE\n\n# srvx serve [options]\n$ srvx serve --entry ./server.ts    # Start development server\n$ srvx serve --prod                 # Start production  server\n$ srvx serve --port=8080            # Listen on port 8080\n$ srvx serve --host=localhost       # Bind to localhost only\n$ srvx serve --static=./dist        # Serve static files (no entry needed)\n$ srvx serve --import=jiti/register # Enable [jiti](https://github.com/unjs/jiti) loader\n$ srvx serve --tls --cert=cert.pem --key=key.pem  # Enable TLS (HTTPS/HTTP2)\n\nFETCH MODE\n\n# srvx fetch|curl [options] [url]\n$ srvx fetch                  # Fetch from default entry\n$ srvx fetch /api/users       # Fetch a specific URL/path\n$ srvx fetch --entry ./server.ts /api/users # Fetch using a specific entry\n$ srvx fetch -X POST /api/users # POST request\n$ srvx fetch -H \"Content-Type: application/json\" /api # With headers\n$ srvx fetch -d '{\"name\":\"foo\"}' /api # With request body\n$ srvx fetch -v /api/users    # Verbose output (show headers)\n$ echo '{\"name\":\"foo\"}' | srvx fetch -d @- /api # Body from stdin\n\nCOMMON OPTIONS\n\n  --entry \u003Cfile>           Server entry file to use\n  --dir \u003Cdir>              Working directory for resolving entry file\n  -h, --help               Show this help message\n  --version                Show server and runtime versions\n\nSERVE OPTIONS\n\n  -p, --port \u003Cport>        Port to listen on (default: 3000)\n  --host \u003Chost>            Host to bind to (default: all interfaces)\n  -s, --static \u003Cdir>       Serve static files from the specified directory (default: public)\n  --prod                   Run in production mode (no watch, no debug)\n  --import \u003Cloader>        ES module to preload\n  --tls                    Enable TLS (HTTPS/HTTP2)\n  --cert \u003Cfile>            TLS certificate file\n  --key  \u003Cfile>            TLS private key file\n\nFETCH OPTIONS\n\n  -X, --request \u003Cmethod>   HTTP method (default: GET, or POST if body is provided)\n  -H, --header \u003Cheader>    Add header (format: \"Name: Value\", can be used multiple times)\n  -d, --data \u003Cdata>        Request body (use @- for stdin, @file for file)\n  -v, --verbose            Show request and response headers\n\nENVIRONMENT\n\n  PORT                     Override port\n  HOST                     Override host\n  NODE_ENV                 Set to production for production mode.\n","sh",[61,164,165,178,185,194,199,206,227,242,257,272,287,302,323,328,336,341,347,360,375,393,413,434,454,471,499,504,513,518,552,585,606,627,632,639,644,683,718,762,794,820,835,857,882,887,894,899,948,995,1039,1062,1067,1073,1078,1090,1101],{"__ignoreMap":75},[79,166,167,169,172,175],{"class":81,"line":82},[79,168,63],{"class":85},[79,170,171],{"class":89},"   -",[79,173,174],{"class":89}," Universal",[79,176,177],{"class":89}," Server.\n",[79,179,181],{"class":81,"line":180},2,[79,182,184],{"emptyLinePlaceholder":183},true,"\n",[79,186,188,191],{"class":81,"line":187},3,[79,189,190],{"class":85},"SERVE",[79,192,193],{"class":89}," MODE\n",[79,195,197],{"class":81,"line":196},4,[79,198,184],{"emptyLinePlaceholder":183},[79,200,202],{"class":81,"line":201},5,[79,203,205],{"class":204},"sCsY4","# srvx serve [options]\n",[79,207,209,212,215,218,221,224],{"class":81,"line":208},6,[79,210,211],{"class":85},"$",[79,213,214],{"class":89}," srvx",[79,216,217],{"class":89}," serve",[79,219,220],{"class":132}," --entry",[79,222,223],{"class":89}," ./server.ts",[79,225,226],{"class":204},"    # Start development server\n",[79,228,230,232,234,236,239],{"class":81,"line":229},7,[79,231,211],{"class":85},[79,233,214],{"class":89},[79,235,217],{"class":89},[79,237,238],{"class":132}," --prod",[79,240,241],{"class":204},"                 # Start production  server\n",[79,243,245,247,249,251,254],{"class":81,"line":244},8,[79,246,211],{"class":85},[79,248,214],{"class":89},[79,250,217],{"class":89},[79,252,253],{"class":132}," --port=8080",[79,255,256],{"class":204},"            # Listen on port 8080\n",[79,258,260,262,264,266,269],{"class":81,"line":259},9,[79,261,211],{"class":85},[79,263,214],{"class":89},[79,265,217],{"class":89},[79,267,268],{"class":132}," --host=localhost",[79,270,271],{"class":204},"       # Bind to localhost only\n",[79,273,275,277,279,281,284],{"class":81,"line":274},10,[79,276,211],{"class":85},[79,278,214],{"class":89},[79,280,217],{"class":89},[79,282,283],{"class":132}," --static=./dist",[79,285,286],{"class":204},"        # Serve static files (no entry needed)\n",[79,288,290,292,294,296,299],{"class":81,"line":289},11,[79,291,211],{"class":85},[79,293,214],{"class":89},[79,295,217],{"class":89},[79,297,298],{"class":132}," --import=jiti/register",[79,300,301],{"class":204}," # Enable [jiti](https://github.com/unjs/jiti) loader\n",[79,303,305,307,309,311,314,317,320],{"class":81,"line":304},12,[79,306,211],{"class":85},[79,308,214],{"class":89},[79,310,217],{"class":89},[79,312,313],{"class":132}," --tls",[79,315,316],{"class":132}," --cert=cert.pem",[79,318,319],{"class":132}," --key=key.pem",[79,321,322],{"class":204},"  # Enable TLS (HTTPS/HTTP2)\n",[79,324,326],{"class":81,"line":325},13,[79,327,184],{"emptyLinePlaceholder":183},[79,329,331,334],{"class":81,"line":330},14,[79,332,333],{"class":85},"FETCH",[79,335,193],{"class":89},[79,337,339],{"class":81,"line":338},15,[79,340,184],{"emptyLinePlaceholder":183},[79,342,344],{"class":81,"line":343},16,[79,345,346],{"class":204},"# srvx fetch|curl [options] [url]\n",[79,348,350,352,354,357],{"class":81,"line":349},17,[79,351,211],{"class":85},[79,353,214],{"class":89},[79,355,356],{"class":89}," fetch",[79,358,359],{"class":204},"                  # Fetch from default entry\n",[79,361,363,365,367,369,372],{"class":81,"line":362},18,[79,364,211],{"class":85},[79,366,214],{"class":89},[79,368,356],{"class":89},[79,370,371],{"class":89}," /api/users",[79,373,374],{"class":204},"       # Fetch a specific URL/path\n",[79,376,378,380,382,384,386,388,390],{"class":81,"line":377},19,[79,379,211],{"class":85},[79,381,214],{"class":89},[79,383,356],{"class":89},[79,385,220],{"class":132},[79,387,223],{"class":89},[79,389,371],{"class":89},[79,391,392],{"class":204}," # Fetch using a specific entry\n",[79,394,396,398,400,402,405,408,410],{"class":81,"line":395},20,[79,397,211],{"class":85},[79,399,214],{"class":89},[79,401,356],{"class":89},[79,403,404],{"class":132}," -X",[79,406,407],{"class":89}," POST",[79,409,371],{"class":89},[79,411,412],{"class":204}," # POST request\n",[79,414,416,418,420,422,425,428,431],{"class":81,"line":415},21,[79,417,211],{"class":85},[79,419,214],{"class":89},[79,421,356],{"class":89},[79,423,424],{"class":132}," -H",[79,426,427],{"class":89}," \"Content-Type: application/json\"",[79,429,430],{"class":89}," /api",[79,432,433],{"class":204}," # With headers\n",[79,435,437,439,441,443,446,449,451],{"class":81,"line":436},22,[79,438,211],{"class":85},[79,440,214],{"class":89},[79,442,356],{"class":89},[79,444,445],{"class":132}," -d",[79,447,448],{"class":89}," '{\"name\":\"foo\"}'",[79,450,430],{"class":89},[79,452,453],{"class":204}," # With request body\n",[79,455,457,459,461,463,466,468],{"class":81,"line":456},23,[79,458,211],{"class":85},[79,460,214],{"class":89},[79,462,356],{"class":89},[79,464,465],{"class":132}," -v",[79,467,371],{"class":89},[79,469,470],{"class":204},"    # Verbose output (show headers)\n",[79,472,474,476,479,481,485,487,489,491,494,496],{"class":81,"line":473},24,[79,475,211],{"class":85},[79,477,478],{"class":89}," echo",[79,480,448],{"class":89},[79,482,484],{"class":483},"so5gQ"," |",[79,486,214],{"class":85},[79,488,356],{"class":89},[79,490,445],{"class":132},[79,492,493],{"class":89}," @-",[79,495,430],{"class":89},[79,497,498],{"class":204}," # Body from stdin\n",[79,500,502],{"class":81,"line":501},25,[79,503,184],{"emptyLinePlaceholder":183},[79,505,507,510],{"class":81,"line":506},26,[79,508,509],{"class":85},"COMMON",[79,511,512],{"class":89}," OPTIONS\n",[79,514,516],{"class":81,"line":515},27,[79,517,184],{"emptyLinePlaceholder":183},[79,519,521,524,527,530,534,537,540,543,546,549],{"class":81,"line":520},28,[79,522,523],{"class":85},"  --entry",[79,525,526],{"class":483}," \u003C",[79,528,529],{"class":89},"fil",[79,531,533],{"class":532},"slsVL","e",[79,535,536],{"class":483},">",[79,538,539],{"class":89},"           Server",[79,541,542],{"class":89}," entry",[79,544,545],{"class":89}," file",[79,547,548],{"class":89}," to",[79,550,551],{"class":89}," use\n",[79,553,555,558,560,563,566,568,571,574,577,580,582],{"class":81,"line":554},29,[79,556,557],{"class":85},"  --dir",[79,559,526],{"class":483},[79,561,562],{"class":89},"di",[79,564,565],{"class":532},"r",[79,567,536],{"class":483},[79,569,570],{"class":89},"              Working",[79,572,573],{"class":89}," directory",[79,575,576],{"class":89}," for",[79,578,579],{"class":89}," resolving",[79,581,542],{"class":89},[79,583,584],{"class":89}," file\n",[79,586,588,591,594,597,600,603],{"class":81,"line":587},30,[79,589,590],{"class":85},"  -h,",[79,592,593],{"class":132}," --help",[79,595,596],{"class":89},"               Show",[79,598,599],{"class":89}," this",[79,601,602],{"class":89}," help",[79,604,605],{"class":89}," message\n",[79,607,609,612,615,618,621,624],{"class":81,"line":608},31,[79,610,611],{"class":85},"  --version",[79,613,614],{"class":89},"                Show",[79,616,617],{"class":89}," server",[79,619,620],{"class":89}," and",[79,622,623],{"class":89}," runtime",[79,625,626],{"class":89}," versions\n",[79,628,630],{"class":81,"line":629},32,[79,631,184],{"emptyLinePlaceholder":183},[79,633,635,637],{"class":81,"line":634},33,[79,636,190],{"class":85},[79,638,512],{"class":89},[79,640,642],{"class":81,"line":641},34,[79,643,184],{"emptyLinePlaceholder":183},[79,645,647,650,653,655,658,661,663,666,668,671,674,677,680],{"class":81,"line":646},35,[79,648,649],{"class":85},"  -p,",[79,651,652],{"class":132}," --port",[79,654,526],{"class":483},[79,656,657],{"class":89},"por",[79,659,660],{"class":532},"t",[79,662,536],{"class":483},[79,664,665],{"class":89},"        Port",[79,667,548],{"class":89},[79,669,670],{"class":89}," listen",[79,672,673],{"class":89}," on",[79,675,676],{"class":532}," (default: ",[79,678,679],{"class":132},"3000",[79,681,682],{"class":532},")\n",[79,684,686,689,691,694,696,698,701,703,706,708,710,713,716],{"class":81,"line":685},36,[79,687,688],{"class":85},"  --host",[79,690,526],{"class":483},[79,692,693],{"class":89},"hos",[79,695,660],{"class":532},[79,697,536],{"class":483},[79,699,700],{"class":89},"            Host",[79,702,548],{"class":89},[79,704,705],{"class":89}," bind",[79,707,548],{"class":89},[79,709,676],{"class":532},[79,711,712],{"class":89},"all",[79,714,715],{"class":89}," interfaces",[79,717,682],{"class":532},[79,719,721,724,727,729,731,733,735,738,741,744,747,750,753,755,757,760],{"class":81,"line":720},37,[79,722,723],{"class":85},"  -s,",[79,725,726],{"class":132}," --static",[79,728,526],{"class":483},[79,730,562],{"class":89},[79,732,565],{"class":532},[79,734,536],{"class":483},[79,736,737],{"class":89},"       Serve",[79,739,740],{"class":89}," static",[79,742,743],{"class":89}," files",[79,745,746],{"class":89}," from",[79,748,749],{"class":89}," the",[79,751,752],{"class":89}," specified",[79,754,573],{"class":89},[79,756,676],{"class":532},[79,758,759],{"class":89},"public",[79,761,682],{"class":532},[79,763,765,768,771,774,777,780,783,786,789,792],{"class":81,"line":764},38,[79,766,767],{"class":85},"  --prod",[79,769,770],{"class":89},"                   Run",[79,772,773],{"class":89}," in",[79,775,776],{"class":89}," production",[79,778,779],{"class":89}," mode",[79,781,782],{"class":532}," (no ",[79,784,785],{"class":89},"watch,",[79,787,788],{"class":89}," no",[79,790,791],{"class":89}," debug",[79,793,682],{"class":532},[79,795,797,800,802,805,807,809,812,815,817],{"class":81,"line":796},39,[79,798,799],{"class":85},"  --import",[79,801,526],{"class":483},[79,803,804],{"class":89},"loade",[79,806,565],{"class":532},[79,808,536],{"class":483},[79,810,811],{"class":89},"        ES",[79,813,814],{"class":89}," module",[79,816,548],{"class":89},[79,818,819],{"class":89}," preload\n",[79,821,823,826,829,832],{"class":81,"line":822},40,[79,824,825],{"class":85},"  --tls",[79,827,828],{"class":89},"                    Enable",[79,830,831],{"class":89}," TLS",[79,833,834],{"class":532}," (HTTPS/HTTP2)\n",[79,836,838,841,843,845,847,849,852,855],{"class":81,"line":837},41,[79,839,840],{"class":85},"  --cert",[79,842,526],{"class":483},[79,844,529],{"class":89},[79,846,533],{"class":532},[79,848,536],{"class":483},[79,850,851],{"class":89},"            TLS",[79,853,854],{"class":89}," certificate",[79,856,584],{"class":89},[79,858,860,863,866,868,870,872,874,877,880],{"class":81,"line":859},42,[79,861,862],{"class":85},"  --key",[79,864,865],{"class":483},"  \u003C",[79,867,529],{"class":89},[79,869,533],{"class":532},[79,871,536],{"class":483},[79,873,851],{"class":89},[79,875,876],{"class":89}," private",[79,878,879],{"class":89}," key",[79,881,584],{"class":89},[79,883,885],{"class":81,"line":884},43,[79,886,184],{"emptyLinePlaceholder":183},[79,888,890,892],{"class":81,"line":889},44,[79,891,333],{"class":85},[79,893,512],{"class":89},[79,895,897],{"class":81,"line":896},45,[79,898,184],{"emptyLinePlaceholder":183},[79,900,902,905,908,910,913,916,918,921,924,926,929,932,934,937,940,943,946],{"class":81,"line":901},46,[79,903,904],{"class":85},"  -X,",[79,906,907],{"class":132}," --request",[79,909,526],{"class":483},[79,911,912],{"class":89},"metho",[79,914,915],{"class":532},"d",[79,917,536],{"class":483},[79,919,920],{"class":89},"   HTTP",[79,922,923],{"class":89}," method",[79,925,676],{"class":532},[79,927,928],{"class":89},"GET,",[79,930,931],{"class":89}," or",[79,933,407],{"class":89},[79,935,936],{"class":89}," if",[79,938,939],{"class":89}," body",[79,941,942],{"class":89}," is",[79,944,945],{"class":89}," provided",[79,947,682],{"class":532},[79,949,951,954,957,959,962,964,966,969,972,975,978,981,984,987,990,993],{"class":81,"line":950},47,[79,952,953],{"class":85},"  -H,",[79,955,956],{"class":132}," --header",[79,958,526],{"class":483},[79,960,961],{"class":89},"heade",[79,963,565],{"class":532},[79,965,536],{"class":483},[79,967,968],{"class":89},"    Add",[79,970,971],{"class":89}," header",[79,973,974],{"class":532}," (format: ",[79,976,977],{"class":89},"\"Name: Value\",",[79,979,980],{"class":89}," can",[79,982,983],{"class":89}," be",[79,985,986],{"class":89}," used",[79,988,989],{"class":89}," multiple",[79,991,992],{"class":89}," times",[79,994,682],{"class":532},[79,996,998,1001,1004,1006,1009,1012,1014,1017,1019,1022,1025,1027,1030,1033,1035,1037],{"class":81,"line":997},48,[79,999,1000],{"class":85},"  -d,",[79,1002,1003],{"class":132}," --data",[79,1005,526],{"class":483},[79,1007,1008],{"class":89},"dat",[79,1010,1011],{"class":532},"a",[79,1013,536],{"class":483},[79,1015,1016],{"class":89},"        Request",[79,1018,939],{"class":89},[79,1020,1021],{"class":532}," (use ",[79,1023,1024],{"class":89},"@-",[79,1026,576],{"class":89},[79,1028,1029],{"class":89}," stdin,",[79,1031,1032],{"class":89}," @file",[79,1034,576],{"class":89},[79,1036,545],{"class":89},[79,1038,682],{"class":532},[79,1040,1042,1045,1048,1051,1054,1056,1059],{"class":81,"line":1041},49,[79,1043,1044],{"class":85},"  -v,",[79,1046,1047],{"class":132}," --verbose",[79,1049,1050],{"class":89},"            Show",[79,1052,1053],{"class":89}," request",[79,1055,620],{"class":89},[79,1057,1058],{"class":89}," response",[79,1060,1061],{"class":89}," headers\n",[79,1063,1065],{"class":81,"line":1064},50,[79,1066,184],{"emptyLinePlaceholder":183},[79,1068,1070],{"class":81,"line":1069},51,[79,1071,1072],{"class":85},"ENVIRONMENT\n",[79,1074,1076],{"class":81,"line":1075},52,[79,1077,184],{"emptyLinePlaceholder":183},[79,1079,1081,1084,1087],{"class":81,"line":1080},53,[79,1082,1083],{"class":85},"  PORT",[79,1085,1086],{"class":89},"                     Override",[79,1088,1089],{"class":89}," port\n",[79,1091,1093,1096,1098],{"class":81,"line":1092},54,[79,1094,1095],{"class":85},"  HOST",[79,1097,1086],{"class":89},[79,1099,1100],{"class":89}," host\n",[79,1102,1104,1107,1110,1112,1114,1116,1118],{"class":81,"line":1103},55,[79,1105,1106],{"class":85},"  NODE_ENV",[79,1108,1109],{"class":89},"                 Set",[79,1111,548],{"class":89},[79,1113,776],{"class":89},[79,1115,576],{"class":89},[79,1117,776],{"class":89},[79,1119,1120],{"class":89}," mode.\n",[154,1122,1124],{"id":1123},"serving-static-files","Serving static files",[57,1126,1127,1128,1136,1137,1140],{},"The CLI can serve a directory of static files, similar to ",[1011,1129,1133],{"href":1130,"rel":1131},"https://github.com/vercel/serve",[1132],"nofollow",[61,1134,1135],{},"serve",". No server entry is required — point ",[61,1138,1139],{},"--static"," at any folder:",[69,1142,1144],{"className":71,"code":1143,"language":74,"meta":75,"style":75},"npx srvx --static ./dist\n",[61,1145,1146],{"__ignoreMap":75},[79,1147,1148,1150,1152,1154],{"class":81,"line":82},[79,1149,86],{"class":85},[79,1151,214],{"class":89},[79,1153,726],{"class":132},[79,1155,1156],{"class":89}," ./dist\n",[57,1158,1159,1160,1162,1163,1166],{},"If ",[61,1161,1139],{}," is omitted, srvx serves files from a ",[61,1164,1165],{},"public/"," directory when one exists. When both a server entry and a static directory are present, static files take priority and unmatched requests fall through to your handler.",[57,1168,1169,1170,1173,1174,1177,1178,1181,1182,1185],{},"Static serving includes automatic ",[61,1171,1172],{},"index.html"," resolution, ",[61,1175,1176],{},".html"," extension fallback (e.g. ",[61,1179,1180],{},"/about"," → ",[61,1183,1184],{},"about.html","), common MIME types, gzip/Brotli compression, and path-traversal protection.",[57,1187,1188,1189,1196],{},"For programmatic usage, import the ",[1011,1190,1193],{"href":1191,"rel":1192},"https://github.com/h3js/srvx/blob/main/src/static.ts",[1132],[61,1194,1195],{},"serveStatic"," middleware:",[69,1198,1203],{"className":1199,"code":1200,"filename":1201,"language":1202,"meta":75,"style":75},"language-ts shiki shiki-themes github-light github-dark github-dark","import { serve } from \"srvx\";\nimport { serveStatic } from \"srvx/static\";\n\nserve({\n  middleware: [serveStatic({ dir: \"public\" })],\n  fetch: () => new Response(\"Not found\", { status: 404 }),\n});\n","server.ts","ts",[61,1204,1205,1222,1236,1240,1247,1263,1295],{"__ignoreMap":75},[79,1206,1207,1210,1213,1216,1219],{"class":81,"line":82},[79,1208,1209],{"class":483},"import",[79,1211,1212],{"class":532}," { serve } ",[79,1214,1215],{"class":483},"from",[79,1217,1218],{"class":89}," \"srvx\"",[79,1220,1221],{"class":532},";\n",[79,1223,1224,1226,1229,1231,1234],{"class":81,"line":180},[79,1225,1209],{"class":483},[79,1227,1228],{"class":532}," { serveStatic } ",[79,1230,1215],{"class":483},[79,1232,1233],{"class":89}," \"srvx/static\"",[79,1235,1221],{"class":532},[79,1237,1238],{"class":81,"line":187},[79,1239,184],{"emptyLinePlaceholder":183},[79,1241,1242,1244],{"class":81,"line":196},[79,1243,1135],{"class":85},[79,1245,1246],{"class":532},"({\n",[79,1248,1249,1252,1254,1257,1260],{"class":81,"line":201},[79,1250,1251],{"class":532},"  middleware: [",[79,1253,1195],{"class":85},[79,1255,1256],{"class":532},"({ dir: ",[79,1258,1259],{"class":89},"\"public\"",[79,1261,1262],{"class":532}," })],\n",[79,1264,1265,1268,1271,1274,1277,1280,1283,1286,1289,1292],{"class":81,"line":208},[79,1266,1267],{"class":85},"  fetch",[79,1269,1270],{"class":532},": () ",[79,1272,1273],{"class":483},"=>",[79,1275,1276],{"class":483}," new",[79,1278,1279],{"class":85}," Response",[79,1281,1282],{"class":532},"(",[79,1284,1285],{"class":89},"\"Not found\"",[79,1287,1288],{"class":532},", { status: ",[79,1290,1291],{"class":132},"404",[79,1293,1294],{"class":532}," }),\n",[79,1296,1297],{"class":81,"line":229},[79,1298,1299],{"class":532},"});\n",[1301,1302,1303],"style",{},"html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}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);}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}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}",{"title":75,"searchDepth":180,"depth":180,"links":1305},[1306,1307],{"id":156,"depth":180,"text":157},{"id":1123,"depth":180,"text":1124},"Use the srvx CLI command to easily start a development or production server.","md",{"automd":183,"icon":50},{"icon":50},{"title":47,"description":1308},"4uQssnH4dp0zpwCBkfC3lD-ZQl87h8JTRFZmHHKZ3Fg",[1315,1317],{"title":42,"path":43,"stem":44,"description":1316,"icon":45,"children":-1},"AWS Lambda compatibility",null,1782990663560]