JSPM

  • Created
  • Published
  • Downloads 463
  • Score
    100M100P100Q94372F
  • License Apache-2.0

A port of howmanysmall's janitor module.

Package Exports

  • @rbxts/janitor
  • @rbxts/janitor/src/init.lua

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@rbxts/janitor) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@rbxts/janitor

NPM

Typings for howmanysmall's forked janitor module

View the Janitor docs!

Credits to Validark for the original module, see RoStrap's Janitor docs for more information.

Installation:

npm i @rbxts/janitor

Changes

  • Gets the Promise lib by using _G rather than using wally package-esque import

  • Returns

    return table.freeze({
        Janitor = Janitor
    })

    instead of just returning the Janitor namespace.

Example Usage

import { Janitor } from "@rbxts/janitor";

const Obliterator = new Janitor<{ Instances: Instance }>();

print(Obliterator.Add(new Instance("Part")));

// Queue the Part to be Destroyed at Cleanup time
Obliterator.Add(new Instance("Part"), "Destroy");

// Queue function to be called with `true` MethodName
Obliterator.Add(print, true);

// By passing an Index, the Object will occupy a namespace
// If "Instances" already exists, it will call :Remove("Instances") before writing
Obliterator.Add(new Instance("Part"), "Destroy", "Instances");

// Queue a promise to be cancelled when the Janitor is cleaned
// `result` is of type Promise<number>
const result = Obliterator.AddPromise(
  new Promise<number>((resolve, _reject) => {
    task.wait(5);
    resolve(42);
  })
);

// Cleanup all connections, calling `print`, Destroying our Part, and cancelling our promise
Obliterator.Cleanup();

Changelog

See CHANGELOG.md