backend-app-api: copy over regex util from backend-common
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright 2021 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { escapeRegExp } from './escapeRegExp';
|
||||
|
||||
describe('escapeRegExp', () => {
|
||||
test('does not escape non-regex characters', () => {
|
||||
expect(escapeRegExp('Backstage Backstage')).toBe('Backstage Backstage');
|
||||
});
|
||||
|
||||
test('all the characters', () => {
|
||||
expect(escapeRegExp('^$\\.*+?()[]{}|')).toBe(
|
||||
'\\^\\$\\\\\\.\\*\\+\\?\\(\\)\\[\\]\\{\\}\\|',
|
||||
);
|
||||
});
|
||||
|
||||
test('character: ^', () => {
|
||||
expect(escapeRegExp('^')).toBe('\\^');
|
||||
});
|
||||
|
||||
test('character: $', () => {
|
||||
expect(escapeRegExp('$')).toBe('\\$');
|
||||
});
|
||||
|
||||
test('character: \\', () => {
|
||||
expect(escapeRegExp('\\')).toBe('\\\\');
|
||||
});
|
||||
|
||||
test('character: .', () => {
|
||||
expect(escapeRegExp('.')).toBe('\\.');
|
||||
});
|
||||
|
||||
test('character: *', () => {
|
||||
expect(escapeRegExp('*')).toBe('\\*');
|
||||
});
|
||||
|
||||
test('character: +', () => {
|
||||
expect(escapeRegExp('+')).toBe('\\+');
|
||||
});
|
||||
|
||||
test('character: ?', () => {
|
||||
expect(escapeRegExp('?')).toBe('\\?');
|
||||
});
|
||||
|
||||
test('character: (', () => {
|
||||
expect(escapeRegExp('(')).toBe('\\(');
|
||||
});
|
||||
|
||||
test('character: )', () => {
|
||||
expect(escapeRegExp(')')).toBe('\\)');
|
||||
});
|
||||
|
||||
test('character: [', () => {
|
||||
expect(escapeRegExp('[')).toBe('\\[');
|
||||
});
|
||||
|
||||
test('character: ]', () => {
|
||||
expect(escapeRegExp(']')).toBe('\\]');
|
||||
});
|
||||
|
||||
test('character: {', () => {
|
||||
expect(escapeRegExp('{')).toBe('\\{');
|
||||
});
|
||||
|
||||
test('character: }', () => {
|
||||
expect(escapeRegExp('}')).toBe('\\}');
|
||||
});
|
||||
|
||||
test('character: |', () => {
|
||||
expect(escapeRegExp('|')).toBe('\\|');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright 2021 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Escapes a given string to be used inside a RegExp.
|
||||
*
|
||||
* Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
|
||||
*/
|
||||
export const escapeRegExp = (text: string) => {
|
||||
return text.replace(/[.*+?^${}(\)|[\]\\]/g, '\\$&');
|
||||
};
|
||||
@@ -18,7 +18,7 @@ import { merge } from 'lodash';
|
||||
import * as winston from 'winston';
|
||||
import { LoggerOptions } from 'winston';
|
||||
import { coloredFormat } from './formats';
|
||||
import { escapeRegExp } from '../util/escapeRegExp';
|
||||
import { escapeRegExp } from '../lib/escapeRegExp';
|
||||
|
||||
let rootLogger: winston.Logger;
|
||||
let redactionRegExp: RegExp | undefined;
|
||||
|
||||
Reference in New Issue
Block a user