UNPKG

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