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

    Install

    npm i ts-nodecg

    DownloadsWeekly Downloads

    43

    Version

    0.3.1

    License

    MIT

    Unpacked Size

    19.9 kB

    Total Files

    12

    Last publish

    Collaborators

    • hoishin