kysely-hash
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

kysely-hash

CI

NPM version

NPM downloads

js-prettier-style

Hash plugin for kysely fully typed, developed for Node.js but also runs on Deno and Bun; with this plugin you can hash fields using crypto-js library.

Install

npm i kysely kysely-hash

Usage

Options

  • fieldsToDecrypt: field to hash during insert and update, or in '=' and '!=' where condition (use alias if it is used)

  • hashAlgorithm: hash algorithm

How to use

WARNING: fields must be of string types

const kyselyInstance = new Kysely<Database>({
    dialect: new SqliteDialect({
        database: new Database(':memory:'),
    }),
})

await kyselyInstance.schema
    .createTable('person')
    .ifNotExists()
    .addColumn('id', 'integer', (col) => col.primaryKey())
    .addColumn('first_name', 'varchar(255)')
    .addColumn('last_name', 'varchar(255)')
    .addColumn('gender', 'varchar(255)')
    .execute()

await kyselyInstance
    .insertInto('person')
    .values([
        {
            first_name: 'Max',
            last_name: 'Jack',
            gender: 'man',
        },
        {
            first_name: 'George',
            last_name: 'Rossi',
            gender: 'man',
        },
    ])
    .withPlugin(
        new KyselyHashPlugin<Database>({
            fieldsToHash: ['last_name'],
            hashAlgorithm: 'SHA256',
        }),
    )
    .execute() 

License

Licensed under MIT.

Package Sidebar

Install

npm i kysely-hash

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

15.1 kB

Total Files

7

Last publish

Collaborators

  • alenap93