Skip to content

Commit

Permalink
refactor(lambda): move reusable functions from handler to helper file
Browse files Browse the repository at this point in the history
  • Loading branch information
bernardobridge committed Apr 25, 2024
1 parent c894486 commit 2b39f09
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 40 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
const { spawn } = require('node:child_process');

const sleep = async function (n) {
return new Promise((resolve, _reject) => {
setTimeout(function () {
resolve();
}, n);
});
};

async function runProcess(name, args, { env, log } = opts) {
return new Promise((resolve, reject) => {
const proc = spawn(name, args, { env });
let stdout = '';
let stderr = '';

proc.stdout.on('data', (data) => {
if (log) {
console.log(data.toString());
}
stdout += data.toString();
});

proc.stderr.on('data', (data) => {
if (log) {
console.error(data.toString());
}

stderr += data.toString();
});

proc.once('close', (code) => {
resolve({ stdout, stderr, code });
});

proc.on('error', (err) => {
resolve({ stdout, stderr, err });
});
});
}

module.exports = {
runProcess,
sleep
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

const AWS = require('aws-sdk');
const { spawn } = require('node:child_process');
const { randomUUID } = require('node:crypto');
const { runProcess, sleep } = require('./helpers');

const TIMEOUT_THRESHOLD_MSEC = 20 * 1000;

Expand Down Expand Up @@ -167,43 +167,4 @@ async function execArtillery(options) {
);
}

const sleep = async function (n) {
return new Promise((resolve, _reject) => {
setTimeout(function () {
resolve();
}, n);
});
};

async function runProcess(name, args, { env, log } = opts) {
return new Promise((resolve, reject) => {
const proc = spawn(name, args, { env });
let stdout = '';
let stderr = '';

proc.stdout.on('data', (data) => {
if (log) {
console.log(data.toString());
}
stdout += data.toString();
});

proc.stderr.on('data', (data) => {
if (log) {
console.error(data.toString());
}

stderr += data.toString();
});

proc.once('close', (code) => {
resolve({ stdout, stderr, code });
});

proc.on('error', (err) => {
resolve({ stdout, stderr, err });
});
});
}

module.exports = { handler, runProcess, execArtillery };

0 comments on commit 2b39f09

Please sign in to comment.