@@ -43,6 +43,7 @@ const FLAG = {
43
43
TARGET : 'target' ,
44
44
SIGNATURE_TYPE : 'signature-type' , // dash
45
45
SOURCE : 'source' ,
46
+ DRY_RUN : 'dry-run' ,
46
47
} ;
47
48
48
49
// Supported environment variables
@@ -51,14 +52,15 @@ const ENV = {
51
52
TARGET : 'FUNCTION_TARGET' ,
52
53
SIGNATURE_TYPE : 'FUNCTION_SIGNATURE_TYPE' , // underscore
53
54
SOURCE : 'FUNCTION_SOURCE' ,
55
+ DRY_RUN : 'DRY_RUN' ,
54
56
} ;
55
57
56
58
enum NodeEnv {
57
59
PRODUCTION = 'production' ,
58
60
}
59
61
60
62
const argv = minimist ( process . argv , {
61
- string : [ FLAG . PORT , FLAG . TARGET , FLAG . SIGNATURE_TYPE ] ,
63
+ string : [ FLAG . PORT , FLAG . TARGET , FLAG . SIGNATURE_TYPE , FLAG . DRY_RUN ] ,
62
64
} ) ;
63
65
64
66
const CODE_LOCATION = resolve (
@@ -77,6 +79,7 @@ if (SIGNATURE_TYPE === undefined) {
77
79
console . error ( `Function signature type must be one of 'http' or 'event'.` ) ;
78
80
process . exit ( 1 ) ;
79
81
}
82
+ const DRY_RUN = argv [ FLAG . DRY_RUN ] || process . env [ ENV . DRY_RUN ] || false ;
80
83
81
84
// CLI Help Flag
82
85
if ( process . argv [ 2 ] === '-h' || process . argv [ 2 ] === '--help' ) {
@@ -97,6 +100,14 @@ if (!USER_FUNCTION) {
97
100
98
101
const SERVER = getServer ( USER_FUNCTION ! , SIGNATURE_TYPE ! ) ;
99
102
const ERROR_HANDLER = new ErrorHandler ( SERVER ) ;
103
+
104
+ if ( DRY_RUN ) {
105
+ console . log ( `Function: ${ TARGET } ` ) ;
106
+ console . log ( `URL: http://localhost:${ PORT } /` ) ;
107
+ console . log ( 'Dry run successful, shutting down.' ) ;
108
+ process . exit ( 0 ) ;
109
+ }
110
+
100
111
SERVER . listen ( PORT , ( ) => {
101
112
ERROR_HANDLER . register ( ) ;
102
113
if ( process . env . NODE_ENV !== NodeEnv . PRODUCTION ) {
0 commit comments