zcw-shared 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ColorReference, ColorFormat, ColorPatterns } from '../../../types/color.d';
|
|
2
|
+
export interface ColorExtractorDependencies {
|
|
3
|
+
getColorPatterns: () => ColorPatterns;
|
|
4
|
+
standardizeColor: (color: string) => string;
|
|
5
|
+
detectColorFormat: (color: string) => ColorFormat | null;
|
|
6
|
+
isColorValue: (value: string) => {
|
|
7
|
+
isValid: boolean;
|
|
8
|
+
format?: ColorFormat;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface ColorExtractionOptions {
|
|
12
|
+
cssVariables?: Record<string, string>;
|
|
13
|
+
thirdPartyVariables?: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export declare function extractColors(code: string, filePath: string, dependencies: ColorExtractorDependencies, options?: ColorExtractionOptions): ColorReference[];
|
|
16
|
+
export declare function extractColorsFromLine(line: string, filePath: string, lineNumber: number, dependencies: ColorExtractorDependencies, options?: ColorExtractionOptions): ColorReference[];
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export function extractColors(code, filePath, dependencies, options = {}) {
|
|
2
|
+
const { cssVariables = {}, thirdPartyVariables = {} } = options;
|
|
3
|
+
const colors = [];
|
|
4
|
+
const lines = code.split('\n');
|
|
5
|
+
const parsedCssVariables = parseCssVariables(code, filePath, dependencies);
|
|
6
|
+
const allCssVariables = { ...cssVariables, ...parsedCssVariables };
|
|
7
|
+
for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
|
|
8
|
+
const line = lines[lineIndex];
|
|
9
|
+
const lineNumber = lineIndex + 1;
|
|
10
|
+
colors.push(...extractColorsFromLine(line, filePath, lineNumber, dependencies, { cssVariables: allCssVariables, thirdPartyVariables }));
|
|
11
|
+
}
|
|
12
|
+
return colors;
|
|
13
|
+
}
|
|
14
|
+
export function extractColorsFromLine(line, filePath, lineNumber, dependencies, options = {}) {
|
|
15
|
+
const { cssVariables = {}, thirdPartyVariables = {} } = options;
|
|
16
|
+
const colors = [];
|
|
17
|
+
const patterns = dependencies.getColorPatterns();
|
|
18
|
+
colors.push(...extractHexColors(line, filePath, lineNumber, patterns, dependencies));
|
|
19
|
+
colors.push(...extractRgbColors(line, filePath, lineNumber, patterns, dependencies));
|
|
20
|
+
colors.push(...extractRgbaColors(line, filePath, lineNumber, patterns, dependencies));
|
|
21
|
+
colors.push(...extractHslColors(line, filePath, lineNumber, patterns, dependencies));
|
|
22
|
+
colors.push(...extractHslaColors(line, filePath, lineNumber, patterns, dependencies));
|
|
23
|
+
colors.push(...extractNamedColors(line, filePath, lineNumber, patterns, dependencies));
|
|
24
|
+
colors.push(...extractCssVariableReferences(line, filePath, lineNumber, patterns, cssVariables));
|
|
25
|
+
colors.push(...extractThirdPartyVariableReferences(line, filePath, lineNumber, patterns, thirdPartyVariables));
|
|
26
|
+
return colors;
|
|
27
|
+
}
|
|
28
|
+
function extractHexColors(line, filePath, lineNumber, patterns, dependencies) {
|
|
29
|
+
return extractColorsGeneric(line, filePath, lineNumber, patterns.hex, 'hex', dependencies);
|
|
30
|
+
}
|
|
31
|
+
function extractRgbColors(line, filePath, lineNumber, patterns, dependencies) {
|
|
32
|
+
return extractColorsGeneric(line, filePath, lineNumber, patterns.rgb, 'rgb', dependencies);
|
|
33
|
+
}
|
|
34
|
+
function extractRgbaColors(line, filePath, lineNumber, patterns, dependencies) {
|
|
35
|
+
return extractColorsGeneric(line, filePath, lineNumber, patterns.rgba, 'rgba', dependencies);
|
|
36
|
+
}
|
|
37
|
+
function extractHslColors(line, filePath, lineNumber, patterns, dependencies) {
|
|
38
|
+
return extractColorsGeneric(line, filePath, lineNumber, patterns.hsl, 'hsl', dependencies);
|
|
39
|
+
}
|
|
40
|
+
function extractHslaColors(line, filePath, lineNumber, patterns, dependencies) {
|
|
41
|
+
return extractColorsGeneric(line, filePath, lineNumber, patterns.hsla, 'hsla', dependencies);
|
|
42
|
+
}
|
|
43
|
+
function extractNamedColors(line, filePath, lineNumber, patterns, dependencies) {
|
|
44
|
+
return extractColorsGeneric(line, filePath, lineNumber, patterns.namedColors, 'named', dependencies);
|
|
45
|
+
}
|
|
46
|
+
function extractCssVariableReferences(line, filePath, lineNumber, patterns, cssVariables) {
|
|
47
|
+
const colors = [];
|
|
48
|
+
const cssVarPattern = /var\(\s*--([\w-]+)\s*\)/g;
|
|
49
|
+
const matches = line.matchAll(cssVarPattern);
|
|
50
|
+
for (const match of matches) {
|
|
51
|
+
const variableName = match[1];
|
|
52
|
+
const variableValue = cssVariables[variableName];
|
|
53
|
+
if (variableValue) {
|
|
54
|
+
colors.push(createColorReference(variableValue, 'css-variable', filePath, lineNumber, line, variableValue, true, variableName));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return colors;
|
|
58
|
+
}
|
|
59
|
+
function extractThirdPartyVariableReferences(line, filePath, lineNumber, patterns, thirdPartyVariables) {
|
|
60
|
+
const colors = [];
|
|
61
|
+
const thirdPartyPattern = /\$([\w-]+)/g;
|
|
62
|
+
const matches = line.matchAll(thirdPartyPattern);
|
|
63
|
+
for (const match of matches) {
|
|
64
|
+
const variableName = match[1];
|
|
65
|
+
const variableValue = thirdPartyVariables[variableName];
|
|
66
|
+
if (variableValue) {
|
|
67
|
+
colors.push(createColorReference(variableValue, 'third-party-variable', filePath, lineNumber, line, variableName, true, variableName));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return colors;
|
|
71
|
+
}
|
|
72
|
+
function extractColorsGeneric(line, filePath, lineNumber, pattern, format, dependencies) {
|
|
73
|
+
const colors = [];
|
|
74
|
+
const matches = line.matchAll(new RegExp(pattern.source, 'g'));
|
|
75
|
+
for (const match of matches) {
|
|
76
|
+
const originalColor = match[0];
|
|
77
|
+
const standardizedColor = dependencies.standardizeColor(originalColor);
|
|
78
|
+
colors.push(createColorReference(standardizedColor, format, filePath, lineNumber, line, originalColor));
|
|
79
|
+
}
|
|
80
|
+
return colors;
|
|
81
|
+
}
|
|
82
|
+
function parseCssVariables(code, filePath, dependencies) {
|
|
83
|
+
const variables = {};
|
|
84
|
+
const lines = code.split('\n');
|
|
85
|
+
const cssVarDefPattern = /--([\w-]+)\s*:\s*([^;]+);/g;
|
|
86
|
+
for (const line of lines) {
|
|
87
|
+
const matches = line.matchAll(cssVarDefPattern);
|
|
88
|
+
for (const match of matches) {
|
|
89
|
+
const [, variableName, variableValue] = match;
|
|
90
|
+
const trimmedValue = variableValue.trim();
|
|
91
|
+
const validation = dependencies.isColorValue(trimmedValue);
|
|
92
|
+
if (validation.isValid) {
|
|
93
|
+
const standardizedValue = dependencies.standardizeColor(trimmedValue);
|
|
94
|
+
variables[variableName] = standardizedValue;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return variables;
|
|
99
|
+
}
|
|
100
|
+
function createColorReference(value, format, file, line, context, originalValue, isVariableReference = false, variableName) {
|
|
101
|
+
return {
|
|
102
|
+
originalValue,
|
|
103
|
+
format,
|
|
104
|
+
file,
|
|
105
|
+
line,
|
|
106
|
+
context: context.trim(),
|
|
107
|
+
isVariableReference,
|
|
108
|
+
variableName
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=extractColors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractColors.js","sourceRoot":"","sources":["../../../src/functions/color-converter/extractColors.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zcw-shared",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"references",
|
|
6
6
|
"dist",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"./functions/base64/strToBase64": "./dist/functions/base64/strToBase64.js",
|
|
35
35
|
"./functions/color-converter/convertColor": "./dist/functions/color-converter/convertColor.js",
|
|
36
36
|
"./functions/color-converter/detectColorFormat": "./dist/functions/color-converter/detectColorFormat.js",
|
|
37
|
+
"./functions/color-converter/extractColors": "./dist/functions/color-converter/extractColors.js",
|
|
37
38
|
"./functions/color-converter/getColorPatterns": "./dist/functions/color-converter/getColorPatterns.js",
|
|
38
39
|
"./functions/color-converter/getNamedColorMap": "./dist/functions/color-converter/getNamedColorMap.js",
|
|
39
40
|
"./functions/color-converter/hueToRgb": "./dist/functions/color-converter/hueToRgb.js",
|
package/types/color.d.ts
CHANGED
|
@@ -112,4 +112,25 @@ export interface ColorConversionOptions {
|
|
|
112
112
|
alphaValue?: number
|
|
113
113
|
/** 是否使用8位十六进制格式 */
|
|
114
114
|
use8BitHex?: boolean
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 颜色引用信息
|
|
119
|
+
* 用于描述在代码中发现的颜色值及其上下文信息
|
|
120
|
+
*/
|
|
121
|
+
export interface ColorReference {
|
|
122
|
+
/** 原始颜色值 */
|
|
123
|
+
originalValue: string
|
|
124
|
+
/** 颜色格式类型 */
|
|
125
|
+
format: ColorFormat | 'css-variable' | 'third-party-variable'
|
|
126
|
+
/** 文件路径 */
|
|
127
|
+
file: string
|
|
128
|
+
/** 行号 */
|
|
129
|
+
line: number
|
|
130
|
+
/** 上下文代码 */
|
|
131
|
+
context: string
|
|
132
|
+
/** 是否为变量引用 */
|
|
133
|
+
isVariableReference?: boolean
|
|
134
|
+
/** 变量名称(当isVariableReference为true时) */
|
|
135
|
+
variableName?: string
|
|
115
136
|
}
|