kysely-mapper
Version:
Flexible Kysely-based utility for mapping between tables and objects
58 lines • 1.9 kB
JavaScript
import { TableMapper } from '../../mappers/table-mapper';
const countTransform = (count) => Number(count);
export function createUserMapperReturningDefault(db) {
return new TableMapper(db, 'users');
}
const noColumns = [];
export function createUserMapperReturningNothing(db) {
return new TableMapper(db, 'users', {
keyColumns: noColumns,
updateReturnColumns: noColumns,
}).withTransforms({
countTransform,
});
}
export function createUserMapperReturningID(db) {
return new TableMapper(db, 'users', {
keyColumns: ['id'],
updateReturnColumns: ['id'],
}).withTransforms({
countTransform,
});
}
export function createUserMapperReturningIDAndHandleAsH(db) {
return new TableMapper(db, 'users', {
keyColumns: ['id'],
insertReturnColumns: ['id', 'handle as h'],
updateReturnColumns: ['id', 'handle as h'],
}).withTransforms({ countTransform });
}
export function createUserMapperReturningDifferently(db) {
return new TableMapper(db, 'users', {
keyColumns: ['id'],
insertReturnColumns: ['id', 'handle'],
updateReturnColumns: ['name'],
}).withTransforms({ countTransform });
}
export function createUserMapperReturningAll(db) {
return new TableMapper(db, 'users', {
insertReturnColumns: ['*'],
updateReturnColumns: ['*'],
}).withTransforms({
countTransform,
});
}
export function createInsertTransformMapper(db) {
return new TableMapper(db, 'users', {
insertReturnColumns: ['id'],
updateReturnColumns: ['id'],
}).withTransforms({
insertTransform: (source) => ({
name: `${source.firstName} ${source.lastName}`,
handle: source.handle,
email: source.email,
}),
countTransform: (count) => Number(count),
});
}
//# sourceMappingURL=test-mappers.js.map