inspectable
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

NPM version Build Status NPM downloads

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

📖 Documentation

Features

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

Installation

Node.js 20.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 { Inspectable, Inspect } from 'inspectable';

// INFO: Temp polyfill, more info https://github.com/microsoft/TypeScript/issues/55453#issuecomment-1687496648
(Symbol as any).metadata ??= Symbol("Symbol.metadata");

@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
// }

/inspectable/

    Package Sidebar

    Install

    npm i inspectable

    Weekly Downloads

    1,775

    Version

    3.0.2

    License

    MIT

    Unpacked Size

    14.3 kB

    Total Files

    10

    Last publish

    Collaborators

    • negezor