arraysToMaps()

in functions/src/project.ts [459:493]


  arraysToMaps(obj: any, lowercase: string[] = []) {
    const newobj: any = {};

    Object.keys(obj).forEach(key => {
      const arr = obj[key];

      // Only sanitize if it's a non-empty
      // array of strings.
      if (
        arr &&
        arr.constructor === Array &&
        arr.length > 0 &&
        arr[0].constructor === String
      ) {
        const map: any = {};
        arr.forEach((item: any) => {
          // If requested, lowercase the item
          let itemKey;
          if (lowercase.indexOf(key) >= 0) {
            itemKey = item.toLowerCase();
          } else {
            itemKey = item;
          }

          map[itemKey] = true;
        });

        newobj[key] = map;
      } else {
        newobj[key] = obj[key];
      }
    });

    return newobj;
  }