diff options
author | Kirill Rogovoy <[email protected]> | 2021-07-20 21:24:52 +0300 |
---|---|---|
committer | Kirill Rogovoy <[email protected]> | 2021-07-20 21:24:52 +0300 |
commit | 5f4611d65e40eae3ca6191a15f68d69ea5a1c4cb (patch) | |
tree | 273dfc086444533d86d580961c92ba8d14781a67 /app_expo/models/environment.ts | |
parent | f0bf4e7afdcd8b02a62be45ab3e7d047ed865a79 (diff) |
WIP
Diffstat (limited to 'app_expo/models/environment.ts')
-rw-r--r-- | app_expo/models/environment.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/app_expo/models/environment.ts b/app_expo/models/environment.ts new file mode 100644 index 0000000..a29586b --- /dev/null +++ b/app_expo/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 +} |