@gapi/daemon v1.8.151
Daemon
Helps with productivity
Automatically apply schema introspection changes from graphql API to specific folders
The schema is introspected only when the API is successfully started
When API changes his
schemathe client should know about itWhen You have multiple clients (mobile, desktop, web) you want to sync them according to your API Graphql Schema
To use daemon you need to activate it inside your @gapi/core => CoreModule configuration
const DEFAULT_CONFIG = {
server: {},
graphql: {},
daemon: { activated: true }
};import { BootstrapFramework } from '@rxdi/core';
import { AppModule } from './app/app.module';
import { CoreModule, Module } from '@gapi/core';
@Module({
imports: [
CoreModule.forRoot({
server: {},
pubsub: {},
graphql: {},
daemon: { activated: true }
}),
]
})
export class FrameworkImports {}
BootstrapFramework(AppModule, [FrameworkImports]).subscribe()Starting daemon
gapi daemon startStopping daemon
gapi daemon stopCleaning daemon cache folder ~/.gapi/daemon
gapi daemon cleanLink project
gapi daemon link your-link-nameUnlink project
gapi daemon unlinkUnlink all projects
gapi daemon unlink --allFlow
- Start the API
- Execute
gapi daemon link your-link-name - Go to client project folder
- Execute
gapi daemon link your-link-name - Made change to the graphql schema on the API
- You will see that client introspection changed also without writing single line of code
If you wish to link more than one project just execute command inside other folder
gapi daemon link your-link-nameIMPORTANT
gapi-cli.conf.yml will be created if not present since daemon will trigger command using configuration from it.
gapi schema introspect --collect-documents --collect-typesRead more about schema introspect
config:
schema:
introspectionEndpoint: http://localhost:9000/graphql
introspectionOutputFolder: ./src/server/api-introspectionReplace with the desired configuration
Custom plugins
Gapi daemon has capability to load external plugins via IPFS network or using regular @gapi module example module can be found HERE
A simple plugin looks like regular @rxdi/@gapi module basically every module inside this architecture can be used as a daemon plugin.
import { Module } from '@gapi/core';
import { MainService } from './services/main.service';
import { CustomControllerController } from './custom-controller/custom-controller.controller';
@Module({
providers: [MainService],
controllers: [CustomControllerController]
})
export class AppModule {}You can add also plugins via IPFS https://ipfs.io/ipfs/QmY74wyqeeHYVtEkChvbQypxeZd43rk77hY8yfaU16fZQ4 this is @rxdi/deploy plugin module can be found here https://ipfs.io/ipfs/QmYtvfC5cXutnH6y7nK8eGnPcAkU75DpngR3vGDk9A9KQt
gapi plugin add QmY74wyqeeHYVtEkChvbQypxeZd43rk77hY8yfaU16fZQ4Remove
gapi plugin remove QmY74wyqeeHYVtEkChvbQypxeZd43rk77hY8yfaU16fZQ41 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago