nihalgonsalves / pg-error-enum

TypeScript Enum for Postgres Errors with no runtime dependencies. Also compatible with plain JavaScript.

Home Page:https://www.npmjs.com/package/pg-error-enum

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pg-error-enum

npm version build status

TypeScript Enum for Postgres Errors with no runtime dependencies. Also compatible with plain JavaScript.

Quick Start

Installation

# Using npm
npm install --save pg-error-enum

# Using yarn
yarn add pg-error-enum

Usage

TypeScript or ES6 Modules

import { PostgresError } from "pg-error-enum";

JavaScript

const PostgresError = require("pg-error-enum").PostgresError;

Usage

if (error.code === PostgresError.UNIQUE_VIOLATION) {
  throw new Error("That username is taken");
}

Generation

The Enum is generated directly from errcodes.txt in the Postgres repository.

It follows the syntax defined in the text file, i.e., in short:

  1. Lines beginning with # and empty lines are ignored.

  2. Sections are parsed using:

    const sectionRegex = /^Section:\s(?<description>.*)$/;
  3. Each error code is parsed using:

    const errorLineRegex =
      /^(?<sqlstate>[A-Z0-9]*)\s*(?<severity>[EWS])\s*ERRCODE_(?<constant>[A-Z_]*)\s*(?<code>[a-z_]*)$/;

About

TypeScript Enum for Postgres Errors with no runtime dependencies. Also compatible with plain JavaScript.

https://www.npmjs.com/package/pg-error-enum

License:MIT License


Languages

Language:TypeScript 98.2%Language:JavaScript 1.6%Language:Dockerfile 0.2%