[{"data":1,"prerenderedAt":996},["ShallowReactive",2],{"navigation":3,"-integrations-kysely":104,"-integrations-kysely-surround":991},[4,21,82],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","/guide","1.guide/1.index",[9,11,16],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"HTTP Server","/guide/http-server","1.guide/3.http-server","material-symbols:http",{"title":17,"path":18,"stem":19,"icon":20},"Custom Connectors","/guide/custom-connector","1.guide/4.custom-connector","material-symbols-light:dashboard-customize",{"title":22,"path":23,"stem":24,"children":25,"icon":27},"Connectors","/connectors","2.connectors/1.index",[26,28,33,38,43,48,53,58,63,67,72,77],{"title":22,"path":23,"stem":24,"icon":27},"gravity-ui:plug-connection",{"title":29,"path":30,"stem":31,"icon":32},"Bun SQlite","/connectors/bun","2.connectors/bun","simple-icons:bun",{"title":34,"path":35,"stem":36,"icon":37},"Cloudflare","/connectors/cloudflare","2.connectors/cloudflare","devicon-plain:cloudflareworkers",{"title":39,"path":40,"stem":41,"icon":42},"LibSQL","/connectors/libsql","2.connectors/libsql","clarity:node-line",{"title":44,"path":45,"stem":46,"icon":47},"MySQL","/connectors/mysql","2.connectors/mysql","simple-icons:mysql",{"title":49,"path":50,"stem":51,"icon":52},"NEON","/connectors/neon","2.connectors/neon","cbi:neon",{"title":54,"path":55,"stem":56,"icon":57},"PGlite","/connectors/pglite","2.connectors/pglite","simple-icons:postgresql",{"title":59,"path":60,"stem":61,"icon":62},"PlanetScale","/connectors/planetscale","2.connectors/planetscale","simple-icons:planetscale",{"title":64,"path":65,"stem":66,"icon":57},"PostgreSQL","/connectors/postgresql","2.connectors/postgresql",{"title":68,"path":69,"stem":70,"icon":71},"SQLite","/connectors/sqlite","2.connectors/sqlite","simple-icons:sqlite",{"title":73,"path":74,"stem":75,"icon":76},"Turso","/connectors/turso","2.connectors/turso","simple-icons:turso",{"title":78,"path":79,"stem":80,"icon":81},"Vercel","/connectors/vercel","2.connectors/vercel","radix-icons:vercel-logo",{"title":83,"path":84,"stem":85,"children":86,"icon":88},"Integrations","/integrations","3.integrations/1.index",[87,89,94,99],{"title":83,"path":84,"stem":85,"icon":88},"carbon:property-relationship",{"title":90,"path":91,"stem":92,"icon":93},"Drizzle","/integrations/drizzle","3.integrations/drizzle","simple-icons:drizzle",{"title":95,"path":96,"stem":97,"icon":98},"Kysely","/integrations/kysely","3.integrations/kysely","mynaui:letter-k",{"title":100,"path":101,"stem":102,"icon":103},"Prisma","/integrations/prisma","3.integrations/prisma","simple-icons:prisma",{"id":105,"title":95,"body":106,"description":985,"extension":986,"meta":987,"navigation":988,"path":96,"seo":989,"stem":97,"__hash__":990},"content/3.integrations/kysely.md",{"type":107,"value":108,"toc":979,"icon":98},"minimark",[109,113,118,127,155,158,398,401,760,764,767,876,880,883,938,941,945,975],[110,111],"read-more",{"to":112},"https://kysely.dev",[114,115,117],"h2",{"id":116},"usage","Usage",[119,120,121,122,126],"p",{},"Install ",[123,124,125],"code",{},"kysely"," dependency:",[128,129,134],"pre",{"className":130,"code":131,"language":132,"meta":133,"style":133},"language-bash shiki shiki-themes github-light github-dark github-dark","npx nypm add kysely\n","bash","",[123,135,136],{"__ignoreMap":133},[137,138,141,145,149,152],"span",{"class":139,"line":140},"line",1,[137,142,144],{"class":143},"shcOC","npx",[137,146,148],{"class":147},"sfrk1"," nypm",[137,150,151],{"class":147}," add",[137,153,154],{"class":147}," kysely\n",[119,156,157],{},"Create a db0 database and wrap it with Kysely:",[128,159,164],{"className":160,"code":161,"filename":162,"language":163,"meta":133,"style":133},"language-ts shiki shiki-themes github-light github-dark github-dark","import { createDatabase } from \"db0\";\nimport sqlite from \"db0/connectors/better-sqlite3\";\nimport { kysely } from \"db0/integrations/kysely\";\n\n// Define your database types\ninterface UsersTable {\n  id: number;\n  name: string;\n  email: string;\n}\n\ninterface Database {\n  users: UsersTable;\n}\n\n// Initialize DB instance\nconst db = createDatabase(sqlite({ name: \"database.sqlite\" }));\n\n// Create Kysely instance (dialect is auto-detected from db0)\nexport const ky = kysely\u003CDatabase>(db);\n","database.ts","ts",[123,165,166,185,200,215,222,229,241,257,270,282,288,293,303,315,320,325,331,361,366,372],{"__ignoreMap":133},[137,167,168,172,176,179,182],{"class":139,"line":140},[137,169,171],{"class":170},"so5gQ","import",[137,173,175],{"class":174},"slsVL"," { createDatabase } ",[137,177,178],{"class":170},"from",[137,180,181],{"class":147}," \"db0\"",[137,183,184],{"class":174},";\n",[137,186,188,190,193,195,198],{"class":139,"line":187},2,[137,189,171],{"class":170},[137,191,192],{"class":174}," sqlite ",[137,194,178],{"class":170},[137,196,197],{"class":147}," \"db0/connectors/better-sqlite3\"",[137,199,184],{"class":174},[137,201,203,205,208,210,213],{"class":139,"line":202},3,[137,204,171],{"class":170},[137,206,207],{"class":174}," { kysely } ",[137,209,178],{"class":170},[137,211,212],{"class":147}," \"db0/integrations/kysely\"",[137,214,184],{"class":174},[137,216,218],{"class":139,"line":217},4,[137,219,221],{"emptyLinePlaceholder":220},true,"\n",[137,223,225],{"class":139,"line":224},5,[137,226,228],{"class":227},"sCsY4","// Define your database types\n",[137,230,232,235,238],{"class":139,"line":231},6,[137,233,234],{"class":170},"interface",[137,236,237],{"class":143}," UsersTable",[137,239,240],{"class":174}," {\n",[137,242,244,248,251,255],{"class":139,"line":243},7,[137,245,247],{"class":246},"sQHwn","  id",[137,249,250],{"class":170},":",[137,252,254],{"class":253},"suiK_"," number",[137,256,184],{"class":174},[137,258,260,263,265,268],{"class":139,"line":259},8,[137,261,262],{"class":246},"  name",[137,264,250],{"class":170},[137,266,267],{"class":253}," string",[137,269,184],{"class":174},[137,271,273,276,278,280],{"class":139,"line":272},9,[137,274,275],{"class":246},"  email",[137,277,250],{"class":170},[137,279,267],{"class":253},[137,281,184],{"class":174},[137,283,285],{"class":139,"line":284},10,[137,286,287],{"class":174},"}\n",[137,289,291],{"class":139,"line":290},11,[137,292,221],{"emptyLinePlaceholder":220},[137,294,296,298,301],{"class":139,"line":295},12,[137,297,234],{"class":170},[137,299,300],{"class":143}," Database",[137,302,240],{"class":174},[137,304,306,309,311,313],{"class":139,"line":305},13,[137,307,308],{"class":246},"  users",[137,310,250],{"class":170},[137,312,237],{"class":143},[137,314,184],{"class":174},[137,316,318],{"class":139,"line":317},14,[137,319,287],{"class":174},[137,321,323],{"class":139,"line":322},15,[137,324,221],{"emptyLinePlaceholder":220},[137,326,328],{"class":139,"line":327},16,[137,329,330],{"class":227},"// Initialize DB instance\n",[137,332,334,337,340,343,346,349,352,355,358],{"class":139,"line":333},17,[137,335,336],{"class":170},"const",[137,338,339],{"class":253}," db",[137,341,342],{"class":170}," =",[137,344,345],{"class":143}," createDatabase",[137,347,348],{"class":174},"(",[137,350,351],{"class":143},"sqlite",[137,353,354],{"class":174},"({ name: ",[137,356,357],{"class":147},"\"database.sqlite\"",[137,359,360],{"class":174}," }));\n",[137,362,364],{"class":139,"line":363},18,[137,365,221],{"emptyLinePlaceholder":220},[137,367,369],{"class":139,"line":368},19,[137,370,371],{"class":227},"// Create Kysely instance (dialect is auto-detected from db0)\n",[137,373,375,378,381,384,386,389,392,395],{"class":139,"line":374},20,[137,376,377],{"class":170},"export",[137,379,380],{"class":170}," const",[137,382,383],{"class":253}," ky",[137,385,342],{"class":170},[137,387,388],{"class":143}," kysely",[137,390,391],{"class":174},"\u003C",[137,393,394],{"class":143},"Database",[137,396,397],{"class":174},">(db);\n",[119,399,400],{},"Then use Kysely's type-safe query builder:",[128,402,405],{"className":160,"code":403,"filename":404,"language":163,"meta":133,"style":133},"import { ky } from \"./database\";\n\n// Insert a new user\nconst insertedUser = await ky\n  .insertInto(\"users\")\n  .values({ name: \"John Doe\", email: \"john@example.com\" })\n  .returning([\"id\", \"name\", \"email\"])\n  .executeTakeFirst();\n\n// Select all users\nconst allUsers = await ky.selectFrom(\"users\").selectAll().execute();\n\n// Query with conditions\nconst john = await ky\n  .selectFrom(\"users\")\n  .selectAll()\n  .where(\"email\", \"=\", \"john@example.com\")\n  .executeTakeFirst();\n\n// Update\nawait ky\n  .updateTable(\"users\")\n  .set({ name: \"Jane Doe\" })\n  .where(\"id\", \"=\", 1)\n  .execute();\n\n// Delete\nawait ky.deleteFrom(\"users\").where(\"id\", \"=\", 1).execute();\n","queries.ts",[123,406,407,421,425,430,445,461,482,509,519,523,528,563,567,572,585,597,606,628,636,640,645,653,667,682,704,713,718,724],{"__ignoreMap":133},[137,408,409,411,414,416,419],{"class":139,"line":140},[137,410,171],{"class":170},[137,412,413],{"class":174}," { ky } ",[137,415,178],{"class":170},[137,417,418],{"class":147}," \"./database\"",[137,420,184],{"class":174},[137,422,423],{"class":139,"line":187},[137,424,221],{"emptyLinePlaceholder":220},[137,426,427],{"class":139,"line":202},[137,428,429],{"class":227},"// Insert a new user\n",[137,431,432,434,437,439,442],{"class":139,"line":217},[137,433,336],{"class":170},[137,435,436],{"class":253}," insertedUser",[137,438,342],{"class":170},[137,440,441],{"class":170}," await",[137,443,444],{"class":174}," ky\n",[137,446,447,450,453,455,458],{"class":139,"line":224},[137,448,449],{"class":174},"  .",[137,451,452],{"class":143},"insertInto",[137,454,348],{"class":174},[137,456,457],{"class":147},"\"users\"",[137,459,460],{"class":174},")\n",[137,462,463,465,468,470,473,476,479],{"class":139,"line":231},[137,464,449],{"class":174},[137,466,467],{"class":143},"values",[137,469,354],{"class":174},[137,471,472],{"class":147},"\"John Doe\"",[137,474,475],{"class":174},", email: ",[137,477,478],{"class":147},"\"john@example.com\"",[137,480,481],{"class":174}," })\n",[137,483,484,486,489,492,495,498,501,503,506],{"class":139,"line":243},[137,485,449],{"class":174},[137,487,488],{"class":143},"returning",[137,490,491],{"class":174},"([",[137,493,494],{"class":147},"\"id\"",[137,496,497],{"class":174},", ",[137,499,500],{"class":147},"\"name\"",[137,502,497],{"class":174},[137,504,505],{"class":147},"\"email\"",[137,507,508],{"class":174},"])\n",[137,510,511,513,516],{"class":139,"line":259},[137,512,449],{"class":174},[137,514,515],{"class":143},"executeTakeFirst",[137,517,518],{"class":174},"();\n",[137,520,521],{"class":139,"line":272},[137,522,221],{"emptyLinePlaceholder":220},[137,524,525],{"class":139,"line":284},[137,526,527],{"class":227},"// Select all users\n",[137,529,530,532,535,537,539,542,545,547,549,552,555,558,561],{"class":139,"line":290},[137,531,336],{"class":170},[137,533,534],{"class":253}," allUsers",[137,536,342],{"class":170},[137,538,441],{"class":170},[137,540,541],{"class":174}," ky.",[137,543,544],{"class":143},"selectFrom",[137,546,348],{"class":174},[137,548,457],{"class":147},[137,550,551],{"class":174},").",[137,553,554],{"class":143},"selectAll",[137,556,557],{"class":174},"().",[137,559,560],{"class":143},"execute",[137,562,518],{"class":174},[137,564,565],{"class":139,"line":295},[137,566,221],{"emptyLinePlaceholder":220},[137,568,569],{"class":139,"line":305},[137,570,571],{"class":227},"// Query with conditions\n",[137,573,574,576,579,581,583],{"class":139,"line":317},[137,575,336],{"class":170},[137,577,578],{"class":253}," john",[137,580,342],{"class":170},[137,582,441],{"class":170},[137,584,444],{"class":174},[137,586,587,589,591,593,595],{"class":139,"line":322},[137,588,449],{"class":174},[137,590,544],{"class":143},[137,592,348],{"class":174},[137,594,457],{"class":147},[137,596,460],{"class":174},[137,598,599,601,603],{"class":139,"line":327},[137,600,449],{"class":174},[137,602,554],{"class":143},[137,604,605],{"class":174},"()\n",[137,607,608,610,613,615,617,619,622,624,626],{"class":139,"line":333},[137,609,449],{"class":174},[137,611,612],{"class":143},"where",[137,614,348],{"class":174},[137,616,505],{"class":147},[137,618,497],{"class":174},[137,620,621],{"class":147},"\"=\"",[137,623,497],{"class":174},[137,625,478],{"class":147},[137,627,460],{"class":174},[137,629,630,632,634],{"class":139,"line":363},[137,631,449],{"class":174},[137,633,515],{"class":143},[137,635,518],{"class":174},[137,637,638],{"class":139,"line":368},[137,639,221],{"emptyLinePlaceholder":220},[137,641,642],{"class":139,"line":374},[137,643,644],{"class":227},"// Update\n",[137,646,648,651],{"class":139,"line":647},21,[137,649,650],{"class":170},"await",[137,652,444],{"class":174},[137,654,656,658,661,663,665],{"class":139,"line":655},22,[137,657,449],{"class":174},[137,659,660],{"class":143},"updateTable",[137,662,348],{"class":174},[137,664,457],{"class":147},[137,666,460],{"class":174},[137,668,670,672,675,677,680],{"class":139,"line":669},23,[137,671,449],{"class":174},[137,673,674],{"class":143},"set",[137,676,354],{"class":174},[137,678,679],{"class":147},"\"Jane Doe\"",[137,681,481],{"class":174},[137,683,685,687,689,691,693,695,697,699,702],{"class":139,"line":684},24,[137,686,449],{"class":174},[137,688,612],{"class":143},[137,690,348],{"class":174},[137,692,494],{"class":147},[137,694,497],{"class":174},[137,696,621],{"class":147},[137,698,497],{"class":174},[137,700,701],{"class":253},"1",[137,703,460],{"class":174},[137,705,707,709,711],{"class":139,"line":706},25,[137,708,449],{"class":174},[137,710,560],{"class":143},[137,712,518],{"class":174},[137,714,716],{"class":139,"line":715},26,[137,717,221],{"emptyLinePlaceholder":220},[137,719,721],{"class":139,"line":720},27,[137,722,723],{"class":227},"// Delete\n",[137,725,727,729,731,734,736,738,740,742,744,746,748,750,752,754,756,758],{"class":139,"line":726},28,[137,728,650],{"class":170},[137,730,541],{"class":174},[137,732,733],{"class":143},"deleteFrom",[137,735,348],{"class":174},[137,737,457],{"class":147},[137,739,551],{"class":174},[137,741,612],{"class":143},[137,743,348],{"class":174},[137,745,494],{"class":147},[137,747,497],{"class":174},[137,749,621],{"class":147},[137,751,497],{"class":174},[137,753,701],{"class":253},[137,755,551],{"class":174},[137,757,560],{"class":143},[137,759,518],{"class":174},[114,761,763],{"id":762},"transactions","Transactions",[119,765,766],{},"Kysely's transaction API works out of the box:",[128,768,770],{"className":160,"code":769,"language":163,"meta":133,"style":133},"await ky.transaction().execute(async (trx) => {\n  await trx.insertInto(\"users\").values({ name: \"Alice\", email: \"alice@example.com\" }).execute();\n  await trx.insertInto(\"users\").values({ name: \"Bob\", email: \"bob@example.com\" }).execute();\n});\n",[123,771,772,804,839,871],{"__ignoreMap":133},[137,773,774,776,778,781,783,785,787,790,793,796,799,802],{"class":139,"line":140},[137,775,650],{"class":170},[137,777,541],{"class":174},[137,779,780],{"class":143},"transaction",[137,782,557],{"class":174},[137,784,560],{"class":143},[137,786,348],{"class":174},[137,788,789],{"class":170},"async",[137,791,792],{"class":174}," (",[137,794,795],{"class":246},"trx",[137,797,798],{"class":174},") ",[137,800,801],{"class":170},"=>",[137,803,240],{"class":174},[137,805,806,809,812,814,816,818,820,822,824,827,829,832,835,837],{"class":139,"line":187},[137,807,808],{"class":170},"  await",[137,810,811],{"class":174}," trx.",[137,813,452],{"class":143},[137,815,348],{"class":174},[137,817,457],{"class":147},[137,819,551],{"class":174},[137,821,467],{"class":143},[137,823,354],{"class":174},[137,825,826],{"class":147},"\"Alice\"",[137,828,475],{"class":174},[137,830,831],{"class":147},"\"alice@example.com\"",[137,833,834],{"class":174}," }).",[137,836,560],{"class":143},[137,838,518],{"class":174},[137,840,841,843,845,847,849,851,853,855,857,860,862,865,867,869],{"class":139,"line":202},[137,842,808],{"class":170},[137,844,811],{"class":174},[137,846,452],{"class":143},[137,848,348],{"class":174},[137,850,457],{"class":147},[137,852,551],{"class":174},[137,854,467],{"class":143},[137,856,354],{"class":174},[137,858,859],{"class":147},"\"Bob\"",[137,861,475],{"class":174},[137,863,864],{"class":147},"\"bob@example.com\"",[137,866,834],{"class":174},[137,868,560],{"class":143},[137,870,518],{"class":174},[137,872,873],{"class":139,"line":217},[137,874,875],{"class":174},"});\n",[114,877,879],{"id":878},"dialect-detection","Dialect Detection",[119,881,882],{},"The integration automatically selects the correct Kysely dialect based on the db0 connector:",[884,885,886,899],"table",{},[887,888,889],"thead",{},[890,891,892,896],"tr",{},[893,894,895],"th",{},"db0 dialect",[893,897,898],{},"Kysely dialect",[900,901,902,911,920,929],"tbody",{},[890,903,904,909],{},[905,906,907],"td",{},[123,908,351],{},[905,910,68],{},[890,912,913,918],{},[905,914,915],{},[123,916,917],{},"libsql",[905,919,68],{},[890,921,922,927],{},[905,923,924],{},[123,925,926],{},"postgresql",[905,928,64],{},[890,930,931,936],{},[905,932,933],{},[123,934,935],{},"mysql",[905,937,44],{},[119,939,940],{},"This means you can switch connectors without changing your Kysely code.",[114,942,944],{"id":943},"limitations","Limitations",[946,947,948,969],"ul",{},[949,950,951,957,958,961,962,965,966,968],"li",{},[952,953,954],"strong",{},[123,955,956],{},"numAffectedRows",": For mutations without a ",[123,959,960],{},"RETURNING"," clause, the affected row count is not available (",[123,963,964],{},"undefined","). Use ",[123,967,960],{}," if you need to know how many rows were affected.",[949,970,971,974],{},[952,972,973],{},"Streaming queries",": Not supported by the db0 integration.",[976,977,978],"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 .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 .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}",{"title":133,"searchDepth":187,"depth":187,"links":980},[981,982,983,984],{"id":116,"depth":187,"text":117},{"id":762,"depth":187,"text":763},{"id":878,"depth":187,"text":879},{"id":943,"depth":187,"text":944},"Integrate DB0 with Kysely query builder","md",{"icon":98},{"icon":98},{"title":95,"description":985},"Bq18pEhr-3Y7v_obOR7LQdX_dMO7pKwHFhYF11LUIPs",[992,994],{"title":90,"path":91,"stem":92,"description":993,"icon":93,"children":-1},"Integrate DB0 with Drizzle ORM",{"title":100,"path":101,"stem":102,"description":995,"icon":103,"children":-1},"Integrate DB0 with Prisma ORM",1780492438305]