UNPKG

5.52 kBJavaScriptView Raw
1var AWS = require('aws-sdk');
2
3AWS.config.update({
4 region: 'us-east-1'
5});
6
7AWS.config.credentials = new AWS.SharedIniFileCredentials({
8 profile: 'default'
9});
10
11var Hapi = require('hapi'),
12 server = new Hapi.Server(),
13 lm = require('live-modules').createLiveModules(require);
14
15server.connection({
16 host: 'localhost',
17 port: 8000,
18 routes: { cors: true }
19});
20
21(function () {
22 var endpoint;
23
24 lm.require('./hello/world', 'hello', function (err, vrr, mod, status) {
25 console.log('LiveModule', status, vrr);
26
27 if (err) {
28 console.log(err);
29 } else {
30 endpoint = global.hello;
31 }
32 });
33
34 server.route({
35 method: 'GET',
36 path: '/hello',
37 handler: function (request, reply) {
38 var context = {
39 done: function(err, data) {
40 if (err) data = { error: err.message };
41 reply(null, data);
42 },
43 succeed: function(data) {
44 reply(null, data);
45 },
46 fail: function(err) {
47 reply(null, { error: err.message });
48 }
49 },
50 event = 'GET' === 'GET' ? request.query : request.payload,
51 key;
52
53 for (key in request.headers) {
54 event[key] = request.headers[key];
55 }
56
57 for (key in request.params) {
58 event[key] = request.params[key];
59 }
60
61 endpoint.handler(event, context);
62 }
63 });
64}());
65(function () {
66 var endpoint;
67
68 lm.require('./hello/world', 'helloWorld', function (err, vrr, mod, status) {
69 console.log('LiveModule', status, vrr);
70
71 if (err) {
72 console.log(err);
73 } else {
74 endpoint = global.helloWorld;
75 }
76 });
77
78 server.route({
79 method: 'POST',
80 path: '/hello/world',
81 handler: function (request, reply) {
82 var context = {
83 done: function(err, data) {
84 if (err) data = { error: err.message };
85 reply(null, data);
86 },
87 succeed: function(data) {
88 reply(null, data);
89 },
90 fail: function(err) {
91 reply(null, { error: err.message });
92 }
93 },
94 event = 'POST' === 'GET' ? request.query : request.payload,
95 key;
96
97 for (key in request.headers) {
98 event[key] = request.headers[key];
99 }
100
101 for (key in request.params) {
102 event[key] = request.params[key];
103 }
104
105 endpoint.handler(event, context);
106 }
107 });
108}());
109(function () {
110 var endpoint;
111
112 lm.require('./hello/there', 'helloThere', function (err, vrr, mod, status) {
113 console.log('LiveModule', status, vrr);
114
115 if (err) {
116 console.log(err);
117 } else {
118 endpoint = global.helloThere;
119 }
120 });
121
122 server.route({
123 method: 'DELETE',
124 path: '/hello/there',
125 handler: function (request, reply) {
126 var context = {
127 done: function(err, data) {
128 if (err) data = { error: err.message };
129 reply(null, data);
130 },
131 succeed: function(data) {
132 reply(null, data);
133 },
134 fail: function(err) {
135 reply(null, { error: err.message });
136 }
137 },
138 event = 'DELETE' === 'GET' ? request.query : request.payload,
139 key;
140
141 for (key in request.headers) {
142 event[key] = request.headers[key];
143 }
144
145 for (key in request.params) {
146 event[key] = request.params[key];
147 }
148
149 endpoint.handler(event, context);
150 }
151 });
152}());
153(function () {
154 var endpoint;
155
156 lm.require('./hello/there', 'helloThere', function (err, vrr, mod, status) {
157 console.log('LiveModule', status, vrr);
158
159 if (err) {
160 console.log(err);
161 } else {
162 endpoint = global.helloThere;
163 }
164 });
165
166 server.route({
167 method: 'PATCH',
168 path: '/hello/there',
169 handler: function (request, reply) {
170 var context = {
171 done: function(err, data) {
172 if (err) data = { error: err.message };
173 reply(null, data);
174 },
175 succeed: function(data) {
176 reply(null, data);
177 },
178 fail: function(err) {
179 reply(null, { error: err.message });
180 }
181 },
182 event = 'PATCH' === 'GET' ? request.query : request.payload,
183 key;
184
185 for (key in request.headers) {
186 event[key] = request.headers[key];
187 }
188
189 for (key in request.params) {
190 event[key] = request.params[key];
191 }
192
193 endpoint.handler(event, context);
194 }
195 });
196}());
197
198server.start(function (err) {
199 if (err) {
200 throw err;
201 }
202
203 console.log('Server running at:', server.info.uri);
204});