{"_id":"@candypay/kysely-planetscale","_rev":"2-df07637806a87f8938a7235075baca69","name":"@candypay/kysely-planetscale","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@candypay/kysely-planetscale","version":"0.0.1","description":"Kysely dialect for PlanetScale Serverless","repository":{"type":"git","url":"git+https://github.com/depot/kysely-planetscale.git"},"homepage":"https://github.com/depot/kysely-planetscale","author":{"name":"Jacob Gillespie","email":"jacobwgillespie@gmail.com"},"license":"MIT","main":"./dist/index.cjs","types":"./dist/index.d.ts","keywords":["kysely","planetscale","mysql","vitess","serverless"],"scripts":{"build":"tsup src/index.ts --format cjs --dts --clean","clean":"rm -rf dist","fmt":"prettier --write .","fmt:check":"prettier --check .","prepack":"pnpm run build","type-check":"tsc --noEmit"},"peerDependencies":{"@candypay/planetscale-database-js":"*","kysely":"*"},"dependencies":{"date-fns":"^2.29.3"},"devDependencies":{"@candypay/planetscale-database-js":"^0.0.4","@tsconfig/node14":"^1.0.3","@types/node":"^18.11.13","kysely":"^0.22.0","prettier":"^2.8.1","prettier-plugin-organize-imports":"^3.2.1","prettier-plugin-pkg":"^0.17.1","tsup":"^6.5.0","typescript":"^4.9.4"},"publishConfig":{"access":"public"},"sideEffects":false,"gitHead":"2cc7884bbfa43aad09f8b2d6ee6e0814b801692c","bugs":{"url":"https://github.com/depot/kysely-planetscale/issues"},"_id":"@candypay/kysely-planetscale@0.0.1","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-k+tJ5JBS9YEefTB+W1BxI+Ava+cRd/rPffKnzxDWdFkg1tzQNVirRKxxOQI/jLoLcBdCVhTl21mS6JDAH8IVTw==","shasum":"3ac468d84acb61035308fc6c2da6f0002e698b60","tarball":"https://registry.npmjs.org/@candypay/kysely-planetscale/-/kysely-planetscale-0.0.1.tgz","fileCount":5,"unpackedSize":15035,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt0MnhS/K7T8iunBTzV4iRx8INV/dFfDTCBjsT6jQJLgIhANQez+xp8oRknbneNxSp/MOazINXYIXfKapFsh9oQEFT"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJ9N4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoqrw//VY7mjYePRpwdl9E6t0B66tjL7GRgzO2LHDwLgliXzmz6oxvK\r\n9Zv4cbzsb7EvJW2CKNIw+YQbABVQu3tvM1zggnlR0Ila3y0hAZIt9AbLbvI3\r\nGcB5t97dMU4VyThwxJqnIGxhc/lYAh/AAHMF2zc3lXlUYSKvcKBLv9WWJ1HB\r\nohKE2GJvw+VtSa3H4S+wNB8fj03X7rxBBKz+kj1CY0MbwGKq6c7y0Ray+TeD\r\nv7TavLSEH2JkG1I9fZUD4bl7vDtAkQB2TesQFTfNa9ayoG3v1ssMF2Gh0Do0\r\nn1GJIsI/8LUnPpQVo2TlLKl8tCavJS+uyUF1ORhBpDBb0Y9s7W2fHbFprZO6\r\nXu5WM/tpxvVnma7uxmYzxDf5agj6eQHsR1rWN4/nDckdfO9TMGxufPukDDwD\r\n2Zk9eGD6IpK6h4JrTNxIGEOsmeAgP7xINOe4uXlCs85dyObAqcEW1HidyPJL\r\ndL0CrzZh4mGURBr6fgR++nVkeFyWiC7N7sJ3HhscpggNCnGfsxppowafBDE0\r\n/9HD1771Y12l2S4u3iBqtiSNDh0uH+a914ioF9da2reF6j3wOUPS72SqOJx6\r\n3rkV6ZzVfRzRn+j8AwV9xsthzDIY2Jw52oVhIcpUQxxn8OElDuUQoX8KxVF4\r\nuH/r4XDmLCelBuf9L9Cr5FeYLruVUcq1kFI=\r\n=10l3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kira272921","email":"hey.mukesh272921@gmail.com"},"directories":{},"maintainers":[{"name":"imanuraglol","email":"kr.anurag24@gmail.com"},{"name":"kira272921","email":"hey.mukesh272921@gmail.com"},{"name":"candypay-dev","email":"hello@candypay.fun"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kysely-planetscale_0.0.1_1680331639893_0.029294056046739625"},"_hasShrinkwrap":false},"0.0.2":{"name":"@candypay/kysely-planetscale","version":"0.0.2","description":"Kysely dialect for PlanetScale Serverless","repository":{"type":"git","url":"git+https://github.com/depot/kysely-planetscale.git"},"homepage":"https://github.com/depot/kysely-planetscale","author":{"name":"Jacob Gillespie","email":"jacobwgillespie@gmail.com"},"license":"MIT","main":"./dist/index.js","types":"./dist/index.d.ts","keywords":["kysely","planetscale","mysql","vitess","serverless"],"scripts":{"build":"tsup src/index.ts --format cjs --dts --clean","clean":"rm -rf dist","fmt":"prettier --write .","fmt:check":"prettier --check .","prepack":"pnpm run build","type-check":"tsc --noEmit"},"peerDependencies":{"@candypay/planetscale-database-js":"*","kysely":"*"},"dependencies":{"date-fns":"^2.29.3"},"devDependencies":{"@candypay/planetscale-database-js":"^0.0.4","@tsconfig/node14":"^1.0.3","@types/node":"^18.11.13","kysely":"^0.22.0","prettier":"^2.8.1","prettier-plugin-organize-imports":"^3.2.1","prettier-plugin-pkg":"^0.17.1","tsup":"^6.5.0","typescript":"^4.9.4"},"publishConfig":{"access":"public"},"sideEffects":false,"gitHead":"2cc7884bbfa43aad09f8b2d6ee6e0814b801692c","bugs":{"url":"https://github.com/depot/kysely-planetscale/issues"},"_id":"@candypay/kysely-planetscale@0.0.2","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-Nr5EgsuN+Ex/leTnKQCPO/tme3wN3QtA0WefdZw+ZGgAk8lZv1pXSioto+dB8tFMVg2rWbdo2XAKMn4sfml1bw==","shasum":"d48aa635f640b74e25fcf15ffe38402ea4990a01","tarball":"https://registry.npmjs.org/@candypay/kysely-planetscale/-/kysely-planetscale-0.0.2.tgz","fileCount":5,"unpackedSize":15034,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGn8xIuU1UppGzLY70pB1i2lbGtN22rs57bGfuKXrPKCAiBeZEJGCNfkmzO8d5qGvBq6Kl9Ko1tk2rpjXTPJzqog3Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJ9QiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCXw//Y17gDzDGDmDMoVS3CM+vxBmx5+nyx2XZsqfscejecO/jibsj\r\nYBKFn8/GlGwMQQWkcuqpAvlGq5rNJQMDErUFqZRMKtJ7h2kdLykRM2S/u/64\r\nySSe4Oy9wzGU7JIUhM4haF1cyzCyzpoNL1r5k9Ul+gP/FR2zwZ4kAOoCr0ph\r\nv6mCQDGyeuALbR097g0QWmGuDo317zrSGzq7Rj2mu2+v8NRLeWs78beL7M9U\r\nUG4sAj9w40PKTffV8kP4TTXRgU/zCRFfmnhFD3MpfzlLQGFMVzoeKUgwX8Mn\r\nxtByXuxM2k571J1vOHf1fxpEkf0eQTIhapBROa11udH3kkt7lmXKZ5bwuY0w\r\nKAEs+HiRDigA6+ksIO4aFP0Ft/w7nUZ/voXL0d6EhWmxNFblvx0qJ1EOFl1N\r\na4N1AhSBGwtNtlgGQK5W8J9o+wkgELsGOJv42bJrBaX5TYKxtxEK65m8H9dv\r\nfCwg5zkp4jFgyYlwZmqT0icJbsRtBrlkrP6CwzKJC4TAbGqgbWkaTJzdR/L3\r\nR+cWfLUkKvI/xsGIPdlotDJThmx/epFxYFb4bmb2s8tkqX25UiLlkCIgvnDk\r\n9HtcXGP9pLxfzOEb0O/N9pp7YtKm87GE0sGJoyTROGLxcXNWgrdbXiS6VyBh\r\njlnPRW7IDnK2KeQjFo/eSEYOD2RPS3a1dv8=\r\n=Fw54\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kira272921","email":"hey.mukesh272921@gmail.com"},"directories":{},"maintainers":[{"name":"imanuraglol","email":"kr.anurag24@gmail.com"},{"name":"kira272921","email":"hey.mukesh272921@gmail.com"},{"name":"candypay-dev","email":"hello@candypay.fun"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kysely-planetscale_0.0.2_1680331809909_0.6693268064026345"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-01T06:47:19.843Z","0.0.1":"2023-04-01T06:47:20.013Z","modified":"2023-07-02T16:12:53.255Z","0.0.2":"2023-04-01T06:50:10.089Z"},"maintainers":[{"email":"ritvij2001@gmail.com","name":"ritvij14"},{"email":"kr.anurag24@gmail.com","name":"imanuraglol"},{"email":"hey.mukesh272921@gmail.com","name":"kira272921"},{"email":"hello@candypay.fun","name":"candypay-dev"}],"description":"Kysely dialect for PlanetScale Serverless","homepage":"https://github.com/depot/kysely-planetscale","keywords":["kysely","planetscale","mysql","vitess","serverless"],"repository":{"type":"git","url":"git+https://github.com/depot/kysely-planetscale.git"},"author":{"name":"Jacob Gillespie","email":"jacobwgillespie@gmail.com"},"bugs":{"url":"https://github.com/depot/kysely-planetscale/issues"},"license":"MIT","readme":"![Banner Image](./support/banner.jpg)\n\n# kysely-planetscale\n\n[![CI](https://github.com/depot/kysely-planetscale/actions/workflows/ci.yml/badge.svg)](https://github.com/depot/kysely-planetscale/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/kysely-planetscale.svg)](https://www.npmjs.com/package/kysely-planetscale)\n![Powered by TypeScript](https://img.shields.io/badge/powered%20by-typescript-blue.svg)\n\nA [Kysely](https://github.com/koskimas/kysely) dialect for [PlanetScale](https://planetscale.com/), using the [PlanetScale serverless driver for JavaScript](https://planetscale.com/blog/introducing-the-planetscale-serverless-driver-for-javascript).\n\n## Installation\n\nYou should install both `kysely` and `@planetscale/database` with `kysely-planetscale`, as they are both required peer dependencies. You can install them with your favorite package manager:\n\n```bash\n# with pnpm\npnpm add kysely-planetscale kysely @planetscale/database\n\n# with yarn\nyarn add kysely-planetscale kysely @planetscale/database\n\n# with npm\nnpm install kysely-planetscale kysely @planetscale/database\n```\n\n## Usage\n\nYou can pass a new instance of `PlanetScaleDialect` as the `dialect` option when creating a new `Kysely` instance:\n\n```typescript\nimport {Kysely} from 'kysely'\nimport {PlanetScaleDialect} from 'kysely-planetscale'\n\nconst db = new Kysely<Database>({\n  dialect: new PlanetScaleDialect({\n    host: '<host>',\n    username: '<user>',\n    password: '<password>',\n  }),\n})\n```\n\n`PlanetScaleDialect` accepts the same options as `connect({...})` from `@planetscale/database`, so for instance if you are using Node.js and need to provide a `fetch` implementation:\n\n```typescript\nimport {Kysely} from 'kysely'\nimport {PlanetScaleDialect} from 'kysely-planetscale'\nimport {fetch} from 'undici'\n\n// Connect using a DATABASE_URL, provide a fetch implementation\nconst db = new Kysely<Database>({\n  dialect: new PlanetScaleDialect({\n    url: process.env.DATABASE_URL,\n    fetch,\n  }),\n})\n```\n\n### Type Conversion\n\n`PlanetScaleDialect` provides built-in support for converting JavaScript Dates to and from `DATETIME` and `TIMESTAMP` columns, as Kysely's generated types expect. However, you can override or extend this behavior by providing a custom `format` or `cast` function to override the defaults.\n\n#### Custom `format` function\n\n`PlanetScaleDialect` passes all parameters to `@planetscale/database` unmodified, except for JavaScript Dates, which are converted to MySQL strings. If you [set a `format` function](https://github.com/planetscale/database-js#custom-query-parameter-format-function), you can override this behavior:\n\n```typescript\nimport {Kysely} from 'kysely'\nimport {PlanetScaleDialect} from 'kysely-planetscale'\nimport SqlString from 'sqlstring'\n\nconst db = new Kysely<Database>({\n  dialect: new PlanetScaleDialect({\n    url: process.env.DATABASE_URL,\n    format: SqlString.format,\n  }),\n})\n```\n\n#### Custom `cast` function\n\n`PlanetScaleDialect` automatically type-casts `DATETIME` and `TIMESTAMP` to JavaScript Dates. If you'd prefer to customize this behavior, you can [pass a custom `cast` function](https://github.com/planetscale/database-js#custom-type-casting-function):\n\n```typescript\nimport {cast} from '@planetscale/database'\nimport {Kysely} from 'kysely'\nimport {PlanetScaleDialect} from 'kysely-planetscale'\nimport SqlString from 'sqlstring'\n\nconst db = new Kysely<Database>({\n  dialect: new PlanetScaleDialect({\n    url: process.env.DATABASE_URL,\n    cast: inflate,\n  }),\n})\n\nfunction inflate(field, value) {\n  if (field.type === 'INT64' || field.type === 'UINT64') {\n    return BigInt(value)\n  }\n  return cast(field, value)\n}\n```\n\n#### Experimental: `useSharedConnection`\n\nAs of version 1.3.0, `PlanetScaleDialect` supports using a shared `@planetscale/database` connection for all non-transaction queries, to improve query performance. This option is not enabled by default, but can be enabled by setting the `useSharedConnection` option to `true`. Transaction queries will always run using their own connection.\n\nThis is an experimental feature, and may be removed in a future version.\n\n```typescript\nimport {Kysely} from 'kysely'\nimport {PlanetScaleDialect} from 'kysely-planetscale'\n\nconst db = new Kysely<Database>({\n  dialect: new PlanetScaleDialect({\n    url: process.env.DATABASE_URL,\n    useSharedConnection: true,\n  }),\n})\n```\n\n## License\n\nMIT License, see `LICENSE`.\n","readmeFilename":"README.md"}