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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@moneypot/caas

v100.0.1

Published

(_caas_ = "controller as a server", a silly but hopefully memorable name.)

Downloads

3

Readme

@moneypot/caas

(caas = "controller as a server", a silly but hopefully memorable name.)

This library implements a controller server that manages users and balances across any number of Moneypot casinos.

You can use it to quickly create your own controller.

Example implementations:

  1. https://github.com/moneypot/wheel-controller/: A wheel of fortune game (frontend)
  2. https://github.com/moneypot/dice-controller/: A dice game (frontend)

Manual

View our docs: https://moneypot.com/docs/caas

Install

$ npm install @moneypot/caas

Usage

import { defaultPlugins, ServerOptions, startAndListen } from "@moneypot/caas";
import path from "path";

const options: ServerOptions = {
  // Name of the postgres schemas you're exposing to the GraphQL API (if any)
  extraPgSchemas: ["app"],
  plugins: [
    ...defaultPlugins,
    // And any custom plugins you've written
  ],
  // Where to save the GraphQL schema (derived from your database + plugins)
  exportSchemaSDLPath: path.join(import.meta.dirname, "../schema.graphql"),
  // Where your database migration files are located (if any)
  userDatabaseMigrationsPath: path.join(import.meta.dirname, "../pg-versions"),
};

startAndListen(options)
  .then(({ port }) => {
    console.log(`Listening on ${port}`);
  })
  .catch(console.error);

Development

To work on this library , there's a mini project in the ./demo directory that uses @moneypot/caas as a lib.

createdb caas_demo

Ensure this role exists:

CREATE ROLE app_postgraphile LOGIN PASSWORD 'pass';

Create .env:

DATABASE_URL="postgres://app_postgraphile:pass@localhost/caas_demo"
SUPERUSER_DATABASE_URL="postgres://app_superuser:pass@localhost/caas_demo"
GRAPHILE_ENV=development
NODE_ENV=development

Run the demo:

cd demo
npm install
npm run dev

The caas-demo server should be running at http://localhost:8888/graphql.

Dashboard development

To work on the ./dashboard react app, ensure that caas-demo is running.

Terminal 1: Run demo controller inside this repo's demo dir:

cd demo
npm run dev
# Listening on :8888

Terminal 2: Run dashboard project pointed at demo controller

cd dashboard
npm install
VITE_GRAPHQL_URL=http://localhost:8888/graphql npm run dev

Now visit the localhost url that it prints out.

(The VITE_GRAPHQL_URL override is necessary since the dashboard defaults to window.location.origin + "/graphql" as its api endpoint since it usually runs bundled with the caas server.)

Change log

  • 1.0.0: Initial release.