Socket
Socket
Sign inDemoInstall

@gojob/nest-cloud-datastore

Package Overview
Dependencies
152
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @gojob/nest-cloud-datastore

Cloud Datastore module for Nestjs


Version published
Weekly downloads
4
increased by33.33%
Maintainers
4
Install size
28.4 MB
Created
Weekly downloads
 

Readme

Source

Nest Cloud Datastore

Cloud Datastore module for Nestjs

Getting started

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

Implementing

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.

Testing

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.

Contributing

yarn install

Build

yarn build

Run tests

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

FAQs

Last updated on 24 May 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc