0.9.16 • Published 3 years ago

@parade/utils v0.9.16

Weekly downloads
69
License
MIT
Repository
-
Last release
3 years ago

@parade/utils

pino-stackdriver

Pino out-of-process transport which takes Pino logs and maps them to Stackdriver logs, e.g.

node ./server.js | ./node_modules/@parade/utils/src/pino-stackdriver/pino-stackdriver.js

express-verror-middleware

Express error middleware which picks off and sends status and code from a VError and returns a standard JSON response body, e.g.

NOTE: The message and stack traces are masked in production, apps should use 'code' for programmatic error handling.

import express from 'express';
import VError from 'verror';
import { verrorMiddleware } from '@parade/utils';

const app = express();

app.use((req, res, next) => {
  const cause = new Error('Uh oh');
  next(
    new VError(
      { cause, info: { status: 401, code: 'UNAUTHORIZED' } },
      'Failed request'
    )
  );
});

app.use(verrorMiddleware());

app.listen(6060);

// curl http://localhost:6060

// NODE_ENV !== 'production'
// {
//     errors: [{
//         code: 'UNAUTHORIZED',
//         message: 'Failed request: Uh oh',
//         stack: 'VError etc. etc.' // Includes nested verror stack traces
//     }]
// }

// NODE_ENV === 'production'
// {
//     errors: [{
//         code: 'UNAUTHORIZED',
//         message: 'Something went wrong',
//     }]
// }

logger

Light wrapper around Pino logger to simplify the API. https://github.com/pinojs/pino/issues/579

import { createLogger } from '@parade/utils';

const logger = createLogger({
  name: 'orders',
});

logger.info('A simple log message');
logger.info({ foo: 'bar' }, 'A simple log message with meta');
logger.info({ foo: 'bar' }); // message is always optional
logger.info(
  {
    err: new Error('Something went wrong'),
    foo: 'bar',
  },
  '`meta.err` will serialize `Error` objects, including stack traces'
);
logger.info(
  {
    req: new ClientRequest('https://paradeworld.com'),
    foo: 'bar',
  },
  '`meta.req` will serialize `ClientRequest` objects'
);
logger.info(
  {
    res: new ServerResponse(),
    foo: 'bar',
  },
  '`meta.res` will serialize `ServerResponse` objects'
);
logger.info(new Error(), '`Error` objects can be passed in directly');
logger.info(
  new ClientRequest('https://paradeworld.com'),
  '`ClientRequest` objects can be passed in directly'
);
logger.info(
  new ServerResponse(),
  '`ServerResponse` objects can be passed in directly'
);
0.9.16

3 years ago

0.9.15

3 years ago

0.9.14

3 years ago

0.9.13

3 years ago

0.9.12

3 years ago

0.9.11

3 years ago

0.9.10

3 years ago

0.9.9

3 years ago

0.9.8

4 years ago

0.9.7

4 years ago

0.9.6

4 years ago

0.9.5

4 years ago

0.9.4

4 years ago

0.9.3

4 years ago

0.9.2

4 years ago

0.9.1

4 years ago

0.9.0

4 years ago

0.8.0

4 years ago

0.7.3

4 years ago

0.7.2

4 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.8

4 years ago

0.6.7

4 years ago

0.6.6

4 years ago

0.6.5

4 years ago

0.6.4

4 years ago

0.6.3

4 years ago

0.6.2

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.25

4 years ago

0.5.23

4 years ago

0.5.24

4 years ago

0.5.22

4 years ago

0.5.21

4 years ago

0.4.21

4 years ago

0.4.20

4 years ago

0.4.19

4 years ago

0.4.18

4 years ago

0.4.17

4 years ago

0.4.16

5 years ago

0.4.15

5 years ago

0.4.14

5 years ago

0.4.13

5 years ago

0.4.12

5 years ago

0.4.11

5 years ago

0.4.10

5 years ago

0.4.9

5 years ago

0.4.8

5 years ago

0.4.7

5 years ago

0.4.6

5 years ago

0.4.5

5 years ago

0.4.4

5 years ago

0.4.3

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago