diff options
author | Thomas F. K. Jorna <[email protected]> | 2021-07-14 15:10:31 +0200 |
---|---|---|
committer | Thomas F. K. Jorna <[email protected]> | 2021-07-14 15:10:31 +0200 |
commit | e5021187e96b78b53203bd95d08d6818aea47d17 (patch) | |
tree | 37ec45d00eb963db53cd4bb4f04a770414b351cc /app/models/environment.ts |
New Ignite 7.0.6 app
Diffstat (limited to 'app/models/environment.ts')
-rw-r--r-- | app/models/environment.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/app/models/environment.ts b/app/models/environment.ts new file mode 100644 index 0000000..e8569b1 --- /dev/null +++ b/app/models/environment.ts @@ -0,0 +1,40 @@ +import { Api } from "../services/api" + +let ReactotronDev +if (__DEV__) { + const { Reactotron } = require("../services/reactotron") + ReactotronDev = Reactotron +} + +/** + * The environment is a place where services and shared dependencies between + * models live. They are made available to every model via dependency injection. + */ +export class Environment { + constructor() { + // create each service + if (__DEV__) { + // dev-only services + this.reactotron = new ReactotronDev() + } + this.api = new Api() + } + + async setup() { + // allow each service to setup + if (__DEV__) { + await this.reactotron.setup() + } + await this.api.setup() + } + + /** + * Reactotron is only available in dev. + */ + reactotron: typeof ReactotronDev + + /** + * Our api. + */ + api: Api +} |