UNPKG

1.5 kBJavaScriptView Raw
1const assign = require('lodash/assign');
2const eachAsync = require('series-async-each');
3const sortBy = require('lodash/sortBy');
4const keys = require('lodash/keys');
5const instRegistry = require('./instRegistry');
6const rawInstsToExecutable = require('./rawInstsToExecutable');
7const { getExecutorOptions } = require('./executorOptions');
8const outputMessage = require('./executions/outputMessage');
9const executions = require('./executions');
10
11const executeAllInstructions = async () => {
12 const executable = rawInstsToExecutable(instRegistry.getAll());
13 const { files, dependencies, commands, directories } = executable;
14 await eachAsync(sortBy(keys(files)), async (filename) => {
15 await eachAsync(files[filename], async ({ name, params }) => {
16 const executionParams = assign(getExecutorOptions(), params);
17 const message = await executions[name](executionParams);
18 outputMessage(...message);
19 });
20 });
21 await eachAsync(sortBy(keys(directories)), async (directory) => {
22 const { name, params } = directories[directory];
23 await executions[name](assign(getExecutorOptions(), params));
24 });
25 await eachAsync(sortBy(keys(dependencies)), async (dependency) => {
26 const { name, params } = dependencies[dependency];
27 await executions[name](assign(getExecutorOptions(), params));
28 });
29 await eachAsync(commands, async ({ name, params }) => {
30 await executions[name](assign(getExecutorOptions(), params));
31 });
32};
33
34module.exports = executeAllInstructions;