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

0.3.1 • Public • Published

ts-nodecg

CircleCI

Type your bundle with bundle specific definition like replicants and messages.

This library replaces the type definition in NodeCG core (nodecg/types/{browser,server}.d.ts). If you use this library, don't use the type definition in NodeCG core.

Install

npm i -D ts-nodecg
# or 
yarn add -D ts-nodecg

TypeScript 3.5 or newer is recommended

Usage

First, define your bundle's replicant and messages.

type ReplicantMap = {
    players: Array<{name: string; twitter: string}>;
    // ...
};
 
type MessageMap = {
    updateFoo: {
        // optional value to send with sendMessage / value to receive from listenFor
        data: number;
        // optional value to receive from sendMessage / value to send with listenFor callback
        result: number;
        // optional error object/value sent from listenFor callback
        error: CustomError;
    };
};

For server-side (extension)

import {CreateNodecgInstance} from 'ts-nodecg/server';
 
type NodeCG = CreateNodecgInstance<
    'my-bundle'// name of your bundle
    BundleConfig,
    ReplicantMap,
    MessageMap
>;
 
export = (nodecg: NodeCG) => {
    // ...
};

For client-side (dashboard/graphics)

Define the global nodecg/NodeCG variables somewhere in the project.

import {CreateNodecgInstance, CreateNodecgConstructor} from 'ts-nodecg/browser';
 
declare global {
    interface Window {
        nodecg: CreateNodecgInstance<
            'my-bundle', // name of your bundle
            BundleConfig,
            ReplicantMap,
            MessageMap
        >;
        NodeCG: CreateNodecgConstructor<
            'my-bundle', // name of your bundle
            BundleConfig,
            ReplicantMap,
            MessageMap
        >;
    }
}

Exposing your bundle's definition

Coming Soon™

License

MIT © Keiichiro Amemiya

Versions

Current Tags

Version History

Package Sidebar

Install

npm i ts-nodecg

Weekly Downloads

80

Version

0.3.1

License

MIT

Unpacked Size

19.9 kB

Total Files

12

Last publish

Collaborators

  • hoishin