diff --git a/.gitignore b/.gitignore index 12557da8..1b2b9fc2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +dist/ node_modules/ package-lock.json lerna-debug.log diff --git a/ask-sdk-core/tsconfig.json b/ask-sdk-core/tsconfig.json index 2b6f0aab..2da99820 100644 --- a/ask-sdk-core/tsconfig.json +++ b/ask-sdk-core/tsconfig.json @@ -6,11 +6,12 @@ "rootDir": "lib", "outDir" : "dist", "sourceMap" : true, - "inlineSources" : false, "alwaysStrict" : true, - "removeComments" : false, "declaration" : true, - "lib": ["es2017", "dom"] + "lib": [ + "es2017", + "dom" + ] }, "include": ["lib"] } diff --git a/ask-sdk-dynamodb-persistence-adapter/tsconfig.json b/ask-sdk-dynamodb-persistence-adapter/tsconfig.json index 2b6f0aab..2da99820 100644 --- a/ask-sdk-dynamodb-persistence-adapter/tsconfig.json +++ b/ask-sdk-dynamodb-persistence-adapter/tsconfig.json @@ -6,11 +6,12 @@ "rootDir": "lib", "outDir" : "dist", "sourceMap" : true, - "inlineSources" : false, "alwaysStrict" : true, - "removeComments" : false, "declaration" : true, - "lib": ["es2017", "dom"] + "lib": [ + "es2017", + "dom" + ] }, "include": ["lib"] } diff --git a/ask-sdk-v1adapter/lib/adapter.ts b/ask-sdk-v1adapter/lib/adapter.ts index b6e0d4ea..f5c84b8c 100644 --- a/ask-sdk-v1adapter/lib/adapter.ts +++ b/ask-sdk-v1adapter/lib/adapter.ts @@ -19,7 +19,11 @@ import { RequestHandler, SkillBuilders, } from 'ask-sdk'; -import { RequestEnvelope, Response, ResponseEnvelope } from 'ask-sdk-model'; +import { + RequestEnvelope, + Response, + ResponseEnvelope, +} from 'ask-sdk-model'; import { DynamoDB } from 'aws-sdk'; import { EventEmitter } from 'events'; import * as i18n from 'i18next'; @@ -50,6 +54,18 @@ export class Adapter extends EventEmitter { constructor(event : RequestEnvelope, context : any, callback? : (err : Error, result? : any) => void) { super(); + if (!event.session) { + event.session = { + new : undefined, + sessionId : undefined, + user : undefined, + application : undefined, + attributes : {}, + }; + } else if (!event.session.attributes) { + event.session.attributes = {}; + } + this._event = event; this._context = context; this._callback = callback; @@ -149,7 +165,7 @@ function ValidateRequest() : void { } } - if (this.dynamoDBTableName && (!this._event.session || this._event.session.new)) { + if (this.dynamoDBTableName && (!this._event.session.sessionId || this._event.session.new)) { if (!dynamoDbPersistenceAdapter) { dynamoDbPersistenceAdapter = new DynamoDbPersistenceAdapter({ createTable : true, diff --git a/ask-sdk-v1adapter/lib/responseHandlers.ts b/ask-sdk-v1adapter/lib/responseHandlers.ts index db5cd694..c53da9f4 100644 --- a/ask-sdk-v1adapter/lib/responseHandlers.ts +++ b/ask-sdk-v1adapter/lib/responseHandlers.ts @@ -15,7 +15,6 @@ import { DynamoDbPersistenceAdapter } from 'ask-sdk'; import { Intent } from 'ask-sdk-model'; -import { DynamoDB } from 'aws-sdk'; import { V1Handler } from './v1Handler'; let dynamoDbPersistenceAdapter : DynamoDbPersistenceAdapter; @@ -198,10 +197,7 @@ export const ResponseHandlers : V1Handler = { if (!dynamoDbPersistenceAdapter) { dynamoDbPersistenceAdapter = new DynamoDbPersistenceAdapter({ createTable : true, - dynamoDBClient : this.handler.dynamoDBClient ? this.handler.dynamoDBClient : new DynamoDB({ - apiVersion: '2012-08-10', - region: 'us-east-1', - }), + dynamoDBClient : this.handler.dynamoDBClient, partitionKeyName : 'userId', attributesName : 'mapAttr', tableName : this.handler.dynamoDBTableName, diff --git a/ask-sdk-v1adapter/tsconfig.json b/ask-sdk-v1adapter/tsconfig.json index 2b6f0aab..2da99820 100644 --- a/ask-sdk-v1adapter/tsconfig.json +++ b/ask-sdk-v1adapter/tsconfig.json @@ -6,11 +6,12 @@ "rootDir": "lib", "outDir" : "dist", "sourceMap" : true, - "inlineSources" : false, "alwaysStrict" : true, - "removeComments" : false, "declaration" : true, - "lib": ["es2017", "dom"] + "lib": [ + "es2017", + "dom" + ] }, "include": ["lib"] } diff --git a/ask-sdk-v1adapter/tst/adapter.spec.ts b/ask-sdk-v1adapter/tst/adapter.spec.ts index bf037fa2..23cfe082 100644 --- a/ask-sdk-v1adapter/tst/adapter.spec.ts +++ b/ask-sdk-v1adapter/tst/adapter.spec.ts @@ -13,11 +13,11 @@ 'use strict'; -import { RequestEnvelope, ResponseEnvelope, ui } from 'ask-sdk-model'; +import { ResponseEnvelope } from 'ask-sdk-model'; import { expect } from 'chai'; import * as sinon from 'sinon'; import { Adapter } from '../lib/adapter'; -import { LaunchRequest, RecipeIntentRequest } from './mock/mockSampleRequest'; +import { LaunchRequest, PlaybackControllerRequest } from './mock/mockSampleRequest'; import { mockV2Requesthandler } from './mock/mockV2RequestHandler'; const mockContext = { @@ -30,13 +30,25 @@ const mockContext = { }; /* tslint:disable */ describe('Adapter', () => { - it('should pass lambda inputs to adapter by handler function', () => { + it('should pass lambda inputs /to adapter by handler function', () => { const adapter = new Adapter(LaunchRequest, mockContext); expect(adapter._event).to.deep.equal(LaunchRequest); expect(adapter._context).to.deep.equal(mockContext); }); + it('should add missing session object', () => { + const adapter = new Adapter(PlaybackControllerRequest, mockContext); + + expect(adapter._event.session).to.deep.equal({ + application: undefined, + attributes: {}, + new: undefined, + sessionId: undefined, + user: undefined, + }) + }); + it('should be able to add V2 style request handlers', () => { const adapter = new Adapter(LaunchRequest, mockContext); diff --git a/ask-sdk/tsconfig.json b/ask-sdk/tsconfig.json index 2b6f0aab..2da99820 100644 --- a/ask-sdk/tsconfig.json +++ b/ask-sdk/tsconfig.json @@ -6,11 +6,12 @@ "rootDir": "lib", "outDir" : "dist", "sourceMap" : true, - "inlineSources" : false, "alwaysStrict" : true, - "removeComments" : false, "declaration" : true, - "lib": ["es2017", "dom"] + "lib": [ + "es2017", + "dom" + ] }, "include": ["lib"] } diff --git a/package.json b/package.json index 27676bdd..e6aca538 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,6 @@ "clean-all": "npm run clean-build && npm run clean-node_modules" }, "devDependencies": { - "lerna": "^2.10.2" + "lerna": "^2.11.0" } } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..b7d4286e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions" : { + "target" : "es5", + "module" : "commonjs", + "moduleResolution": "node", + "outDir" : "dist", + "sourceMap" : true, + "alwaysStrict" : true, + "declaration" : true, + "lib": [ + "es2017", + "dom" + ] + }, + "include" : [ + "ask-sdk/lib", + "ask-sdk-core/lib", + "ask-sdk-dynamodb-persistence-adapter/lib", + "ask-sdk-v1adapter/lib" + ], + "exclude" : [ + "node_modules" + ] +}