blob: c6faf01fae305be5d188b05e66382952ba836325 [file] [log] [blame]
{"version":3,"file":"extender.js","sourceRoot":"","sources":["../../src/shared/extender.ts"],"names":[],"mappings":";;AAAA,+BAAiC;AAEjC,sCAAyC;AAOzC;IAAA;IA+BA,CAAC;IA7BiB,eAAM,GAApB,UAAqB,GAAW,EAAE,QAAa,EAAE,qBAA4C;QAEzF,IAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAe,CAAC;QAE5D,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC3B,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAsB,CAAC,CAAC;YACjE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC9C;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;aACrC;YACD,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC7B,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC5D,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aAC9C;YACD,OAAO;SACV;IACL,CAAC;IAEc,wBAAe,GAA9B,UAA+B,IAAc;QACzC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YACrB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAY;gBACzB,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;SACN;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IACL,eAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,4BAAQ","sourcesContent":["import * as lodash from \"lodash\";\n\nimport PathTool = require(\"./path-tool\");\n\nimport {\n Extendable,\n KarmaTypescriptConfig\n} from \"../api\";\n\nexport class Extender {\n\n public static extend(key: string, tsconfig: any, karmaTypescriptConfig: KarmaTypescriptConfig): void {\n\n const extendable = karmaTypescriptConfig[key] as Extendable;\n\n if (Array.isArray(extendable)) {\n const list = lodash.union(tsconfig[key], extendable as string[]);\n tsconfig[key] = this.fixWindowsPaths(list);\n }\n\n if (lodash.isObject(extendable)) {\n if (extendable.mode === \"replace\") {\n tsconfig[key] = extendable.values;\n }\n if (extendable.mode === \"merge\") {\n const list = lodash.union(tsconfig[key], extendable.values);\n tsconfig[key] = this.fixWindowsPaths(list);\n }\n return;\n }\n }\n\n private static fixWindowsPaths(list: string[]): string[] {\n if (list && list.length) {\n return list.map((item: string) => {\n return PathTool.fixWindowsPath(item);\n });\n }\n return [];\n }\n}\n"]}