๐Ÿ“ฆ ionic-team / capacitor

๐Ÿ“„ config.ts ยท 29 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29import util from 'util';

import type { Config } from '../definitions';
import { output } from '../log';

export async function configCommand(config: Config, json: boolean): Promise<void> {
  const evaluatedConfig = await deepAwait(config);

  if (json) {
    process.stdout.write(`${JSON.stringify(evaluatedConfig)}\n`);
  } else {
    output.write(`${util.inspect(evaluatedConfig, { depth: Infinity, colors: true })}\n`);
  }
}

async function deepAwait(obj: any): Promise<any> {
  if (obj && !Array.isArray(obj) && typeof obj === 'object' && obj.constructor === Object) {
    const o: any = {};

    for (const [k, v] of Object.entries(obj)) {
      o[k] = await deepAwait(v);
    }

    return o;
  } else {
    return await obj;
  }
}