1 | #!/usr/bin/env node
|
2 | var lambda = require('../')
|
3 | var lodash = require('lodash')
|
4 | var chalk = require('chalk')
|
5 | var exists = require('path-exists').sync
|
6 | var read = require('fs').readFileSync
|
7 | var join = require('path').join
|
8 |
|
9 | function fail(txt) {
|
10 | console.error(chalk.red(txt))
|
11 | }
|
12 | function info(txt) {
|
13 | console.log(chalk.dim.grey(txt))
|
14 | }
|
15 | function log(o) {
|
16 | console.log(chalk.green(JSON.stringify(o, null, 2)))
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | var name = process.argv[2]
|
23 | if (lodash.isUndefined(name)) {
|
24 | fail('Error: missing path to the lambda')
|
25 | process.exit(1)
|
26 | }
|
27 |
|
28 | var pkg = name + '/package.json'
|
29 | if (!exists(pkg)) {
|
30 | fail('Error: ' + pkg + ' does not exist')
|
31 | fail('\n')
|
32 | info('Create a lambda with lambda-create in an npm script.')
|
33 | fail('\n')
|
34 | process.exit(1)
|
35 | }
|
36 |
|
37 | var fn = require(join(process.cwd(), name))
|
38 | var missingHandler = lodash.isUndefined(fn.handler)
|
39 | if (missingHandler) {
|
40 | fail('Error: lambda module missing "handler" key')
|
41 | fail('\n')
|
42 | process.exit(1)
|
43 | }
|
44 |
|
45 | var payload = {}
|
46 | try {
|
47 | payload = JSON.parse(process.argv[3])
|
48 | }
|
49 | catch(e) {
|
50 |
|
51 | fail('Error: invalid JSON payload')
|
52 | info('Using {} for payload instead')
|
53 | }
|
54 |
|
55 | lambda.local(fn.handler, payload, function done(err, results) {
|
56 | if (err) {
|
57 | log(err)
|
58 | }
|
59 | else {
|
60 | log(results)
|
61 | }
|
62 | })
|