@lbu/cli
Version:
CLI containing utilities and simple script runner
54 lines (49 loc) • 1.24 kB
JavaScript
import { newLogger } from "@lbu/insight";
import { createBodyParsers, session } from "@lbu/server";
import { environment, isStaging } from "@lbu/stdlib";
import {
FileCache,
newMinioClient,
newPostgresConnection,
newSessionStore,
} from "@lbu/store";
import { createApp } from "./api.js";
import {
app,
appBucket,
ensureBuckets,
minio,
sessionStore,
setApp,
setAppBucket,
setBodyParsers,
setFileCache,
setMinio,
setServiceLogger,
setSessionMiddleware,
setSessionStore,
setSql,
sql,
} from "./services/index.js";
/**
* Create all services / service contexts upfront
* We can do this because of how ES module exports are live bindings
*
* @returns {Promise<void>}
*/
export async function injectServices() {
setServiceLogger(newLogger({ ctx: { type: "services" } }));
setSql(
await newPostgresConnection({
createIfNotExists: isStaging(),
}),
);
setAppBucket(environment.APP_NAME);
setMinio(newMinioClient({}));
setSessionStore(newSessionStore(sql));
setFileCache(new FileCache(sql, minio, appBucket));
setApp(createApp());
setBodyParsers(createBodyParsers({}));
setSessionMiddleware(session(app, { store: sessionStore }));
await ensureBuckets("us-east-1");
}