UNPKG

3.04 kBSource Map (JSON)View Raw
1{"version":3,"file":"mergeSettings.js","sourceRoot":"../src/","sources":["customizations/mergeSettings.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,WAA2B,EAAE,WAA2C;IAAxE,4BAAA,EAAA,gBAA2B;IACvD,IAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE3G,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,WAA2B,EAC3B,WAA2C;IAD3C,4BAAA,EAAA,gBAA2B;IAG3B,IAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAEjH,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAwC;IACnE,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAoB;IAC9C,OAAO,UAAC,QAAmB,IAAK,OAAA,CAAC,WAAW,CAAC,CAAC,uBAAM,QAAQ,GAAK,WAAW,EAAG,CAAC,CAAC,QAAQ,CAAC,EAA1D,CAA0D,CAAC;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,uBAAuC;IAAvC,wCAAA,EAAA,4BAAuC;IACvE,OAAO,UAAC,iBAA4B;QAClC,IAAM,iBAAiB,gBAAmB,iBAAiB,CAAE,CAAC;QAE9D,KAAK,IAAI,SAAS,IAAI,uBAAuB,EAAE;YAC7C,IAAI,uBAAuB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBACrD,iBAAiB,CAAC,SAAS,CAAC,yBAAQ,iBAAiB,CAAC,SAAS,CAAC,GAAK,uBAAuB,CAAC,SAAS,CAAC,CAAE,CAAC;aAC3G;SACF;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ISettings, ISettingsFunction } from './Customizations';\n\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings: ISettings = {}, newSettings?: ISettings | ISettingsFunction): ISettings {\n const mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n\n return mergeSettingsWith(oldSettings);\n}\n\nexport function mergeScopedSettings(\n oldSettings: ISettings = {},\n newSettings?: ISettings | ISettingsFunction,\n): ISettings {\n const mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n\n return mergeSettingsWith(oldSettings);\n}\n\nfunction _isSettingsFunction(settings?: ISettings | ISettingsFunction): settings is ISettingsFunction {\n return typeof settings === 'function';\n}\n\nfunction _settingsMergeWith(newSettings?: object): (settings: ISettings) => ISettings {\n return (settings: ISettings) => (newSettings ? { ...settings, ...newSettings } : settings);\n}\n\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps: ISettings = {}): (scopedSettings: ISettings) => ISettings {\n return (oldScopedSettings: ISettings): ISettings => {\n const newScopedSettings: ISettings = { ...oldScopedSettings };\n\n for (let scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = { ...oldScopedSettings[scopeName], ...scopedSettingsFromProps[scopeName] };\n }\n }\n\n return newScopedSettings;\n };\n}\n"]}
\No newline at end of file