@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:
- https://github.com/moneypot/wheel-controller/: A wheel of fortune game (frontend)
- https://github.com/moneypot/dice-controller/: A dice game (frontend)
Manual
View our docs: https://moneypot.com/docs/caas
Install
$ npm install @moneypot/caasUsage
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_demoEnsure 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=developmentRun the demo:
cd demo
npm install
npm run devThe 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 :8888Terminal 2: Run dashboard project pointed at demo controller
cd dashboard
npm install
VITE_GRAPHQL_URL=http://localhost:8888/graphql npm run devNow 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.
