Files
Agent-n8n/web_frontend/exhibition-demo/node_modules/style-to-object/src/index.ts
Yep_Q 1564396449 feat: 完善会展策划演示系统
详细说明:
- 添加了V2版本的工作流页面和结果页面
- 更新了Serena记忆文件
- 添加了详细实施计划文档
- 优化了Vite配置
- 更新了项目文档CLAUDE.md
- 构建了演示系统的dist版本
- 包含了exhibition-demo的完整依赖
2025-09-08 11:15:23 +08:00

60 lines
1.2 KiB
TypeScript

import type { Declaration } from 'inline-style-parser';
import parse from 'inline-style-parser';
export { Declaration };
interface StyleObject {
[name: string]: string;
}
type Iterator = (
property: string,
value: string,
declaration: Declaration,
) => void;
/**
* Parses inline style to object.
*
* @param style - Inline style.
* @param iterator - Iterator.
* @returns - Style object or null.
*
* @example Parsing inline style to object:
*
* ```js
* import parse from 'style-to-object';
* parse('line-height: 42;'); // { 'line-height': '42' }
* ```
*/
export default function StyleToObject(
style: string,
iterator?: Iterator,
): StyleObject | null {
let styleObject: StyleObject | null = null;
if (!style || typeof style !== 'string') {
return styleObject;
}
const declarations = parse(style);
const hasIterator = typeof iterator === 'function';
declarations.forEach((declaration) => {
if (declaration.type !== 'declaration') {
return;
}
const { property, value } = declaration;
if (hasIterator) {
iterator(property, value, declaration);
} else if (value) {
styleObject = styleObject || {};
styleObject[property] = value;
}
});
return styleObject;
}