propagateProp()

in packages/miew/src/Miew-cli.js [229:264]


  propagateProp(path, arg) {
    if (path !== undefined) {
      let argExc = {};
      const adapter = options.adapters[typeof _.get(settings.defaults, path)];
      if (adapter === undefined) {
        const pathExc = { message: `${path} is not existed` };
        throw pathExc;
      }

      if ((path.endsWith('.color') || path.endsWith('.baseColor')
        || path.endsWith('.EL.carbon')) && typeof arg !== 'number') {
        arg = palettes.get(settings.now.palette).getNamedColor(arg);
      }

      if (path.endsWith('.fg') || path.endsWith('.bg')) {
        if (typeof arg !== 'number') {
          const val = palettes.get(settings.now.palette).getNamedColor(arg, true);
          if (val !== undefined) {
            arg = `0x${val.toString(16)}`;
          }
        } else {
          arg = `0x${arg.toString(16)}`;
        }
      }

      if (path.endsWith('.template')) {
        arg = arg.replace(/\\n/g, '\n');// NOSONAR
      }

      if (arg !== undefined && adapter(arg) !== arg && adapter(arg) !== (arg > 0)) {
        argExc = { message: `${path} must be a "${typeof _.get(settings.defaults, path)}"` };
        throw argExc;
      }
    }
    return arg;
  }