Attributes
Includes Deno configuration
Repository
Current version released
a week ago
Dependencies
Versions
- 0.6.0Latest
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.5.0-pre.19
- 0.5.0-pre.18
- 0.5.0-pre.17
- 0.5.0-pre.16
- 0.5.0-pre.15
- 0.5.0-pre.14
- 0.5.0-pre.13
- 0.5.0-pre.12
- 0.5.0-pre.11
- 0.5.0-pre.10
- 0.5.0-pre.9
- 0.5.0-pre.8
- 0.5.0-pre.7
- 0.5.0-pre.6
- 0.5.0-pre.5
- 0.5.0-pre.4
- 0.5.0-pre.3
- 0.5.0-pre.2
- 0.5.0-pre.1
- 0.5.0-pre.0
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
Grove 🌳
Grove is a Hybrid Microservice framework for Deno and Oak.
Usage
main.ts
import { Context, JobContext, State } from "./context.ts";
import { initControllers } from "./controllers/mod.ts";
import { initServices } from "./services/mod.ts";
import { initRepositories } from "./repositories/mod.ts";
import { initManagers } from "./managers/mod.ts";
import { initJobs } from "./jobs/mod.ts";
import {
ConsoleLogger,
Grove,
JobMode,
WebMode,
} from "https://deno.land/x/grove/mod.ts";
async function initContext(): Promise<Context> {
const services = await initServices();
const repositories = await initRepositories(services);
const managers = await initManagers(repositories);
return {
log: new ConsoleLogger(),
services,
repositories,
managers,
};
}
const grove = new Grove({
initContext,
modes: [
new WebMode<Context, State>({ initControllers }),
new JobMode<JobContext>({ initJobs }),
],
});
await grove.start(Deno.args);
run in web mode
deno run -A main.ts web
run the hello job
deno run -A main.ts job hello --name Justin
Example
See the example application for more information.