• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16function parseDumpSrc(str: string): string {
17    let _str: string = str;
18    _str = cleanCopyRight(_str);
19    _str = removeSpaceAndReturn(_str);
20    _str = replaceWithRandomNumber(_str);
21
22    return _str;
23}
24
25function filterSource(text: string): string {
26    const filtered: string = text.replaceAll(/%/g, '_').replaceAll(/#/g, '_').replaceAll('<cctor>', '_cctor_');
27
28    return filtered;
29}
30
31function cleanCopyRight(str: string): string {
32    const copyrightBlockRegex = /(?:\/\*.*Copyright \([c|C]\) [- \d]+ [\w ]+\., Ltd\..*\*\/)/gs;
33
34    return str.replace(copyrightBlockRegex, '');
35}
36
37function removeSpaceAndReturn(str: string): string {
38    const spaceAndReturnRegex = /^[\s\r]+/gm;
39
40    return str.replace(spaceAndReturnRegex, '').trim();
41}
42
43function replaceWithRandomNumber(text: string): string {
44    return text
45        .replace(/(?<=__memo_id[\)+]?\s?\+\s?[\(+]?)\d+/g, () => '<some_random_number>')
46        .replace(/(?<=gensym[_%]+)\d+/g, () => '<some_random_number>');
47}
48
49export { parseDumpSrc, filterSource, cleanCopyRight, removeSpaceAndReturn, replaceWithRandomNumber };
50