Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
kysely-planetscale
Advanced tools
Readme
A Kysely dialect for PlanetScale, using the PlanetScale serverless driver for JavaScript.
You 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:
# with pnpm
pnpm add kysely-planetscale kysely @planetscale/database
# with yarn
yarn add kysely-planetscale kysely @planetscale/database
# with npm
npm install kysely-planetscale kysely @planetscale/database
You can pass a new instance of PlanetScaleDialect
as the dialect
option when creating a new Kysely
instance:
import {Kysely} from 'kysely'
import {PlanetScaleDialect} from 'kysely-planetscale'
const db = new Kysely<Database>({
dialect: new PlanetScaleDialect({
host: '<host>',
username: '<user>',
password: '<password>',
}),
})
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:
import {Kysely} from 'kysely'
import {PlanetScaleDialect} from 'kysely-planetscale'
import {fetch} from 'undici'
// Connect using a DATABASE_URL, provide a fetch implementation
const db = new Kysely<Database>({
dialect: new PlanetScaleDialect({
url: process.env.DATABASE_URL,
fetch,
}),
})
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.
format
functionPlanetScaleDialect
passes all parameters to @planetscale/database
unmodified, except for JavaScript Dates, which are converted to MySQL strings. If you set a format
function, you can override this behavior:
import {Kysely} from 'kysely'
import {PlanetScaleDialect} from 'kysely-planetscale'
import SqlString from 'sqlstring'
const db = new Kysely<Database>({
dialect: new PlanetScaleDialect({
url: process.env.DATABASE_URL,
format: SqlString.format,
}),
})
cast
functionPlanetScaleDialect
automatically type-casts DATETIME
and TIMESTAMP
to JavaScript Dates. If you'd prefer to customize this behavior, you can pass a custom cast
function:
import {cast} from '@planetscale/database'
import {Kysely} from 'kysely'
import {PlanetScaleDialect} from 'kysely-planetscale'
import SqlString from 'sqlstring'
const db = new Kysely<Database>({
dialect: new PlanetScaleDialect({
url: process.env.DATABASE_URL,
cast: inflate,
}),
})
function inflate(field, value) {
if (field.type === 'INT64' || field.type === 'UINT64') {
return BigInt(value)
}
return cast(field, value)
}
useSharedConnection
As 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.
This is an experimental feature, and may be removed in a future version.
import {Kysely} from 'kysely'
import {PlanetScaleDialect} from 'kysely-planetscale'
const db = new Kysely<Database>({
dialect: new PlanetScaleDialect({
url: process.env.DATABASE_URL,
useSharedConnection: true,
}),
})
MIT License, see LICENSE
.
FAQs
Kysely dialect for PlanetScale Serverless
The npm package kysely-planetscale receives a total of 3,351 weekly downloads. As such, kysely-planetscale popularity was classified as popular.
We found that kysely-planetscale demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.