Resolve TS errors and warnings

TODO: Use StyleTree types to remove `any`s from styleTrees.
This commit is contained in:
Nate Butler
2023-06-28 17:54:36 -04:00
parent 1177980172
commit bfdd0824e2
53 changed files with 224 additions and 1010 deletions
+2 -2
View File
@@ -3,8 +3,8 @@ export function slugify(t: string): string {
.toString()
.toLowerCase()
.replace(/\s+/g, "-")
.replace(/[^\w\-]+/g, "")
.replace(/\-\-+/g, "-")
.replace(/[^\w-]+/g, "")
.replace(/--+/g, "-")
.replace(/^-+/, "")
.replace(/-+$/, "")
}
+4 -3
View File
@@ -5,8 +5,8 @@ import { snakeCase } from "case-anything"
// Typescript magic to convert any string from camelCase to snake_case at compile time
type SnakeCase<S> = S extends string
? S extends `${infer T}${infer U}`
? `${T extends Capitalize<T> ? "_" : ""}${Lowercase<T>}${SnakeCase<U>}`
: S
? `${T extends Capitalize<T> ? "_" : ""}${Lowercase<T>}${SnakeCase<U>}`
: S
: S
type SnakeCased<Type> = {
@@ -14,7 +14,7 @@ type SnakeCased<Type> = {
}
export default function snakeCaseTree<T>(object: T): SnakeCased<T> {
const snakeObject: any = {}
const snakeObject: any = {} // eslint-disable-line @typescript-eslint/no-explicit-any
for (const key in object) {
snakeObject[snakeCase(key, { keepSpecialCharacters: true })] =
snakeCaseValue(object[key])
@@ -22,6 +22,7 @@ export default function snakeCaseTree<T>(object: T): SnakeCased<T> {
return snakeObject
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function snakeCaseValue(value: any): any {
if (typeof value === "object") {
if (Array.isArray(value)) {