-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathreplace.ts
More file actions
48 lines (39 loc) · 1.55 KB
/
replace.ts
File metadata and controls
48 lines (39 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
export const replaceSize = (content: string, size: number) => {
return content.replace(/#size#/g, String(size));
};
export const replaceCases = (content: string, cases: string) => {
return content.replace(/#cases#/g, cases);
};
export const replaceNames = (content: string, names: string[]) => {
return content.replace(/#names#/g, names.join(`' | '`));
};
export const replaceNamesArray = (content: string, names: string[]) => {
return content.replace(
/#namesArray#/g,
JSON.stringify(names)
.replace(/"/g, '\'')
.replace(/','/g, '\', \'')
);
};
export const replaceComponentName = (content: string, name: string) => {
return content.replace(/#componentName#/g, name);
};
export const replaceSingleIconContent = (content: string, render: string) => {
return content.replace(/#iconContent#/g, render);
};
export const replaceImports = (content: string, imports: string[]) => {
return content.replace(/#imports#/g, imports.map((item) => `import ${item} from './${item}';`).join('\n'));
};
export const replaceSizeUnit = (content: string, unit: string) => {
return content.replace(/\{size\}/g, `{size + '${unit}'}`);
};
export const replaceExports = (content: string, exports: string[]) => {
return content.replace(/#exports#/g, exports.map(
(item) => `export { default as ${item} } from './${item}';`).join('\n')
);
}
export const replaceDefaultStyle = (content: string, defaultStyle: Record<string, string>) => {
return content.replace(/#defaultStyle#/g, JSON.stringify(defaultStyle, null, " ") || `{
"display": "block",
}`)
};