slonik-interceptor-field-name-transformation
TypeScript icon, indicating that this package has built-in type declarations

46.2.0 • Public • Published

slonik-interceptor-field-name-transformation

NPM version Canonical Code Style Twitter Follow

Transforms Slonik query result field names.

Motivation

This interceptor removes the necessity to alias field names, e.g.

connection.any(sql`
  SELECT
    id,
    full_name "fullName"
  FROM person
`);

Field name transformation uses afterQuery interceptor method to format field names.

API

import {
  createFieldNameTransformationInterceptor
} from 'slonik-interceptor-field-name-transformation';
/**
 * @property format The only supported format is CAMEL_CASE.
 * @property test Tests whether the field should be formatted. The default behaviour is to include all fields that match ^[a-z0-9_]+$ regex.
 */
type ConfigurationType = {|
  +format: 'CAMEL_CASE',
  +test: (field: FieldType) => boolean
|};

(configuration: ConfigurationType) => InterceptorType;

Example usage

import {
  createPool
} from 'slonik';
import {
  createFieldNameTransformationInterceptor
} from 'slonik-interceptor-field-name-transformation';

const interceptors = [
  createFieldNameTransformationInterceptor({
    format: 'CAMEL_CASE'
  })
];

const connection = createPool('postgres://', {
  interceptors
});

connection.any(sql`
  SELECT
    id,
    full_name
  FROM person
`);

// [
//   {
//     id: 1,
//     fullName: 1
//   }
// ]

Package Sidebar

Install

npm i slonik-interceptor-field-name-transformation

Weekly Downloads

3,135

Version

46.2.0

License

BSD-3-Clause

Unpacked Size

21.7 kB

Total Files

21

Last publish

Collaborators

  • gajus