2.1.1 • Published 22 days ago

inspectable v2.1.1

Weekly downloads
1,183
License
MIT
Repository
github
Last release
22 days ago

Inspectable - Make the output of a class instance in the console meaningful

📖 Documentation

Features

  1. Self-Sufficient. The library has zero dependencies (except decorators support).
  2. Reliable. The library is written in TypeScript and covered by tests.
  3. Modern. The library comes with native ESM support

Installation

Node.js 12.0.0 or newer is required

  • Using npm (recommended)
    npm i inspectable
  • Using Yarn
    yarn add inspectable
  • Using pnpm
    pnpm add inspectable

Example usage

import { inspectable } from 'inspectable';

class APIRequest {
    public method = 'pay';

    private token = 'super-private';
}

const request = new APIRequest();

console.log(request);
// APIRequest { method: 'pay', token: 'super-private' }

inspectable(APIRequest, {
    serialize(instance) {
        return {
            method: instance.method
        };
    }
});

console.log(request);
// APIRequest {
//   method: 'pay'
// }

Decorators

import 'reflect-metadata';
import { Inspectable, Inspect } from 'inspectable';

@Inspectable({/* options */})
class APIRequest {
    @Inspect()
    public method = 'pay';

    private token = 'super-private';

    @Inspect({ nullable: false })
    private signal = null;

    @Inspect({ as: 'firstName' })
    private name = 'john';

    @Inspect({ compute: true })
    public canRequest() {
        return Boolean(this.token);
    }
}

const request = new APIRequest();

console.log(request);
// APIRequest {
//   method: 'pay',
//   firstName: 'john',
//   canRequest: true
// }