mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-07-08 14:35:09 +00:00
* feat: init * fix * fix * fix * feat * feat * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: implement icons * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: update init command * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: dialog * feat * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: add registry:base item type * feat: rename frame to canva * fix * feat * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fi * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: add all colors * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * feat: add outfit font * fix * fix * fix * fix * fix * chore: changeset * fix * fix * fix * fix * fix * fix * fix * fix
36 lines
839 B
TypeScript
36 lines
839 B
TypeScript
import { Project, ScriptKind, type SourceFile } from "ts-morph"
|
|
|
|
import { type StyleMap } from "./create-style-map"
|
|
import { transformStyleMap } from "./transform-style-map"
|
|
|
|
export type TransformerStyle<Output = SourceFile> = (opts: {
|
|
sourceFile: SourceFile
|
|
styleMap: StyleMap
|
|
}) => Promise<Output>
|
|
|
|
export async function transformStyle(
|
|
source: string,
|
|
{
|
|
styleMap,
|
|
transformers = [transformStyleMap],
|
|
}: {
|
|
styleMap: StyleMap
|
|
transformers?: TransformerStyle<SourceFile>[]
|
|
}
|
|
) {
|
|
const project = new Project({
|
|
useInMemoryFileSystem: true,
|
|
})
|
|
|
|
const sourceFile = project.createSourceFile("component.tsx", source, {
|
|
scriptKind: ScriptKind.TSX,
|
|
overwrite: true,
|
|
})
|
|
|
|
for (const transformer of transformers) {
|
|
await transformer({ sourceFile, styleMap })
|
|
}
|
|
|
|
return sourceFile.getText()
|
|
}
|