UNPKG

1.48 kBJavaScriptView Raw
1#!/usr/bin/env node
2var write = require('fs').writeFileSync
3var mkdirp = require('mkdirp').sync
4var name = process.argv[2]
5var exists = require('path-exists').sync
6var last = require('lodash').last
7
8if (typeof name === 'undefined') {
9 console.error('Error: name required')
10 process.exit(1)
11}
12
13if (exists(name)) {
14 console.error('Error: name exists')
15 process.exit(1)
16}
17
18var package = {
19 json: {
20 "name": last(name.split('/')),
21 "version": "1.0.0",
22 "main": "index",
23 "lambda": {
24 "role": "lambda_basic_execution"
25 },
26 "scripts": {
27 "test": "node test | tap-spec"
28 },
29 "dependencies": {
30 "@smallwins/lambda": ">4.0.0",
31 "@smallwins/validate": ">3.0.0"
32 },
33 "devDependencies": {
34 "tap-spec": "^4.1.1",
35 "tape": "^4.5.1"
36 }
37 }
38}
39
40var index = {
41 js: `var validate = require('@smallwins/validate')
42var lambda = require('@smallwins/lambda')
43
44function valid(event, callback) {
45 var schema = {}
46 validate(event, schema, callback)
47}
48
49function fn(event, callback) {
50 // callback(Error('name failed'))
51 callback(null, {ok:true})
52}
53
54exports.handler = lambda(valid, fn)
55 `
56}
57
58var test = {
59 js: `
60var test = require('tape')
61var fn = require('./').handler
62
63test('sanity', t=> {
64 t.plan(1)
65 t.ok(fn, 'lambda function exists')
66})
67 `
68}
69
70// create the lambda
71mkdirp(name)
72write(`${name}/package.json`, JSON.stringify(package.json, null, 2))
73write(`${name}/index.js`, index.js)
74write(`${name}/test.js`, test.js)