diff --git a/src/tachyons/tachyons.ts b/src/tachyons/tachyons.ts index 0d9fb11..47e9f8f 100644 --- a/src/tachyons/tachyons.ts +++ b/src/tachyons/tachyons.ts @@ -1,5 +1,5 @@ -const cssom = require('cssom') -const CSSwhat = require('css-what') +import cssom from 'cssom' +import * as CSSwhat from 'css-what' const mediaQueries = [ { from: 30, name: 'ns' }, @@ -854,11 +854,15 @@ function mediaQueryfy(mediaQueries: { from?: number; to?: number; name: string } return mediaQueries .map(it => { const css = cssom.parse(input) - css.cssRules.forEach((selector: any) => { + css.cssRules.forEach(selector => { const cssSelector = CSSwhat.parse(selector.selectorText) - cssSelector.forEach((tokens: any[]) => { - tokens.forEach((element: any) => - element.name === 'class' ? (element.value = `${element.value}-${it.name}`) : null, + cssSelector.forEach(tokens => { + tokens.forEach(element => + 'name' in element && element.name === 'class' + ? 'value' in element && element.value + ? (element.value = `${element.value}-${it.name}`) + : null + : null, ) }) return (selector.selectorText = CSSwhat.stringify(cssSelector)) diff --git a/types/cssom.d.ts b/types/cssom.d.ts new file mode 100644 index 0000000..ca0babf --- /dev/null +++ b/types/cssom.d.ts @@ -0,0 +1,15 @@ +declare module '~cssom/index' { + export function parse(token: string): ParsedStylesheet + export interface ParsedStylesheet { + parentStyleSheet: null + cssRules: CSSRule[] + } + export interface CSSRule { + selectorText: string + } +} + +declare module 'cssom' { + import alias = require('~cssom/index') + export = alias +}