UNPKG

1.28 kBJavaScriptView Raw
1export function promise(callback) {
2 return new Promise((resolve, reject) => {
3 callback((err, data) => {
4 if (err) {
5 reject(err);
6 }
7 else {
8 resolve(data);
9 }
10 });
11 });
12}
13
14export function streamEnd(input, output) {
15 return new Promise((resolve, reject) => {
16 input.on("error", reject);
17 output.on("error", reject);
18 output.on("close", resolve);
19 });
20}
21
22export function arrayToObject(arr) {
23 const result = { };
24 for (let i = 0, l = arr.length; i < l; i += 2) {
25 result[arr[i]] = arr[i + 1];
26 }
27 return result;
28}
29
30export function envify(value) {
31 if (typeof value !== "string") {
32 throw new Error("Not a string, but " + typeof value);
33 }
34
35 const complex = value.match(/(\$\{[a-zA-Z_]+[0-9a-zA-Z_]*\})/g);
36 for (const match of complex || []) {
37 const env = match.slice(2, -1);
38 if (process.env.hasOwnProperty(env) === false) {
39 throw new Error(`Missing environment variable ${env}`);
40 }
41 value.split(match).join(process.env[env]);
42 }
43
44 const simple = value.match(/(\$[a-zA-Z_]+[0-9a-zA-Z_]*)/g);
45 for (const match of simple || []) {
46 const env = match.slice(1);
47 if (process.env.hasOwnProperty(env) === false) {
48 throw new Error(`Missing environment variable ${env}`);
49 }
50 value = value.split(match).join(process.env[env]);
51 }
52
53 return value;
54}