UNPKG

outsystems-ui

Version:
57 lines (51 loc) 1.7 kB
// eslint-disable-next-line @typescript-eslint/no-unused-vars namespace OSFramework.OSUI.Patterns { /** * Represents the configurations for a provider. * Will have a method to get the configurations in the provider format. * * @export * @abstract * @class AbstractProviderConfiguration * @extends {AbstractConfiguration} */ export abstract class AbstractProviderConfiguration extends AbstractConfiguration { /** * Method to merge Common, Specific and External configs * * @protected * @param {ProviderConfigs} commonConfigs * @param {ProviderConfigs} specificConfigs * @param {ProviderConfigs} extendedConfigs * @return {*} {ProviderConfigs} * @memberof OSFramework.Patterns.AbstractProviderConfiguration */ protected mergeConfigs( commonConfigs: ProviderConfigs, specificConfigs: ProviderConfigs, extendedConfigs?: ProviderConfigs ): ProviderConfigs { // Set the Common Configs let _finalConfigs = commonConfigs; // If the SpecificConfigs exist! if (specificConfigs !== undefined) { _finalConfigs = { ..._finalConfigs, ...specificConfigs }; } //s If the extendedConfig exist! if (extendedConfigs !== undefined) { _finalConfigs = { ..._finalConfigs, ...extendedConfigs }; } // Clean undefined properties Object.keys(_finalConfigs).forEach( (key) => (_finalConfigs[key] === undefined || _finalConfigs[key] === null || (Array.isArray(_finalConfigs[key]) && _finalConfigs[key].length === 0)) && delete _finalConfigs[key] ); return _finalConfigs; } // Common method all providersConfigs must implement public abstract getProviderConfig(): ProviderConfigs; } }