Non-Permeable Membrane

    TypeScript icon, indicating that this package has built-in type declarations

    1.0.2 • Public • Published

    Nest Cloud Datastore

    Cloud Datastore module for Nestjs

    Getting started

    yarn add @gojob/nest-cloud-datastore
    # or
    npm install @gojob/nest-cloud-datastore


    Importing the module

    If you use the default configuration of GCP client libraries, just import the module CloudDatastoreModule as-is.

    Otherwise, the configuration passed to the constructor of Datastore can be customized in two ways:

    • With the static method forRoot:
    import { CloudDatastoreModule, DatastoreModuleAsyncOptions } from '@gojob/nest-cloud-datastore';
    const datastoreModule = CloudDatastoreModule.forRoot({ keyFile: configService.get('GCP_KEY_FILE_DATASTORE') });
    export default datastoreModule;
    • With the static method forRootAsync, for configuration object built dynamically:
    import { CloudDatastoreModule, DatastoreModuleAsyncOptions } from '@gojob/nest-cloud-datastore';
    import { ConfigModule } from '../config/config.module';
    import { ConfigService } from '../config/config.service';
    const moduleConfig: DatastoreModuleAsyncOptions = {
      imports: [ConfigModule],
      inject: [ConfigService],
      useFactory: (configService: ConfigService) => ({ keyFile: configService.get('GCP_KEY_FILE_DATASTORE') }),
    const datastoreModule = CloudDatastoreModule.forRootAsync(moduleConfig);
    export default datastoreModule;

    Injecting the service

    Once the module imported, CloudDatastoreService is made available in the injection scope. Have a look at src/cloud-datastore.integration-test.ts to see the methods available.


    Thanks to the Docker image google/cloud-sdk including an emulator, testing the integration of your features with Cloud Datastore is pretty straightforward. Download docker-compose.yml from this git repository, then:

    docker-compose up -d # run the emulator
    curl localhost:8081 # ensure the emulator is available
    # run your tests, with the following environment variables:
    # DATASTORE_EMULATOR_HOST=localhost:8081
    # DATASTORE_PROJECT_ID=datastore-testing

    A helper class DatastoreEmulator is provided in this package, in order to easily:

    • Remove the data stored by the emulator (reset)
    • Remove the Datastore-specific property of an entity instantiated by the client library (removeDatastoreKeyProp)
    • Create entities (createEntity, createEntities)
    • Fetch all entities stored by the emulator (getAll)

    Examples of tests are available src/cloud-datastore.integration-test.ts.


    yarn install


    yarn build

    Run tests

    docker-compose up -d # start the Cloud Datastore emulator
    yarn integration
    docker-compose down




    npm i @gojob/nest-cloud-datastore

    DownloadsWeekly Downloads






    Unpacked Size

    44.5 kB

    Total Files


    Last publish


    • martin.lehoux
    • jfumardgojob
    • ericchaps
    • fcarlue
    • alexian-serrano
    • remi-bruguier
    • davidolivier1337
    • miramo
    • typedef