Skip to content

Instantly share code, notes, and snippets.

@numtel
Created September 2, 2016 04:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save numtel/b4a56415510e49f46d79227aad991bb6 to your computer and use it in GitHub Desktop.
Save numtel/b4a56415510e49f46d79227aad991bb6 to your computer and use it in GitHub Desktop.
AWS Lambda example to fetch an NPM package inline, works only if the package has no dependencies
'use strict';
const asyncProgressPromise = fetchNPM('progress-promise', '0.0.5');
exports.handler = (event, context, callback) => {
asyncProgressPromise
.then(ProgressPromise => {
console.log(ProgressPromise);
callback();
})
.catch(callback)
};
function fetchNPM(packageName, version) {
return new Promise((resolve, reject) => {
require('child_process').exec(
`mkdir -p /tmp/${packageName} && ` +
`curl https://registry.npmjs.org/${packageName}/-/${packageName}-${version}.tgz | ` +
`tar -C /tmp/${packageName} -zxvf -`,
error => {
if(error) reject(error);
else resolve(require(`/tmp/${packageName}/package`));
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment