UNPKG

7.13 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["var fs = require('fs')\nvar path = require('path')\nvar AWS = require('aws-sdk')\nvar temp = require('temp')\nvar _ = require('underscore')\nvar ini = require('ini')\nvar uuid = require('node-uuid')\nvar pify = require('pify')\nvar mkdirp = pify(require('mkdirp'))\n\nimport dedent from 'dedent'\nimport promisify from './utils/promisify'\n\nconst EventEmitter = require('events')\n\nexport default class Backbeam extends EventEmitter {\n\n constructor(dir) {\n super()\n this.setRegion(this.availableRegions()[0])\n this.setDirectory(dir)\n this.credentialsLoaded = false\n }\n\n _credentialsPath() {\n var home = require('os').homedir()\n return path.join(home, '.aws/credentials')\n }\n\n loadCredentials() {\n var profile = process.env.AWS_PROFILE || 'default'\n var file = this._credentialsPath()\n\n return promisify(fs, 'readFile', file, 'utf8')\n .then(data => {\n let credentials = ini.parse(data)[profile] || {}\n let accessKeyId = credentials.aws_access_key_id\n let secretAccessKey = credentials.aws_secret_access_key\n if (!accessKeyId || !secretAccessKey) {\n return Promise.reject(new Error('No credentials found in ~/.aws/credentials'))\n }\n AWS.config.update({ accessKeyId, secretAccessKey })\n this.credentialsLoaded = true\n this.emit('credentials_changed')\n })\n }\n\n saveCredentials(accessKeyId, secretAccessKey, profile='default') {\n var file = this._credentialsPath()\n AWS.config.update({ accessKeyId, secretAccessKey })\n\n return promisify(new AWS.APIGateway(), 'getRestApis', {}) // checks that the credentials work\n .then(() => mkdirp(path.dirname(file)))\n .then(() => {\n var data = ini.encode({\n [profile]: {\n aws_access_key_id: accessKeyId,\n aws_secret_access_key: secretAccessKey,\n }\n })\n return promisify(fs, 'writeFile', file, data)\n })\n .then(() => {\n this.credentialsLoaded = true\n this.emit('credentials_changed')\n })\n }\n\n _random() {\n return uuid.v4()\n }\n\n getDirectory() {\n return this._dir\n }\n\n setRegion(region) {\n AWS.config.update({ region })\n this._region = region\n }\n\n getRegion() {\n return this._region\n }\n\n _fullpath(filename) {\n return path.join(this._dir, filename)\n }\n\n _parseFile(filename) {\n var file = this._fullpath(filename)\n return promisify(fs, 'readFile', file)\n .then(data => JSON.parse(data))\n }\n\n _writeFile(filename, data, override=true) {\n var file = path.join(this._dir, filename)\n var data = typeof data !== 'string' ? JSON.stringify(data, null, 2) : data\n if (!override) {\n return new Promise((resolve) => fs.exists(file, resolve))\n .then((exists) => {\n if (exists) return\n return promisify(fs, 'writeFile', file, data)\n })\n }\n return promisify(fs, 'writeFile', file, data)\n }\n\n _deleteFile(filename) {\n var file = path.join(this._dir, filename)\n return promisify(fs, 'unlink', file)\n }\n\n setDirectory(dir) {\n this._dir = dir\n this.emit('directory_changed')\n }\n\n writeConfig(data) {\n return this._writeFile('backbeam.json', data)\n }\n\n readConfig() {\n return this._parseFile('backbeam.json')\n }\n\n // see http://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region\n // and http://docs.aws.amazon.com/general/latest/gr/rande.html#lambda_region\n availableRegions() {\n return ['us-east-1', 'us-west-2', 'eu-west-1', 'ap-northeast-1']\n }\n\n}\n\nrequire('./init')\nrequire('./api')\nrequire('./lambda')\nrequire('./iam')\nrequire('./dynamo')\nrequire('./server')\n"]}
\No newline at end of file