[{"data":1,"prerenderedAt":900},["ShallowReactive",2],{"navigation_docs":3,"-run-types-caveats":195,"-run-types-caveats-surround":895},[4,27,61,75,100,126,147,177],{"title":5,"icon":6,"redirect":7,"path":8,"stem":9,"children":10,"page":26},"Introduction","icon-park-outline:home","\u002Fintroduction\u002Fabout-mion","\u002Fintroduction","1.introduction",[11,14,18,22],{"title":12,"path":7,"stem":13},"About mion","1.introduction\u002F1.about-mion",{"title":15,"path":16,"stem":17},"Quick Start","\u002Fintroduction\u002Fquick-start","1.introduction\u002F2.quick-start",{"title":19,"path":20,"stem":21},"Manual Install","\u002Fintroduction\u002Fmanual-install","1.introduction\u002F3.manual-install",{"title":23,"path":24,"stem":25},"What's Next","\u002Fintroduction\u002Fwhat-is-next","1.introduction\u002F4.what-is-next",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Server","icon-park-outline:server","\u002Fserver","20.server",[33,37,41,45,49,53,57],{"title":34,"path":35,"stem":36},"Router Overview","\u002Fserver\u002Foverview","20.server\u002F0.overview",{"title":38,"path":39,"stem":40},"Routes","\u002Fserver\u002Froutes","20.server\u002F1.routes",{"title":42,"path":43,"stem":44},"Middleware","\u002Fserver\u002Fmiddle-fns","20.server\u002F2.middle-fns",{"title":46,"path":47,"stem":48},"Request & Response","\u002Fserver\u002Frequest-and-response","20.server\u002F5.request-and-response",{"title":50,"path":51,"stem":52},"Error Handling","\u002Fserver\u002Ferror-handling","20.server\u002F6.error-handling",{"title":54,"path":55,"stem":56},"Validation","\u002Fserver\u002Fvalidation","20.server\u002F7.validation",{"title":58,"path":59,"stem":60},"Serialization","\u002Fserver\u002Fserialization","20.server\u002F8.serialization",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":26},"Drizzle ORM","i-lineicons-drizzle","\u002Fdrizzle-orm","21.drizzle-orm",[67,71],{"title":68,"path":69,"stem":70},"Drizzle Overview","\u002Fdrizzle-orm\u002Fdrizzle-overview","21.drizzle-orm\u002F0.drizzle-overview",{"title":72,"path":73,"stem":74},"Column Mapping","\u002Fdrizzle-orm\u002Fcolumn-mapping","21.drizzle-orm\u002F1.column-mapping",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":26},"Client","icon-park-outline:computer","\u002Fclient","3.client",[81,85,88,92,96],{"title":82,"path":83,"stem":84},"Client Overview","\u002Fclient\u002Fclient-overview","3.client\u002F0.client-overview",{"title":50,"path":86,"stem":87},"\u002Fclient\u002Ferror-handling","3.client\u002F1.error-handling",{"title":89,"path":90,"stem":91},"Validation Errors","\u002Fclient\u002Fvalidation-errors","3.client\u002F2.validation-errors",{"title":93,"path":94,"stem":95},"Routes Flow","\u002Fclient\u002Fclient-flow","3.client\u002F3.client-flow",{"title":97,"path":98,"stem":99},"Cancellation & Timeouts","\u002Fclient\u002Fcancellation-timeouts","3.client\u002F4.cancellation-timeouts",{"title":101,"icon":102,"redirect":103,"path":104,"stem":105,"children":106,"page":26},"RunTypes","i-lucide-scan-text","\u002Frun-types\u002Foverview","\u002Frun-types","4.run-types",[107,110,114,118,122],{"title":108,"path":103,"stem":109},"RunTypes Overview","4.run-types\u002F0.overview",{"title":111,"path":112,"stem":113},"Supported Types","\u002Frun-types\u002Ffeatures","4.run-types\u002F1.features",{"title":115,"path":116,"stem":117},"Type Formats","\u002Frun-types\u002Ftype-formats","4.run-types\u002F2.type-formats",{"title":119,"path":120,"stem":121},"Built-in Formats","\u002Frun-types\u002Fbuilt-in-formats","4.run-types\u002F3.built-in-formats",{"title":123,"path":124,"stem":125},"Caveats","\u002Frun-types\u002Fcaveats","4.run-types\u002F4.caveats",{"title":127,"path":128,"stem":129,"children":130,"page":26},"Devtools","\u002Fdevtools","5.devtools",[131,135,139,143],{"title":132,"path":133,"stem":134},"AOT Compilation","\u002Fdevtools\u002Faot-compilation","5.devtools\u002F0.aot-compilation",{"title":136,"path":137,"stem":138},"Pure Functions","\u002Fdevtools\u002Fpure-functions","5.devtools\u002F1.pure-functions",{"title":140,"path":141,"stem":142},"ESLint Rules","\u002Fdevtools\u002Feslint-rules","5.devtools\u002F2.eslint-rules",{"title":144,"path":145,"stem":146},"Vite Configuration","\u002Fdevtools\u002Fvite-config","5.devtools\u002F3.vite-config",{"title":148,"redirect":149,"icon":150,"path":151,"stem":152,"children":153,"page":26},"Platforms","\u002Fplatforms\u002Fnode-js","icon-park-outline:play","\u002Fplatforms","6.platforms",[154,157,161,165,169,173],{"title":155,"path":149,"stem":156},"Node.js","6.platforms\u002F1.node-js",{"title":158,"path":159,"stem":160},"Bun","\u002Fplatforms\u002Fbun","6.platforms\u002F2.bun",{"title":162,"path":163,"stem":164},"AWS Lambda","\u002Fplatforms\u002Faws-lambda","6.platforms\u002F3.aws-lambda",{"title":166,"path":167,"stem":168},"Google Cloud Functions","\u002Fplatforms\u002Fgoogle-cloud-functions","6.platforms\u002F4.google-cloud-functions",{"title":170,"path":171,"stem":172},"Cloudflare Workers","\u002Fplatforms\u002Fcloudflare","6.platforms\u002F5.cloudflare",{"title":174,"path":175,"stem":176},"Vercel","\u002Fplatforms\u002Fvercel","6.platforms\u002F6.vercel",{"title":178,"icon":179,"redirect":180,"path":181,"stem":182,"children":183,"page":26},"Benchmarks","icon-park-outline:chart-line","\u002Fbenchmarks\u002Fhello-world","\u002Fbenchmarks","7.benchmarks",[184,187,191],{"title":185,"path":180,"stem":186},"Hello World","7.benchmarks\u002F1.hello-world",{"title":188,"path":189,"stem":190},"Light Validation","\u002Fbenchmarks\u002Flight-validation","7.benchmarks\u002F2.light-validation",{"title":192,"path":193,"stem":194},"Heavy Validation","\u002Fbenchmarks\u002Fheavy-validation","7.benchmarks\u002F3.heavy-validation",{"id":196,"title":123,"body":197,"description":889,"extension":890,"links":891,"meta":892,"navigation":332,"path":124,"seo":893,"stem":125,"__hash__":894},"docs\u002F4.run-types\u002F4.caveats.md",{"type":198,"value":199,"toc":881},"minimark",[200,209,214,226,392,407,410,414,417,499,507,509,517,533,669,677,679,683,686,782,793,795,799,802,823,826,870,877],[201,202,203,204,208],"p",{},"RunTypes relies on TypeScript's type metadata being available at runtime. There are common pitfalls that can prevent this from working correctly. mion provides ",[205,206,207],"a",{"href":141},"ESLint rules"," to catch these issues at development time.",[210,211,213],"h2",{"id":212},"type-only-imports","Type-Only Imports",[201,215,216,217,221,222,225],{},"When you use ",[218,219,220],"code",{},"import type { X }"," or ",[218,223,224],{},"import { type X }",", TypeScript completely erases these imports at compile time. This means the type metadata is not available at runtime, and RunTypes cannot generate validation or serialization functions.",[227,228,233],"pre",{"className":229,"code":230,"language":231,"meta":232,"style":232},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F ❌ WRONG: Type-only import - erased at runtime\nimport type { User } from '.\u002Ftypes';\nroute((ctx, id: number): User => getUser(id));\n\n\u002F\u002F ✅ CORRECT: Regular import - type metadata preserved\nimport { User } from '.\u002Ftypes';\nroute((ctx, id: number): User => getUser(id));\n","ts","",[218,234,235,244,281,327,334,340,361],{"__ignoreMap":232},[236,237,240],"span",{"class":238,"line":239},"line",1,[236,241,243],{"class":242},"sHwdD","\u002F\u002F ❌ WRONG: Type-only import - erased at runtime\n",[236,245,247,251,254,258,262,265,268,271,275,278],{"class":238,"line":246},2,[236,248,250],{"class":249},"s7zQu","import",[236,252,253],{"class":249}," type",[236,255,257],{"class":256},"sMK4o"," {",[236,259,261],{"class":260},"sTEyZ"," User",[236,263,264],{"class":256}," }",[236,266,267],{"class":249}," from",[236,269,270],{"class":256}," '",[236,272,274],{"class":273},"sfazB",".\u002Ftypes",[236,276,277],{"class":256},"'",[236,279,280],{"class":256},";\n",[236,282,284,288,291,293,297,300,303,306,310,313,315,319,322,325],{"class":238,"line":283},3,[236,285,287],{"class":286},"s2Zo4","route",[236,289,290],{"class":260},"(",[236,292,290],{"class":256},[236,294,296],{"class":295},"sHdIc","ctx",[236,298,299],{"class":256},",",[236,301,302],{"class":295}," id",[236,304,305],{"class":256},":",[236,307,309],{"class":308},"sBMFI"," number",[236,311,312],{"class":256},"):",[236,314,261],{"class":308},[236,316,318],{"class":317},"spNyl"," =>",[236,320,321],{"class":286}," getUser",[236,323,324],{"class":260},"(id))",[236,326,280],{"class":256},[236,328,330],{"class":238,"line":329},4,[236,331,333],{"emptyLinePlaceholder":332},true,"\n",[236,335,337],{"class":238,"line":336},5,[236,338,339],{"class":242},"\u002F\u002F ✅ CORRECT: Regular import - type metadata preserved\n",[236,341,343,345,347,349,351,353,355,357,359],{"class":238,"line":342},6,[236,344,250],{"class":249},[236,346,257],{"class":256},[236,348,261],{"class":260},[236,350,264],{"class":256},[236,352,267],{"class":249},[236,354,270],{"class":256},[236,356,274],{"class":273},[236,358,277],{"class":256},[236,360,280],{"class":256},[236,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390],{"class":238,"line":363},7,[236,365,287],{"class":286},[236,367,290],{"class":260},[236,369,290],{"class":256},[236,371,296],{"class":295},[236,373,299],{"class":256},[236,375,302],{"class":295},[236,377,305],{"class":256},[236,379,309],{"class":308},[236,381,312],{"class":256},[236,383,261],{"class":308},[236,385,318],{"class":317},[236,387,321],{"class":286},[236,389,324],{"class":260},[236,391,280],{"class":256},[393,394,395,396,402,403,406],"note",{},"Use the ",[205,397,399],{"href":398},"\u002Fdevtools\u002Feslint-rules#mionkitno-type-imports",[218,400,401],{},"@mionjs\u002Fno-type-imports"," ESLint rule to catch this issue.",[404,405],"br",{},"\nThis Rule will only check Types that are used in routes\u002FmiddleFns.",[408,409],"hr",{},[210,411,413],{"id":412},"missing-type-annotations","Missing Type Annotations",[201,415,416],{},"RunTypes needs explicit type annotations on route\u002FmiddleFn parameters and return types. Without them, TypeScript cannot emit the type metadata needed for runtime validation.",[227,418,420],{"className":229,"code":419,"language":231,"meta":232,"style":232},"\u002F\u002F ❌ WRONG: Missing type annotations\nroute((ctx, user) => user.name);\n\n\u002F\u002F ✅ CORRECT: Explicit type annotations\nroute((ctx, user: User): string => user.name);\n",[218,421,422,427,457,461,466],{"__ignoreMap":232},[236,423,424],{"class":238,"line":239},[236,425,426],{"class":242},"\u002F\u002F ❌ WRONG: Missing type annotations\n",[236,428,429,431,433,435,437,439,442,445,447,449,452,455],{"class":238,"line":246},[236,430,287],{"class":286},[236,432,290],{"class":260},[236,434,290],{"class":256},[236,436,296],{"class":295},[236,438,299],{"class":256},[236,440,441],{"class":295}," user",[236,443,444],{"class":256},")",[236,446,318],{"class":317},[236,448,441],{"class":260},[236,450,451],{"class":256},".",[236,453,454],{"class":260},"name)",[236,456,280],{"class":256},[236,458,459],{"class":238,"line":283},[236,460,333],{"emptyLinePlaceholder":332},[236,462,463],{"class":238,"line":329},[236,464,465],{"class":242},"\u002F\u002F ✅ CORRECT: Explicit type annotations\n",[236,467,468,470,472,474,476,478,480,482,484,486,489,491,493,495,497],{"class":238,"line":336},[236,469,287],{"class":286},[236,471,290],{"class":260},[236,473,290],{"class":256},[236,475,296],{"class":295},[236,477,299],{"class":256},[236,479,441],{"class":295},[236,481,305],{"class":256},[236,483,261],{"class":308},[236,485,312],{"class":256},[236,487,488],{"class":308}," string",[236,490,318],{"class":317},[236,492,441],{"class":260},[236,494,451],{"class":256},[236,496,454],{"class":260},[236,498,280],{"class":256},[393,500,395,501,402],{},[205,502,504],{"href":503},"\u002Fdevtools\u002Feslint-rules#mionkitstrong-typed-routes",[218,505,506],{},"@mionjs\u002Fstrong-typed-routes",[408,508],{},[210,510,512,513,516],{"id":511},"using-typeof-with-runtype-functions","Using ",[218,514,515],{},"typeof"," with RunType Functions",[201,518,512,519,521,522,524,525,528,529,532],{},[218,520,515],{}," with runtime values can lead to incorrect type inference.",[404,523],{},"\nThe type metadata emitted at compile time is directly attached to type definitions (",[218,526,527],{},"User"," type in bellow example).\nSo using ",[218,530,531],{},"typeof user"," loses the type metadata.",[227,534,536],{"className":229,"code":535,"language":231,"meta":232,"style":232},"\u002F\u002F ❌ WRONG: typeof infers from current value\nconst user = { id: '1', name: 'John' };\nconst userRunType = runType\u003Ctypeof user>();\n\n\u002F\u002F ✅ CORRECT: Explicit type definition\ntype User = { id: string; name: string };\nconst userRunType = runType\u003CUser>();\n",[218,537,538,543,585,610,614,619,648],{"__ignoreMap":232},[236,539,540],{"class":238,"line":239},[236,541,542],{"class":242},"\u002F\u002F ❌ WRONG: typeof infers from current value\n",[236,544,545,548,551,554,556,559,561,563,566,568,570,573,575,577,580,582],{"class":238,"line":246},[236,546,547],{"class":317},"const",[236,549,550],{"class":260}," user ",[236,552,553],{"class":256},"=",[236,555,257],{"class":256},[236,557,302],{"class":558},"swJcz",[236,560,305],{"class":256},[236,562,270],{"class":256},[236,564,565],{"class":273},"1",[236,567,277],{"class":256},[236,569,299],{"class":256},[236,571,572],{"class":558}," name",[236,574,305],{"class":256},[236,576,270],{"class":256},[236,578,579],{"class":273},"John",[236,581,277],{"class":256},[236,583,584],{"class":256}," };\n",[236,586,587,589,592,594,597,600,602,605,608],{"class":238,"line":283},[236,588,547],{"class":317},[236,590,591],{"class":260}," userRunType ",[236,593,553],{"class":256},[236,595,596],{"class":286}," runType",[236,598,599],{"class":256},"\u003Ctypeof",[236,601,441],{"class":260},[236,603,604],{"class":256},">",[236,606,607],{"class":260},"()",[236,609,280],{"class":256},[236,611,612],{"class":238,"line":329},[236,613,333],{"emptyLinePlaceholder":332},[236,615,616],{"class":238,"line":336},[236,617,618],{"class":242},"\u002F\u002F ✅ CORRECT: Explicit type definition\n",[236,620,621,624,626,629,631,633,635,637,640,642,644,646],{"class":238,"line":342},[236,622,623],{"class":317},"type",[236,625,261],{"class":308},[236,627,628],{"class":256}," =",[236,630,257],{"class":256},[236,632,302],{"class":558},[236,634,305],{"class":256},[236,636,488],{"class":308},[236,638,639],{"class":256},";",[236,641,572],{"class":558},[236,643,305],{"class":256},[236,645,488],{"class":308},[236,647,584],{"class":256},[236,649,650,652,654,656,658,661,663,665,667],{"class":238,"line":363},[236,651,547],{"class":317},[236,653,591],{"class":260},[236,655,553],{"class":256},[236,657,596],{"class":286},[236,659,660],{"class":256},"\u003C",[236,662,527],{"class":308},[236,664,604],{"class":256},[236,666,607],{"class":260},[236,668,280],{"class":256},[393,670,395,671,402],{},[205,672,674],{"href":673},"\u002Fdevtools\u002Feslint-rules#mionkitno-typeof-runtype",[218,675,676],{},"@mionjs\u002Fno-typeof-runtype",[408,678],{},[210,680,682],{"id":681},"unreachable-union-types","Unreachable Union Types",[201,684,685],{},"When deserializing union types, RunTypes tries to match against each type in order. If a less specific type appears before a more specific type, the more specific type will never be matched.",[227,687,689],{"className":229,"code":688,"language":231,"meta":232,"style":232},"\u002F\u002F ❌ WRONG: {id: string} matches first, {id: string; name: string} is unreachable\ntype User = { id: string } | { id: string; name: string };\n\n\u002F\u002F ✅ CORRECT: Most specific type first\ntype User = { id: string; name: string } | { id: string };\n",[218,690,691,696,735,739,744],{"__ignoreMap":232},[236,692,693],{"class":238,"line":239},[236,694,695],{"class":242},"\u002F\u002F ❌ WRONG: {id: string} matches first, {id: string; name: string} is unreachable\n",[236,697,698,700,702,704,706,708,710,712,714,717,719,721,723,725,727,729,731,733],{"class":238,"line":246},[236,699,623],{"class":317},[236,701,261],{"class":308},[236,703,628],{"class":256},[236,705,257],{"class":256},[236,707,302],{"class":558},[236,709,305],{"class":256},[236,711,488],{"class":308},[236,713,264],{"class":256},[236,715,716],{"class":256}," |",[236,718,257],{"class":256},[236,720,302],{"class":558},[236,722,305],{"class":256},[236,724,488],{"class":308},[236,726,639],{"class":256},[236,728,572],{"class":558},[236,730,305],{"class":256},[236,732,488],{"class":308},[236,734,584],{"class":256},[236,736,737],{"class":238,"line":283},[236,738,333],{"emptyLinePlaceholder":332},[236,740,741],{"class":238,"line":329},[236,742,743],{"class":242},"\u002F\u002F ✅ CORRECT: Most specific type first\n",[236,745,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780],{"class":238,"line":336},[236,747,623],{"class":317},[236,749,261],{"class":308},[236,751,628],{"class":256},[236,753,257],{"class":256},[236,755,302],{"class":558},[236,757,305],{"class":256},[236,759,488],{"class":308},[236,761,639],{"class":256},[236,763,572],{"class":558},[236,765,305],{"class":256},[236,767,488],{"class":308},[236,769,264],{"class":256},[236,771,716],{"class":256},[236,773,257],{"class":256},[236,775,302],{"class":558},[236,777,305],{"class":256},[236,779,488],{"class":308},[236,781,584],{"class":256},[393,783,395,784,402,790,792],{},[205,785,787],{"href":786},"\u002Fdevtools\u002Feslint-rules#mionkitno-unreachable-union-types",[218,788,789],{},"@mionjs\u002Fno-unreachable-union-types",[404,791],{},"\nThis rule will only check Types that are used in routes\u002FmiddleFns.",[408,794],{},[210,796,798],{"id":797},"recommended-eslint-configuration","Recommended ESLint Configuration",[201,800,801],{},"To catch all these issues automatically, add the mion ESLint plugin to your project:",[227,803,807],{"className":804,"code":805,"language":806,"meta":232,"style":232},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @mionjs\u002Feslint-plugin -D\n","bash",[218,808,809],{"__ignoreMap":232},[236,810,811,814,817,820],{"class":238,"line":239},[236,812,813],{"class":308},"npm",[236,815,816],{"class":273}," install",[236,818,819],{"class":273}," @mionjs\u002Feslint-plugin",[236,821,822],{"class":273}," -D\n",[201,824,825],{},"Then use the recommended configuration:",[227,827,832],{"className":828,"code":829,"filename":830,"language":831,"meta":232,"style":232},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"extends\": [\"plugin:@mionjs\u002Frecommended\"]\n}\n",".eslintrc.json","json",[218,833,834,839,865],{"__ignoreMap":232},[236,835,836],{"class":238,"line":239},[236,837,838],{"class":256},"{\n",[236,840,841,844,847,850,852,855,857,860,862],{"class":238,"line":246},[236,842,843],{"class":256},"  \"",[236,845,846],{"class":317},"extends",[236,848,849],{"class":256},"\"",[236,851,305],{"class":256},[236,853,854],{"class":256}," [",[236,856,849],{"class":256},[236,858,859],{"class":273},"plugin:@mionjs\u002Frecommended",[236,861,849],{"class":256},[236,863,864],{"class":256},"]\n",[236,866,867],{"class":238,"line":283},[236,868,869],{"class":256},"}\n",[201,871,872,873,876],{},"This enables all the rules mentioned above with ",[218,874,875],{},"error"," severity.",[878,879,880],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":232,"searchDepth":246,"depth":246,"links":882},[883,884,885,887,888],{"id":212,"depth":246,"text":213},{"id":412,"depth":246,"text":413},{"id":511,"depth":246,"text":886},"Using typeof with RunType Functions",{"id":681,"depth":246,"text":682},{"id":797,"depth":246,"text":798},"Common pitfalls when using RunTypes and how to avoid them with ESLint rules.","md",null,{},{"title":123,"description":889},"8tDMYBWK-7SmR_vSleJhr-SuCbqtjcaO0k85qXWYlCw",[896,898],{"title":119,"path":120,"stem":121,"description":897,"children":-1},"Complete reference for all built-in string and number format types with usage examples and parameters.",{"title":132,"path":133,"stem":134,"description":899,"children":-1},"Learn how Ahead-of-Time (AOT) compilation works in mion using the Vite plugin and virtual modules.",1778674529238]