1- const { values } = require ( 'lodash' ) ;
1+
22const StreamRequest = require ( './stream/request' ) ;
33const StreamResponse = require ( './stream/response' ) ;
4-
4+ const { resolveWithRequire } = require ( "./utils" )
55class Serverless {
66 constructor ( { serverless } ) {
77 this . stream ( ) ;
88 const handler = this . handle ( )
9- Object . defineProperty ( this , "handler" , {
10- value : ( event , context ) => {
11- return handler ( event , context ) ;
9+ Object . defineProperties ( this , {
10+ handler : {
11+ value : ( event , context ) => handler ( event , context )
12+ } ,
13+ $serverless : {
14+ value : serverless
1215 }
13- } )
14- Object . defineProperty ( this , "$config" , {
15- value : serverless
16- } )
16+ } ) ;
17+ this . entry ( resolveWithRequire ( serverless . handler ) )
1718 }
1819
1920 stream ( request = StreamRequest , response = StreamResponse ) {
@@ -56,25 +57,24 @@ class Serverless {
5657 }
5758
5859 handle ( ) {
59- if ( ! this . $entryPath ) {
60- this . loadMainModule ( process . cwd ( ) + '/serverless.js' ) ;
61- }
6260 return ( event , context ) => {
6361 return new Promise ( ( resolve ) => {
64- const request = new this . $request ( new this . $streamRequest ( event , context , this . $config . platform , this . $config . getway ) ) ;
65- const response = new this . $response ( new this . $streamResponse ( resolve , this . $config . platform , this . $config . getway ) )
62+ const serverlessPlateform = this . $serverless . platform || "generic" ;
63+ const serverlessGetway = this . $serverless . getway ;
64+ const request = new this . $request ( new this . $streamRequest ( event , context , serverlessPlateform , serverlessGetway ) ) ;
65+ const response = new this . $response ( new this . $streamResponse ( resolve , serverlessPlateform , serverlessGetway ) )
6666 Object . defineProperty ( response , 'request' , { value : request } )
6767 this . $handler ( request , response , ( err ) => {
68- this . next ( err , resolve ) ;
68+ response . send ( err )
6969 } ) ;
7070 } ) ;
7171 } ;
7272 }
7373
7474 entry ( entryPath ) {
75- this . $entryPath = entryPath ;
7675 this . loadMainModule ( entryPath ) ;
7776 }
77+
7878 loadMainModule ( mainModulePath ) {
7979 const mainPath = path . resolve ( mainModulePath ) ;
8080 const mainModule = require ( mainPath ) ;
@@ -89,20 +89,6 @@ class Serverless {
8989
9090 return mainModule ;
9191 }
92-
93- next ( err , resolve ) {
94- if ( err ) {
95- resolve ( {
96- statusCode : 500 ,
97- body : JSON . stringify ( { message : 'Internal Server Error' } ) ,
98- } ) ;
99- } else {
100- resolve ( {
101- statusCode : 404 ,
102- body : JSON . stringify ( { message : 'Not Found' } ) ,
103- } ) ;
104- }
105- } ;
10692}
10793
10894module . exports = Serverless ;
0 commit comments