tailwind-ctp-intellisense/packages/tailwindcss-language-service/src/util/getClassNameMeta.ts

31 lines
779 B
TypeScript
Raw Normal View History

2020-06-11 17:07:20 +00:00
import { State, ClassNameMeta } from './state'
import { getClassNameParts } from './getClassNameAtPosition'
const dlv = require('dlv')
export function getClassNameMeta(
state: State,
2020-06-19 13:40:19 +00:00
classNameOrParts: string | string[]
2020-06-11 17:07:20 +00:00
): ClassNameMeta | ClassNameMeta[] {
2020-06-19 13:40:19 +00:00
const parts = Array.isArray(classNameOrParts)
? classNameOrParts
: getClassNameParts(state, classNameOrParts)
2020-06-11 17:07:20 +00:00
if (!parts) return null
2020-11-19 17:34:59 +00:00
const info = dlv(state.classNames.classNames, [...parts, '__info'])
2020-06-11 17:07:20 +00:00
if (Array.isArray(info)) {
return info.map((i) => ({
source: i.__source,
pseudo: i.__pseudo,
scope: i.__scope,
context: i.__context,
}))
}
return {
source: info.__source,
pseudo: info.__pseudo,
scope: info.__scope,
context: info.__context,
}
}