npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rbxts-transformer-services

v1.1.1

Published

A transformer that converts @rbxts/services imports into plain GetService calls.

Downloads

282

Readme

rbxts-transformer-services

This is a demo transformer that converts @rbxts/services imports into plain GetService calls for increased legibility.

Example

// input.ts
import { Players, ServerScriptService } from "@rbxts/services";

print(Players.LocalPlayer);
print(ServerScriptService.GetChildren().size());
-- output.lua
local Players = game:GetService("Players")
local ServerScriptService = game:GetService("ServerScriptService")
print(Players.LocalPlayer)
print(#ServerScriptService:GetChildren())

Template

This transformer is intended to be used as a template for those who are interested in creating their own transformers in roblox-ts.

A necessary resource for those starting out with transformers is ts-ast-viewer. It shows you the result of AST, relevant properties, symbol information, type information and it automatically generates factory code for nodes. For example, you can see the code this transformer generates here.

I'd also recommend downloading the TypeScript repo locally as it's extremely helpful when you're using undocumented (the majority of the compiler API), internal or uncommon APIs.

Transformers mutate the TypeScript AST by replacing parts of the AST with new nodes. Transformers are also able to utilize symbol and type information giving you access to TypeScript's advanced control flow analysis.

Other Transformers

Here's a list of transformers if you want to see how they handle working with parts of the TypeScript compiler api not shown here (e.g symbols or types).

One other source you may goto for learning about transformers is actually roblox-ts itself. This generates a Luau AST instead of a TS AST but it may still be a useful resource for learning about the compiler api.