{"_id":"@andersgee/kysely-fetch-driver","_rev":"2-c69d951cc157874915f1831751c42c80","name":"@andersgee/kysely-fetch-driver","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.1":{"name":"@andersgee/kysely-fetch-driver","author":{"name":"andersgee"},"license":"MIT","version":"1.0.1","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/andersgee/kysely-fetch-driver.git"},"devDependencies":{"@changesets/cli":"^2.26.0","kysely":"^0.24.2","tsup":"^6.5.0","typescript":"^4.9.4"},"dependencies":{"superjson":">=1.12.3"},"peerDependencies":{"kysely":">=0.24.2"},"scripts":{"build":"tsup index.ts --format cjs,esm --dts","lint":"tsc"},"bugs":{"url":"https://github.com/andersgee/kysely-fetch-driver/issues"},"homepage":"https://github.com/andersgee/kysely-fetch-driver#readme","_id":"@andersgee/kysely-fetch-driver@1.0.1","_integrity":"sha512-84tfQUNDG2ImeaoEhyxL/7qTz3gcpDoj5zc2srfFYosuhPT3f5MRINFuEueWcvbf64vbMyGiWHftP1DzsklY8Q==","_resolved":"/tmp/5f690fe59a61f4b9d8f4d21a58fb067a/andersgee-kysely-fetch-driver-1.0.1.tgz","_from":"file:andersgee-kysely-fetch-driver-1.0.1.tgz","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-84tfQUNDG2ImeaoEhyxL/7qTz3gcpDoj5zc2srfFYosuhPT3f5MRINFuEueWcvbf64vbMyGiWHftP1DzsklY8Q==","shasum":"c5ed8af3bbad5f2587aba786922ec1084d6c34f5","tarball":"https://registry.npmjs.org/@andersgee/kysely-fetch-driver/-/kysely-fetch-driver-1.0.1.tgz","fileCount":4,"unpackedSize":6470,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAfC/T9iQ71PYEJmTfFQUjITXgGUY2vfxXSfqgWOKTWQAiBasC86QAzTALN6em601LJ3WAUnRms2yfBkYvXTmZZ93g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkRRUUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoCCBAAh6oJofek8PgLfRZyMByvXQv8ngyz/xFYSo5wtYZvMSxvLdfu\r\ntmNdbQ15PKP5e1YxT3AfQzNS6iNvpTFDp3dRH+Cks6pWyu8BUmVjmWcqry/M\r\nwMZiQhe25o5TMF1PT2uK/sc4iODDR6A4qU0Xfu5E7LpamVVB5dWpueUQewT3\r\n6U4r8JKq/O5SE7AwJSOcCI6NSoDnnBaA+bGAdbrd9o5F1NGYHjgzXPZvU7Cw\r\nizbP5+vRixrVzNjKJRvSEQNsZn5Wj8Mz2kVj220VP+y6FLoxp9cX1n6N/H5v\r\naCGNvehvI8CkK47A7d3VgyrPuNvCZcMqHejOF9CMS6idw99s3fCnMfhTJXJr\r\nfKTuKOSPQGLjhsWy5EjcL9IRVVO//jzkMlJ8iZ9/fTcmt5gP9F6KJMI1SucN\r\nlWEbGSCb3lwcfymW+m/G/+a2SwdKEct0VuzehnaYJ1vSXYY6TrJm/286CZ37\r\nHKSaIcQgaJ3OkJTMz03v2N5pky+fZBEi+VZY0dSOy254ke1hpBrymfmKhXTH\r\nbgkMVndqFeEFwYXNnk4xHci/MzY5Z4tVgJDLtSlHF0H6HQjpTNOYbEQJcbxg\r\nVt8ZYldX2al09RWgX3Jl02i9xbjuzUa1Gct0T0YBCCG5ZOU+HuR+75f4nh6K\r\nsPxNxH9k+/2IQZaaAersIc5OcESlHrZejw0=\r\n=yMIg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"andersgee","email":"andersgee@gmail.com"},"directories":{},"maintainers":[{"name":"andersgee","email":"andersgee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kysely-fetch-driver_1.0.1_1682248980322_0.5618049169218329"},"_hasShrinkwrap":false},"1.0.2":{"name":"@andersgee/kysely-fetch-driver","author":{"name":"andersgee"},"license":"MIT","version":"1.0.2","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/andersgee/kysely-fetch-driver.git"},"devDependencies":{"@changesets/cli":"^2.26.0","kysely":"^0.24.2","tsup":"^6.5.0","typescript":"^4.9.4"},"dependencies":{"superjson":">=1.12.3"},"peerDependencies":{"kysely":">=0.24.2"},"scripts":{"build":"tsup index.ts --format cjs,esm --dts","lint":"tsc"},"description":"This driver uses post requests with `fetch()` to a webserver that responds with the query result instead of querying the database directly.","bugs":{"url":"https://github.com/andersgee/kysely-fetch-driver/issues"},"homepage":"https://github.com/andersgee/kysely-fetch-driver#readme","_id":"@andersgee/kysely-fetch-driver@1.0.2","_integrity":"sha512-emwcHmBNXuf3sIHZA9zHiBPccCAa6Est7Yw3BG/Rl7xXSW16H8o+lxNT40BtP5ffDhNvkKXaWrmI8xlfE5P94w==","_resolved":"/tmp/2931aa701b339747d167e4d8694a8b68/andersgee-kysely-fetch-driver-1.0.2.tgz","_from":"file:andersgee-kysely-fetch-driver-1.0.2.tgz","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-emwcHmBNXuf3sIHZA9zHiBPccCAa6Est7Yw3BG/Rl7xXSW16H8o+lxNT40BtP5ffDhNvkKXaWrmI8xlfE5P94w==","shasum":"a3ae01252e7942ddeadab232c0620af333a55414","tarball":"https://registry.npmjs.org/@andersgee/kysely-fetch-driver/-/kysely-fetch-driver-1.0.2.tgz","fileCount":5,"unpackedSize":7777,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5AeD466wA/1aZYF/GCmnpzea/QdRHzMec9GLBqFM95wIhAMzg9mfC0exXZHFg0ZOwDb4zNW76vZEOa/+Lfwc57qrQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkRRtVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqajg/9HV90R/VGE1fwIiq9O2lJYs2JZR70sxBzspL/WrDhcHx17XbU\r\ncdIWBY2MoeXnVNgnmyRcDcgYOvJ2+kJzcaA5PfCWiWm5TZBSq8Jg4Ui2U902\r\n511MevErcc4YxC8GqYqu3HP9VT/fi6kr/iBNxDYVjpZb0D5d41xMoGvvIcyc\r\nay1dNjAqYr8an5Ey7ko7fW5N2uShvhkuMTiFUnpdpt1pSxVwwQ7iL9Zt3eWz\r\nFoTIVwDjRyPzblkeIXHSps6sgtUkOuMuzuJEG0N19ESpYXZ9cXMjuMbl1PoX\r\n/yPYNUkHhQWaqBcquxbzfZtRn2wQttzxsRPdqaQIvxRmVSmVdW6gbeYuzq2U\r\nAOL3n97zjaf7WjxUlY4NOsv1O2cHYeLLGQJ0atY4NyI907NhJzS4x0hJFcQN\r\nh7HmaHQaWTi4ARATHBFv0oTiU3CQgysGmV35Cj7MV+v8R0f3NgjXZ9DecaDK\r\nGOxbvn1R0jifg0b3HQ1naUAfDU1tGxKlEOnO1H0umCuEJRu+Eh7A9Iy110eq\r\n1DWTSh6Vhv98jGzxPlXTJ2jgXUj7ihNUjglJXR/mIdrijv/PoQ6dmk06gxNA\r\nhTvbh1Zlb19U5QJHntCw6iv5I5lmSWSb3evybdzm4D47BxOrJd0VuU0jCOUs\r\nq8KtE7hMjOvoNWc40zTKIpRkHbp2C6t4Ya0=\r\n=F/K4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"andersgee","email":"andersgee@gmail.com"},"directories":{},"maintainers":[{"name":"andersgee","email":"andersgee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kysely-fetch-driver_1.0.2_1682250580826_0.38306252797033546"},"_hasShrinkwrap":false},"1.1.0":{"name":"@andersgee/kysely-fetch-driver","description":"kysely fetch driver","author":{"name":"andersgee"},"license":"MIT","version":"1.1.0","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/andersgee/kysely-fetch-driver.git"},"devDependencies":{"@changesets/cli":"^2.26.0","kysely":"^0.26.3","tsup":"^6.5.0","typescript":"^4.9.4"},"peerDependencies":{"kysely":"^0.26.3"},"scripts":{"build":"tsup index.ts --format cjs,esm --dts","lint":"tsc"},"bugs":{"url":"https://github.com/andersgee/kysely-fetch-driver/issues"},"homepage":"https://github.com/andersgee/kysely-fetch-driver#readme","_id":"@andersgee/kysely-fetch-driver@1.1.0","_integrity":"sha512-iqWerVe+6MWf0PWhOdEQPi/mGTMVv8J7JqDrtmYpwvVWYJ8QU2aWKTXqCBPg0waSyLhgrVMs1VaX3Mi5MxBiOw==","_resolved":"/tmp/70c017a4bb61493c24a5c2dda1a909a5/andersgee-kysely-fetch-driver-1.1.0.tgz","_from":"file:andersgee-kysely-fetch-driver-1.1.0.tgz","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-iqWerVe+6MWf0PWhOdEQPi/mGTMVv8J7JqDrtmYpwvVWYJ8QU2aWKTXqCBPg0waSyLhgrVMs1VaX3Mi5MxBiOw==","shasum":"ee61587b32414eaaa53a069b4c4c75aba46ceba7","tarball":"https://registry.npmjs.org/@andersgee/kysely-fetch-driver/-/kysely-fetch-driver-1.1.0.tgz","fileCount":5,"unpackedSize":7053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwGJO/GQu1VFx4J39v1yrJ/nl5tyXGHLXikBEHBC+4UgIhAK+qxyXwIL+dxzw5/IFkzsuczC03IRj/nkDneyVsXgJE"}]},"_npmUser":{"name":"andersgee","email":"andersgee@gmail.com"},"directories":{},"maintainers":[{"name":"andersgee","email":"andersgee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kysely-fetch-driver_1.1.0_1701124468113_0.5019597703610252"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-23T11:23:00.256Z","1.0.1":"2023-04-23T11:23:00.496Z","modified":"2023-11-27T22:34:28.501Z","1.0.2":"2023-04-23T11:49:40.984Z","1.1.0":"2023-11-27T22:34:28.319Z"},"maintainers":[{"name":"andersgee","email":"andersgee@gmail.com"}],"homepage":"https://github.com/andersgee/kysely-fetch-driver#readme","repository":{"type":"git","url":"git+https://github.com/andersgee/kysely-fetch-driver.git"},"author":{"name":"andersgee"},"bugs":{"url":"https://github.com/andersgee/kysely-fetch-driver/issues"},"license":"MIT","readme":"# kysely-fetch-driver\n\nEdge compatible fetch driver for kysely.\n\nThis driver uses requests with `fetch()` to a webserver that responds with the query result instead of querying the database directly.\n\nThis is the same idea as the popular planetscale dialect but is not limited to planetscale or even mysql.\n\n## install\n\n```sh\nnpm install @andersgee/kysely-fetch-driver\n```\n\n## usage\n\n```ts\nimport { Kysely } from \"kysely\";\nimport { FetchDriver } from \"@andersgee/kysely-fetch-driver\";\nimport { DB } from \"./types\";\n//adapter of your choice:\nimport { MysqlAdapter, MysqlIntrospector, MysqlQueryCompiler } from \"kysely\";\n\n//something that can handle sending/recieving Date and bigint etc.\n//using superjson here as an example\nconst transformer = {\n  serialize: (value: any) => superjson.stringify(value),\n  deserialize: (str: string) => superjson.parse(str),\n};\n\nexport function dbfetch(init?: RequestInit) {\n  return new Kysely<DB>({\n    dialect: {\n      createAdapter: () => new MysqlAdapter(),\n      createIntrospector: (db) => new MysqlIntrospector(db),\n      createQueryCompiler: () => new MysqlQueryCompiler(),\n      createDriver: () => {\n        return new FetchDriver({\n          transformer: transformer,\n          url: \"http://localhost:4000\",\n          init: {\n            headers: {\n              Authorization: \"Basic SOMESECRET\",\n            },\n            //some default options of your choice here\n            //cache: \"no-store\",\n            ...init,\n          },\n        });\n      },\n    },\n  });\n}\n\n//use kysely query builder as normal\nconst examples = await dbfetch()\n  .selectFrom(\"Example\")\n  .selectAll()\n  .execute();\n\n//since this is just regular fetch()\n//in nextjs we are free to use http cache, for example:\nconst examples = await dbfetch({ next: { revalidate: 10 } })\n  .selectFrom(\"Example\")\n  .selectAll()\n  .execute();\n```\n\n### webserver\n\nYou need to have a webserver located at `url` that handles the requests for this driver to work. The webserver should handle requests like this:\n\n```ts\nasync function handler(request) {\n  const compiledQuery = superjson.deserialize(request.query.q);\n  const result = await kysely.executeQuery(compiledQuery);\n  return superjson.serialize(result);\n}\n```\n\n[see examples folder](examples) for a full example with fastify and mysql\n","readmeFilename":"README.md","description":"kysely fetch driver"}