Nostalgic Primordial Monster

    @rbxts/binder
    TypeScript icon, indicating that this package has built-in type declarations

    6.0.0-ts.2 • Public • Published

    @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 implements Binder.BinderClass {
    	Instance: Part;
    
    	constructor(instance: Instance) {
    		assert(classIs(instance, "Part"), "Invalid argument #1, Part expected");
    		this.Instance = instance;
    	}
    
    	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 you make Binder class, make sure it is implemented to Binder.BinderClass

    Make sure it has Destroy method. Binder won't able to construct a new class without it

    Example:

    class DummyBinder implements BinderClass {
    	Destroy() {}
    }

    When creating Binder implemented class, make sure the first parameter of the constructor function must be Instance type.

    Example:

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

    Keywords

    Install

    npm i @rbxts/binder

    DownloadsWeekly Downloads

    135

    Version

    6.0.0-ts.2

    License

    MIT

    Unpacked Size

    30.3 kB

    Total Files

    9

    Last publish

    Collaborators

    • memothelemo