koa-change-case

Extensible Koa middleware for converting objects in context


License
MIT
Install
npm install koa-change-case@1.2.5

Documentation

Koa change case

Expansible Koa middleware for converting objects in context

Use

import Koa from "koa";
import { snakeCase, camelCase, requestBody, responseBody } from "koa-change-case";
import bodyParser from "koa-bodyparser";

const app = new Koa();

app.use(bodyParser())
app.use(camelCase(requestBody))

// Set your middlewares

app.use(snakeCase(responseBody))

Expansion

Convert custom type

import { ConvertProcessor, Converter, snakeCase } from "koa-change-case";

class MapConvertProcessor
  implements ConvertProcessor<Map<unknown, unknown>, Map<unknown, unknown>> {
  constructor(private readonly changeCase: (name: string) => string) {}

  convert(
    map: Map<unknown, unknown>,
    converter: Converter
  ): Map<unknown, unknown> {
    const newMap = new Map<unknown, unknown>();
    map.forEach((value, key) => {
      const convertedKey = typeof key !== "string" ? key : this.changeCase(key);
      newMap.set(convertedKey, converter.convert(value));
    });

    return newMap;
  }

  isConvertible(value: unknown): boolean {
    return value instanceof Map;
  }
}

snakeCase.register(new MapConvertProcessor(snakeCase.changeCase))

Convert other convention

import { toMiddlewareFactory, createDefaultConverterManager } from "koa-change-case";

const toOtherCase: (key: string) => string // TODO(implement) 

const otherCase = toMiddlewareFactory(
  createDefaultConverterManager(toOtherCase)
);