[{"data":1,"prerenderedAt":590},["ShallowReactive",2],{"navigation":3,"index":208},[4,98,175],{"title":5,"path":6,"stem":7,"children":8,"icon":97},"Guide","\u002Fguide","1.guide\u002F1.index",[9,12,17,22,46,61,79],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fguide\u002Finstallation","1.guide\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Quick start","\u002Fguide\u002Fquick-start","1.guide\u002F3.quick-start","i-lucide-rocket",{"title":23,"path":24,"stem":25,"children":26,"icon":45},"Server","\u002Fguide\u002Fserver","1.guide\u002F4.server\u002F1.index",[27,30,35,40],{"title":28,"path":24,"stem":25,"icon":29},"Usage","i-lucide-server",{"title":31,"path":32,"stem":33,"icon":34},"Config file","\u002Fguide\u002Fserver\u002Fconfig-file","1.guide\u002F4.server\u002F2.config-file","i-lucide-file-cog",{"title":36,"path":37,"stem":38,"icon":39},"Options","\u002Fguide\u002Fserver\u002Foptions","1.guide\u002F4.server\u002F3.options","i-lucide-settings",{"title":41,"path":42,"stem":43,"icon":44},"Advanced","\u002Fguide\u002Fserver\u002Fadvanced","1.guide\u002F4.server\u002F4.advanced","i-lucide-flask-conical",false,{"title":47,"path":48,"stem":49,"children":50,"icon":45},"Client","\u002Fguide\u002Fclient","1.guide\u002F5.client\u002F1.index",[51,53,58],{"title":28,"path":48,"stem":49,"icon":52},"i-lucide-monitor-smartphone",{"title":54,"path":55,"stem":56,"icon":57},"Live queries","\u002Fguide\u002Fclient\u002Flive-queries","1.guide\u002F5.client\u002F2.live-queries","i-lucide-radio",{"title":41,"path":59,"stem":60,"icon":44},"\u002Fguide\u002Fclient\u002Fadvanced","1.guide\u002F5.client\u002F3.advanced",{"title":62,"path":63,"stem":64,"children":65,"icon":45},"Development socket","\u002Fguide\u002Fsocket","1.guide\u002F6.socket\u002F1.index",[66,68,71,74],{"title":28,"path":63,"stem":64,"icon":67},"i-lucide-plug",{"title":36,"path":69,"stem":70,"icon":39},"\u002Fguide\u002Fsocket\u002Foptions","1.guide\u002F6.socket\u002F2.options",{"title":41,"path":72,"stem":73,"icon":44},"\u002Fguide\u002Fsocket\u002Fadvanced","1.guide\u002F6.socket\u002F3.advanced",{"title":75,"path":76,"stem":77,"icon":78},"PGlite in dev, Postgres in prod","\u002Fguide\u002Fsocket\u002Fdevelopment-only","1.guide\u002F6.socket\u002F4.development-only","i-lucide-cloud-upload",{"title":80,"path":81,"stem":82,"children":83,"icon":45},"DevTools & tooling","\u002Fguide\u002Fdevtools","1.guide\u002F7.devtools\u002F1.index",[84,87,92],{"title":85,"path":81,"stem":82,"icon":86},"DevTools tab","i-lucide-wrench",{"title":88,"path":89,"stem":90,"icon":91},"Actions","\u002Fguide\u002Fdevtools\u002Factions","1.guide\u002F7.devtools\u002F2.actions","i-lucide-zap",{"title":93,"path":94,"stem":95,"icon":96},"Terminal","\u002Fguide\u002Fdevtools\u002Fterminal","1.guide\u002F7.devtools\u002F3.terminal","i-lucide-square-terminal","i-lucide-book-open",{"title":99,"icon":100,"path":101,"stem":102,"children":103,"page":45},"Recipes","i-lucide-chef-hat","\u002Frecipes","2.recipes",[104,116,138,159,171],{"title":105,"path":106,"stem":107,"children":108,"icon":45},"Migrations","\u002Frecipes\u002Fmigrations","2.recipes\u002F1.migrations\u002F1.index",[109,111],{"title":28,"path":106,"stem":107,"icon":110},"i-lucide-database-backup",{"title":112,"path":113,"stem":114,"icon":115},"Edited migrations","\u002Frecipes\u002Fmigrations\u002Fedited-migrations","2.recipes\u002F1.migrations\u002F2.edited-migrations","i-lucide-file-diff",{"title":117,"path":118,"stem":119,"children":120,"icon":45},"Testing","\u002Frecipes\u002Ftesting","2.recipes\u002F2.testing\u002F1.index",[121,123,128,133],{"title":28,"path":118,"stem":119,"icon":122},"i-lucide-test-tube",{"title":124,"path":125,"stem":126,"icon":127},"Isolation","\u002Frecipes\u002Ftesting\u002Fisolation","2.recipes\u002F2.testing\u002F2.isolation","i-lucide-git-fork",{"title":129,"path":130,"stem":131,"icon":132},"vitest","\u002Frecipes\u002Ftesting\u002Fvitest","2.recipes\u002F2.testing\u002F3.vitest","i-simple-icons-vitest",{"title":134,"path":135,"stem":136,"icon":137},"@nuxt\u002Ftest-utils","\u002Frecipes\u002Ftesting\u002Fnuxt-test-utils","2.recipes\u002F2.testing\u002F4.nuxt-test-utils","i-simple-icons-nuxt",{"title":139,"path":140,"stem":141,"children":142,"icon":45},"Deploy","\u002Frecipes\u002Fdeploy","2.recipes\u002F3.deploy\u002F1.index",[143,144,149,154],{"title":139,"path":140,"stem":141},{"title":145,"path":146,"stem":147,"icon":148},"Any Postgres","\u002Frecipes\u002Fdeploy\u002Fpostgres","2.recipes\u002F3.deploy\u002F2.postgres","i-lucide-database",{"title":150,"path":151,"stem":152,"icon":153},"Netlify","\u002Frecipes\u002Fdeploy\u002Fnetlify","2.recipes\u002F3.deploy\u002F3.netlify","i-simple-icons-netlify",{"title":155,"path":156,"stem":157,"icon":158},"Neon","\u002Frecipes\u002Fdeploy\u002Fneon","2.recipes\u002F3.deploy\u002F4.neon","i-simple-icons-neon",{"title":160,"path":161,"stem":162,"children":163,"icon":45},"Outside Nuxt","\u002Frecipes\u002Foutside-nuxt","2.recipes\u002F4.outside-nuxt\u002F1.index",[164,167],{"title":165,"path":161,"stem":162,"icon":166},"Config and provider","i-lucide-package",{"title":168,"path":169,"stem":170,"icon":67},"Socket server","\u002Frecipes\u002Foutside-nuxt\u002Fsocket","2.recipes\u002F4.outside-nuxt\u002F2.socket",{"title":172,"path":173,"stem":174,"icon":67},"Nitro's useDatabase","\u002Frecipes\u002Fnitro-database","2.recipes\u002F5.nitro-database",{"title":176,"icon":177,"path":178,"stem":179,"children":180,"page":45},"Reference","i-lucide-code-xml","\u002Freference","3.reference",[181,185,189,193,198,203],{"title":182,"path":183,"stem":184,"icon":34},"Config files","\u002Freference\u002Fconfig-files","3.reference\u002F1.config-files",{"title":186,"path":187,"stem":188,"icon":39},"Module options","\u002Freference\u002Fmodule-options","3.reference\u002F2.module-options",{"title":190,"path":191,"stem":192,"icon":67},"Socket options","\u002Freference\u002Fsocket-options","3.reference\u002F3.socket-options",{"title":194,"path":195,"stem":196,"icon":197},"Exports","\u002Freference\u002Fexports","3.reference\u002F4.exports","i-lucide-boxes",{"title":199,"path":200,"stem":201,"icon":202},"Hooks","\u002Freference\u002Fhooks","3.reference\u002F5.hooks","i-lucide-anchor",{"title":204,"path":205,"stem":206,"icon":207},"Environment","\u002Freference\u002Fenvironment","3.reference\u002F6.environment","i-lucide-variable",{"id":209,"title":210,"body":211,"description":210,"extension":581,"meta":582,"navigation":583,"path":584,"seo":585,"stem":588,"__hash__":589},"landing\u002Findex.md","",{"type":212,"value":213,"toc":579},"minimark",[214,417,495,575],[215,216,222,228,241,259,279],"u-page-hero",{"className":217,"orientation":221},[218,219,220],"dark:bg-gradient-to-b","from-neutral-900","to-neutral-950","horizontal",[223,224,225],"template",{"v-slot:top":210},[226,227],"hero-background",{},[223,229,230],{"v-slot:title":210},[231,232,233,234,240],"p",{},"Postgres in your ",[235,236,239],"span",{"className":237},[238],"text-primary","Nuxt app",", no server to run.",[223,242,243],{"v-slot:description":210},[231,244,245,246,253,254,258],{},"Nuxt PGlite wires ",[247,248,252],"a",{"href":249,"rel":250},"https:\u002F\u002Fpglite.dev",[251],"nofollow","PGlite",", Postgres compiled to WebAssembly, into Nuxt: an instance for your server routes, the same database over a Postgres URL while ",[255,256,257],"code",{},"nuxt dev"," runs, and an in-browser database with live queries.",[223,260,261,269],{"v-slot:links":210},[262,263,266],"u-button",{"size":264,"to":6,"trailing-icon":265},"xl","i-lucide-arrow-right",[231,267,268],{},"Get started",[262,270,276],{"size":264,"to":271,"color":272,"icon":273,"target":274,"variant":275},"https:\u002F\u002Fgithub.com\u002Fsandros94\u002Fnuxt-pglite","neutral","i-simple-icons-github","_blank","outline",[231,277,278],{},"Star on GitHub",[280,281,284],"prose-pre",{"code":282,"filename":283},"export default defineNuxtConfig({\n  modules: ['nuxt-pglite'],\n  pglite: {\n    socket: { port: 5433 }, \u002F\u002F a Postgres URL while `nuxt dev` runs\n    client: { enabled: true },\n  },\n})\n","nuxt.config.ts",[285,286,289],"pre",{"className":287,"code":282,"filename":283,"language":288,"meta":210,"style":210},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ts",[255,290,291,314,342,353,380,402,408],{"__ignoreMap":210},[235,292,295,299,302,306,310],{"class":293,"line":294},"line",1,[235,296,298],{"class":297},"s7zQu","export",[235,300,301],{"class":297}," default",[235,303,305],{"class":304},"s2Zo4"," defineNuxtConfig",[235,307,309],{"class":308},"sTEyZ","(",[235,311,313],{"class":312},"sMK4o","{\n",[235,315,317,321,324,327,330,334,336,339],{"class":293,"line":316},2,[235,318,320],{"class":319},"swJcz","  modules",[235,322,323],{"class":312},":",[235,325,326],{"class":308}," [",[235,328,329],{"class":312},"'",[235,331,333],{"class":332},"sfazB","nuxt-pglite",[235,335,329],{"class":312},[235,337,338],{"class":308},"]",[235,340,341],{"class":312},",\n",[235,343,345,348,350],{"class":293,"line":344},3,[235,346,347],{"class":319},"  pglite",[235,349,323],{"class":312},[235,351,352],{"class":312}," {\n",[235,354,356,359,361,364,367,369,373,376],{"class":293,"line":355},4,[235,357,358],{"class":319},"    socket",[235,360,323],{"class":312},[235,362,363],{"class":312}," {",[235,365,366],{"class":319}," port",[235,368,323],{"class":312},[235,370,372],{"class":371},"sbssI"," 5433",[235,374,375],{"class":312}," },",[235,377,379],{"class":378},"sHwdD"," \u002F\u002F a Postgres URL while `nuxt dev` runs\n",[235,381,383,386,388,390,393,395,399],{"class":293,"line":382},5,[235,384,385],{"class":319},"    client",[235,387,323],{"class":312},[235,389,363],{"class":312},[235,391,392],{"class":319}," enabled",[235,394,323],{"class":312},[235,396,398],{"class":397},"sfNiH"," true",[235,400,401],{"class":312}," },\n",[235,403,405],{"class":293,"line":404},6,[235,406,407],{"class":312},"  },\n",[235,409,411,414],{"class":293,"line":410},7,[235,412,413],{"class":312},"}",[235,415,416],{"class":308},")\n",[418,419,422,427],"u-page-section",{"className":420},[421],"dark:bg-neutral-950",[223,423,424],{"v-slot:title":210},[231,425,426],{},"Three pieces, use any of them",[223,428,429,449,479],{"v-slot:features":210},[430,431,432,437],"u-page-feature",{"icon":29,"to":24},[223,433,434],{"v-slot:title":210},[231,435,436],{},"Server instance",[223,438,439],{"v-slot:description":210},[231,440,441,444,445,448],{},[255,442,443],{},"usePGlite()"," in your Nitro routes: a lazily created PGlite, configured in ",[255,446,447],{},"server\u002Fpglite.config.ts",", typed from its extensions.",[430,450,451,455],{"icon":67,"to":63},[223,452,453],{"v-slot:title":210},[231,454,62],{},[223,456,457],{"v-slot:description":210},[231,458,459,460,462,463,466,467,470,471,474,475,478],{},"The same database over the Postgres wire protocol in ",[255,461,257],{},". ",[255,464,465],{},"pg",", postgres.js, Drizzle, ",[255,468,469],{},"drizzle-kit"," and ",[255,472,473],{},"psql"," connect through ",[255,476,477],{},"DATABASE_URL",".",[430,480,481,486],{"icon":52,"to":48},[223,482,483],{"v-slot:title":210},[231,484,485],{},"In-browser database",[223,487,488],{"v-slot:description":210},[231,489,490,491,494],{},"PGlite in a Web Worker shared between tabs, with ",[255,492,493],{},"useLiveQuery()"," keeping your components in sync with the data.",[418,496,498,503],{"className":497},[421],[223,499,500],{"v-slot:title":210},[231,501,502],{},"And what goes with them",[223,504,505,516,531,542,553,564],{"v-slot:features":210},[430,506,507,511],{"icon":78,"to":140},[223,508,509],{"v-slot:title":210},[231,510,75],{},[223,512,513],{"v-slot:description":210},[231,514,515],{},"Develop against PGlite with no database to install, deploy against any Postgres with the same driver code and nothing of PGlite in the build.",[430,517,518,522],{"icon":110,"to":106},[223,519,520],{"v-slot:title":210},[231,521,105],{},[223,523,524],{"v-slot:description":210},[231,525,526,527,530],{},"A folder of SQL files, applied from ",[255,528,529],{},"init"," in development and by you or your platform in production.",[430,532,533,537],{"icon":122,"to":118},[223,534,535],{"v-slot:title":210},[231,536,117],{},[223,538,539],{"v-slot:description":210},[231,540,541],{},"A database built from your app's config for the test suite, in memory and forkable per test.",[430,543,544,548],{"icon":86,"to":81},[223,545,546],{"v-slot:title":210},[231,547,85],{},[223,549,550],{"v-slot:description":210},[231,551,552],{},"Inspect each instance, run SQL against it and trigger your own actions: seeding, resets, migration CLIs.",[430,554,555,559],{"icon":166,"to":161},[223,556,557],{"v-slot:title":210},[231,558,160],{},[223,560,561],{"v-slot:description":210},[231,562,563],{},"The config helper, the lazy provider and the socket server ship as their own entries, usable from any Node, Bun or Deno server.",[430,565,566,570],{"icon":177,"to":183},[223,567,568],{"v-slot:title":210},[231,569,176],{},[223,571,572],{"v-slot:description":210},[231,573,574],{},"Every option, export, hook and environment variable, with its type and default.",[576,577,578],"style",{},"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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":210,"searchDepth":294,"depth":316,"links":580},[],"md",{},true,"\u002F",{"title":586,"description":587},"Nuxt PGlite","Embedded Postgres for Nuxt. A PGlite instance for your server routes, a development socket for your Postgres tooling, and an in-browser database with live queries.","index","9gdBjR_NYg9q3vDXDDeSMXvSSTYQNGqbQvVy42q5cuM",1791474258660]