]> source.dussan.org Git - svg.js.git/commitdiff
fix: shape.css({})
author <951540966@qq.com>
Wed, 17 Jul 2024 03:02:05 +0000 (11:02 +0800)
committerGitHub <noreply@github.com>
Wed, 17 Jul 2024 03:02:05 +0000 (11:02 +0800)
svg.js.d.ts

index 5fd0513e3c7f11812da8dfb47d248262a6a3e827..c731b25d776c200190f05c5ab225c71a22cf2824 100644 (file)
@@ -10,8 +10,20 @@ declare type CSSStyleName = Exclude<
   'parentRule' | 'length'
 >
 
+// camelCase to kebab-case
+type CamelToKebab<S extends string> = S extends `${infer T}${infer U}`
+       ? U extends Uncapitalize<U>
+       ? `${Lowercase<T>}${CamelToKebab<U>}`
+       : `${Lowercase<T>}-${CamelToKebab<U>}`
+       : S;
+
+type ConvertKeysToKebab<T> = {
+       [K in keyof T as CamelToKebab<K & string>]: T[K];
+};
+
+
 // create our own style declaration that includes css vars
-interface CSSStyleDeclarationWithVars extends CSSStyleDeclaration {
+interface CSSStyleDeclarationWithVars extends ConvertKeysToKebab<CSSStyleDeclaration> {
   [key: `--${string}`]: string
 }