6.0.0-ts.3 • Published 2 years ago

@rbxts/binder v6.0.0-ts.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@rbxts/binder

Typings for Quenty's Binder (a Nevermore module)

Installation

NPM: npm i @rbxts/binder

Yarn: yarn add @rbxts/binder

Usage

import Binder from "@rbxts/binder";

class Disco {
	constructor(public readonly instance: Instance) {
		assert(classIs(instance, "Part"), "Invalid argument #1, Part expected");
	}

	Update() {
		this.instance.BrickColor = BrickColor.random();
	}

	Destroy() {}
}

const discoBinder = new Binder("Disco", Disco);
discoBinder.Start();

// have some party!
game.GetService("RunService").Heartbeat.Connect(() => {
	for (const object of discoBinder.GetAll()) {
		object.Update();
	}
});

Differences from the Luau version of Binder

Creating Binder from a function or object

It is the same thing as you normally do in Binder from Luau.

Function

const binder = new Binder("Bird", (inst) => {
    print("Wow, a new bird!", inst);
    return {
        Destroy() {
     	    print("Uh oh, the bird is gone!");
        },
    };
});

binder.Start();

Object

// Create method is required
const binder = new Binder("Hello", {
    Create(instance: Instance) {
        print("Wow a new bird!", instance);
        return {
            Destroy() {
                print("Uh oh, the bird is gone!");
            },
        };
    },
});

Creating Binder from class prototype

When creating Binder base class, make sure the first parameter of the constructor function must be Instance type otherwise it will result a type mismatch error.

Example:

class DummyBinder {
	constructor(instance: Instance) {
		print(`${instance.GetFullName()} spawned!`);
	}
}

Destroying component

You may want to make either Destroy method either in lowercase or PascalCase so that Binder can call it and automatically call the method.

6.0.0-ts.3

2 years ago

6.0.0-ts.1

2 years ago

6.0.0-ts.0

2 years ago

6.0.0-ts.2

2 years ago

4.2.0-ts.0

3 years ago

4.2.0-ts.rc-0

3 years ago

4.2.0-ts.1

3 years ago

4.1.1-ts.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago