[{"data":1,"prerenderedAt":253},["ShallowReactive",2],{"navigation_docs":3,"-docs-storage-overview":77,"-docs-storage-overview-surround":248},[4,19,41,63],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":18},"Getting Started","i-ph-rocket-launch-duotone","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[10,14],{"title":11,"path":12,"stem":13},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F1.installation",{"title":15,"path":16,"stem":17},"Configuration","\u002Fdocs\u002Fgetting-started\u002Fconfiguration","docs\u002F1.getting-started\u002F2.configuration",false,{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":18},"Storage","i-ph-database-duotone","\u002Fdocs\u002Fstorage","docs\u002F2.storage",[25,29,33,37],{"title":26,"path":27,"stem":28},"Overview","\u002Fdocs\u002Fstorage\u002Foverview","docs\u002F2.storage\u002F1.overview",{"title":30,"path":31,"stem":32},"NuxtHub","\u002Fdocs\u002Fstorage\u002Fnuxthub","docs\u002F2.storage\u002F2.nuxthub",{"title":34,"path":35,"stem":36},"Nitro Storage","\u002Fdocs\u002Fstorage\u002Fnitro","docs\u002F2.storage\u002F3.nitro",{"title":38,"path":39,"stem":40},"Memory","\u002Fdocs\u002Fstorage\u002Fmemory","docs\u002F2.storage\u002F4.memory",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":18},"Composables","i-ph-puzzle-piece-duotone","\u002Fdocs\u002Fcomposables","docs\u002F3.composables",[47,51,55,59],{"title":48,"path":49,"stem":50},"useFlag()","\u002Fdocs\u002Fcomposables\u002Fuse-flag","docs\u002F3.composables\u002F1.use-flag",{"title":52,"path":53,"stem":54},"useVariant()","\u002Fdocs\u002Fcomposables\u002Fuse-variant","docs\u002F3.composables\u002F2.use-variant",{"title":56,"path":57,"stem":58},"useAllFlags()","\u002Fdocs\u002Fcomposables\u002Fuse-all-flags","docs\u002F3.composables\u002F3.use-all-flags",{"title":60,"path":61,"stem":62},"useFlagsStatus()","\u002Fdocs\u002Fcomposables\u002Fuse-flags-status","docs\u002F3.composables\u002F4.use-flags-status",{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":18},"Server","i-ph-cloud-duotone","\u002Fdocs\u002Fserver","docs\u002F4.server",[69,73],{"title":70,"path":71,"stem":72},"API Route","\u002Fdocs\u002Fserver\u002Fapi-route","docs\u002F4.server\u002F1.api-route",{"title":74,"path":75,"stem":76},"Server Utils","\u002Fdocs\u002Fserver\u002Fserver-utils","docs\u002F4.server\u002F2.server-utils",{"id":78,"title":26,"body":79,"description":240,"extension":241,"links":242,"meta":243,"navigation":245,"path":27,"seo":246,"stem":28,"__hash__":247},"docs\u002Fdocs\u002F2.storage\u002F1.overview.md",{"type":80,"value":81,"toc":228},"minimark",[82,87,96,136,140,143,222],[83,84,86],"h2",{"id":85},"how-it-works","How It Works",[88,89,90,91,95],"p",{},"nuxt-unleash caches feature flag data from your Unleash Proxy using a ",[92,93,94],"strong",{},"stale-while-revalidate"," strategy:",[97,98,99,104,107,111,119,123,129,133],"steps",{},[100,101,103],"h3",{"id":102},"first-request","First request",[88,105,106],{},"On server startup (or first request with an empty cache), the module fetches flags synchronously from the Unleash Proxy and stores them.",[100,108,110],{"id":109},"subsequent-requests","Subsequent requests",[88,112,113,114,118],{},"Each request reads flags from the cache. If the cache is fresh (younger than ",[115,116,117],"code",{},"refreshInterval","), flags are returned immediately with no network call.",[100,120,122],{"id":121},"stale-cache","Stale cache",[88,124,125,126,128],{},"If the cache is older than ",[115,127,117],{},", the current (stale) flags are returned immediately and a background refresh is triggered. The next request gets fresh data.",[100,130,132],{"id":131},"deduplication","Deduplication",[88,134,135],{},"A lock prevents multiple concurrent requests from triggering multiple refreshes. Only one fetch runs at a time.",[83,137,139],{"id":138},"storage-backends","Storage Backends",[88,141,142],{},"Choose a storage backend based on your deployment target:",[144,145,146,165],"table",{},[147,148,149],"thead",{},[150,151,152,156,159,162],"tr",{},[153,154,155],"th",{},"Backend",[153,157,158],{},"Best for",[153,160,161],{},"Persistence",[153,163,164],{},"Config",[166,167,168,187,205],"tbody",{},[150,169,170,176,179,182],{},[171,172,173],"td",{},[174,175,30],"a",{"href":31},[171,177,178],{},"Cloudflare Workers via NuxtHub",[171,180,181],{},"KV store",[171,183,184],{},[115,185,186],{},"storage: 'nuxthub'",[150,188,189,194,197,200],{},[171,190,191],{},[174,192,193],{"href":35},"Nitro",[171,195,196],{},"Custom drivers (CF KV, Redis, etc.)",[171,198,199],{},"Driver-dependent",[171,201,202],{},[115,203,204],{},"storage: 'nitro'",[150,206,207,211,214,217],{},[171,208,209],{},[174,210,38],{"href":39},[171,212,213],{},"Development, simple Node.js",[171,215,216],{},"In-process only",[171,218,219],{},[115,220,221],{},"storage: 'memory'",[223,224,225,227],"tip",{},[92,226,30],{}," is the recommended backend. It provides persistent KV storage that works across Cloudflare Workers invocations with zero configuration.",{"title":229,"searchDepth":230,"depth":230,"links":231},"",2,[232,239],{"id":85,"depth":230,"text":86,"children":233},[234,236,237,238],{"id":102,"depth":235,"text":103},3,{"id":109,"depth":235,"text":110},{"id":121,"depth":235,"text":122},{"id":131,"depth":235,"text":132},{"id":138,"depth":230,"text":139},"How nuxt-unleash caches feature flags across different runtimes.","md",null,{"icon":244},"i-ph-eye-duotone",true,{"title":26,"description":240},"gOyHlNlXiFSeYdpIaDz-ZKy05tzbj79xse6xIkD56sc",[249,251],{"title":15,"path":16,"stem":17,"description":250,"children":-1},"All configuration options for nuxt-unleash.",{"title":30,"path":31,"stem":32,"description":252,"children":-1},"Use NuxtHub KV as the storage backend for feature flags.",1775559945628]