diff --git a/app/scripts/modules/core/core.module.js b/app/scripts/modules/core/core.module.js index 4f593844f68..a8329202661 100644 --- a/app/scripts/modules/core/core.module.js +++ b/app/scripts/modules/core/core.module.js @@ -19,6 +19,7 @@ import {WEBHOOK_STAGE_MODULE} from './pipeline/config/stages/webhook/webhookStag import {UNMATCHED_STAGE_TYPE_STAGE} from './pipeline/config/stages/unmatchedStageTypeStage/unmatchedStageTypeStage'; import {SETTINGS} from 'core/config/settings'; import {INSIGHT_NGMODULE} from './insight/insight.module'; +import {REPLACE_FILTER} from './filter/replace.filter'; require('../../../fonts/spinnaker/icons.css'); @@ -133,6 +134,7 @@ module.exports = angular require('./pipeline/config/preconditions/types/clusterSize/clusterSize.precondition.type.module.js'), require('./pipeline/config/preconditions/types/expression/expression.precondition.type.module.js'), require('./presentation/presentation.module.js'), + REPLACE_FILTER, require('./search/search.module.js'), require('./securityGroup/securityGroup.module.js'), diff --git a/app/scripts/modules/core/filter/replace.filter.ts b/app/scripts/modules/core/filter/replace.filter.ts new file mode 100644 index 00000000000..263440e5fca --- /dev/null +++ b/app/scripts/modules/core/filter/replace.filter.ts @@ -0,0 +1,18 @@ +import {module, isDefined, ILogService} from 'angular'; + +function replace($log: ILogService): Function { + return (str: string, regExStr: string, replaceValue: string) => { + if (!isDefined(regExStr)) { + $log.debug(`Did not supply regex string for 'replace' filter.`); + return str; + } else if (!isDefined(replaceValue)) { + $log.debug(`Did not supply replacement value for 'replace' filter.`); + return str; + } else { + return str.replace(new RegExp(regExStr, 'g'), replaceValue); + } + }; +} + +export const REPLACE_FILTER = 'spinnaker.core.replace.filter'; +module(REPLACE_FILTER, []).filter('replace', replace);