🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

serverless-dynamodb-local

Package Overview
Dependencies
Maintainers
4
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

serverless-dynamodb-local - npm Package Compare versions

Comparing version

to
0.2.38

0

CODE_OF_CONDUCT.md

@@ -0,0 +0,0 @@ # Contributor Covenant Code of Conduct

@@ -0,0 +0,0 @@ ## How to contribute to serverless-dynamodb-local

112

index.js

@@ -118,9 +118,2 @@ "use strict";

const stage = (this.options && this.options.stage) || (this.service.provider && this.service.provider.stage);
if (this.config.stages && !this.config.stages.includes(stage)) {
// don't do anything for this stage
this.hooks = {};
return;
}
this.hooks = {

@@ -149,2 +142,23 @@ "dynamodb:migrate:migrateHandler": this.migrateHandler.bind(this),

/**
* Get the stage
*
* @return {String} the current stage
*/
get stage() {
return (this.options && this.options.stage) || (this.service.provider && this.service.provider.stage);
}
/**
* To check if the handler needs to be executed based on stage
*
* @return {Boolean} if the handler can run for the provided stage
*/
shouldExecute() {
if (this.config.stages && this.config.stages.includes(this.stage)) {
return true;
}
return false;
}
dynamodbOptions(options) {

@@ -179,21 +193,29 @@ let dynamoOptions = {};

migrateHandler() {
const dynamodb = this.dynamodbOptions();
const tables = this.tables;
return BbPromise.each(tables, (table) => this.createTable(dynamodb, table));
if (this.shouldExecute()) {
const dynamodb = this.dynamodbOptions();
const tables = this.tables;
return BbPromise.each(tables, (table) => this.createTable(dynamodb, table));
} else {
this.serverlessLog("Skipping migration: DynamoDB Local is not available for stage: " + this.stage);
}
}
seedHandler() {
const options = this.options;
const dynamodb = this.dynamodbOptions(options);
if (this.shouldExecute()) {
const options = this.options;
const dynamodb = this.dynamodbOptions(options);
return BbPromise.each(this.seedSources, (source) => {
if (!source.table) {
throw new Error("seeding source \"table\" property not defined");
}
const seedPromise = seeder.locateSeeds(source.sources || [])
.then((seeds) => seeder.writeSeeds(dynamodb.doc.batchWrite.bind(dynamodb.doc), source.table, seeds));
const rawSeedPromise = seeder.locateSeeds(source.rawsources || [])
.then((seeds) => seeder.writeSeeds(dynamodb.raw.batchWriteItem.bind(dynamodb.raw), source.table, seeds));
return BbPromise.all([seedPromise, rawSeedPromise]);
});
return BbPromise.each(this.seedSources, (source) => {
if (!source.table) {
throw new Error("seeding source \"table\" property not defined");
}
const seedPromise = seeder.locateSeeds(source.sources || [])
.then((seeds) => seeder.writeSeeds(dynamodb.doc.batchWrite.bind(dynamodb.doc), source.table, seeds));
const rawSeedPromise = seeder.locateSeeds(source.rawsources || [])
.then((seeds) => seeder.writeSeeds(dynamodb.raw.batchWriteItem.bind(dynamodb.raw), source.table, seeds));
return BbPromise.all([seedPromise, rawSeedPromise]);
});
} else {
this.serverlessLog("Skipping seeding: DynamoDB Local is not available for stage: " + this.stage);
}
}

@@ -211,31 +233,37 @@

startHandler() {
const config = this.service.custom && this.service.custom.dynamodb || {};
const options = _.merge({
sharedDb: this.options.sharedDb || true,
install_path: this.options.localPath
},
config && config.start,
this.options
);
if (this.shouldExecute()) {
const config = this.service.custom && this.service.custom.dynamodb || {};
const options = _.merge({
sharedDb: this.options.sharedDb || true,
install_path: this.options.localPath
},
config && config.start,
this.options
);
// otherwise endHandler will be mis-informed
this.options = options;
// otherwise endHandler will be mis-informed
this.options = options;
let dbPath = options.dbPath;
if (dbPath) {
options.dbPath = path.isAbsolute(dbPath) ? dbPath : path.join(this.serverless.config.servicePath, dbPath);
}
let dbPath = options.dbPath;
if (dbPath) {
options.dbPath = path.isAbsolute(dbPath) ? dbPath : path.join(this.serverless.config.servicePath, dbPath);
}
if (!options.noStart) {
dynamodbLocal.start(options);
if (!options.noStart) {
dynamodbLocal.start(options);
}
return BbPromise.resolve()
.then(() => options.migrate && this.migrateHandler())
.then(() => options.seed && this.seedHandler());
} else {
this.serverlessLog("Skipping start: DynamoDB Local is not available for stage: " + this.stage);
}
return BbPromise.resolve()
.then(() => options.migrate && this.migrateHandler())
.then(() => options.seed && this.seedHandler());
}
endHandler() {
if (!this.options.noStart) {
if (this.shouldExecute() && !this.options.noStart) {
this.serverlessLog("DynamoDB - stopping local database");
dynamodbLocal.stop(this.port);
} else {
this.serverlessLog("Skipping end: DynamoDB Local is not available for stage: " + this.stage);
}

@@ -242,0 +270,0 @@ }

{
"name": "serverless-dynamodb-local",
"version": "0.2.37",
"version": "0.2.38",
"engines": {

@@ -5,0 +5,0 @@ "node": ">=4.0"

@@ -123,19 +123,20 @@ serverless-dynamodb-local

```yml
dynamodb:
start:
seed: true
custom:
dynamodb:
start:
seed: true
seed:
domain:
sources:
- table: domain-widgets
sources: [./domainWidgets.json]
- table: domain-fidgets
sources: [./domainFidgets.json]
test:
sources:
- table: users
rawsources: [./fake-test-users.json]
- table: subscriptions
sources: [./fake-test-subscriptions.json]
seed:
domain:
sources:
- table: domain-widgets
sources: [./domainWidgets.json]
- table: domain-fidgets
sources: [./domainFidgets.json]
test:
sources:
- table: users
rawsources: [./fake-test-users.json]
- table: subscriptions
sources: [./fake-test-subscriptions.json]
```

@@ -142,0 +143,0 @@

@@ -0,0 +0,0 @@ "use strict";

@@ -0,0 +0,0 @@ module.exports = {

@@ -0,0 +0,0 @@ "use strict";

@@ -0,0 +0,0 @@ "use strict";

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet