From 8d9113f27f14b45a1d66f91220f63a389a432704 Mon Sep 17 00:00:00 2001 From: Patrick Low Date: Thu, 19 Dec 2019 14:21:54 +0800 Subject: [PATCH 1/4] adding cssom.d.td --- src/tachyons/tachyons.ts | 4 ++-- types/cssom.d.ts | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 types/cssom.d.ts diff --git a/src/tachyons/tachyons.ts b/src/tachyons/tachyons.ts index 0d9fb11..89ddb21 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 CSSwhat from 'css-what' const mediaQueries = [ { from: 30, name: 'ns' }, diff --git a/types/cssom.d.ts b/types/cssom.d.ts new file mode 100644 index 0000000..984ab60 --- /dev/null +++ b/types/cssom.d.ts @@ -0,0 +1,8 @@ +declare module '~cssom/index' { + export function parse(token: string): CSSStyleSheet +} + +declare module 'cssom' { + import alias = require('~cssom/index') + export = alias +} From 0e60751f693e2093c0dc3e5f1f1586be0a603a1a Mon Sep 17 00:00:00 2001 From: Patrick Low Date: Thu, 19 Dec 2019 16:09:50 +0800 Subject: [PATCH 2/4] fix css.cssRules type --- src/tachyons/tachyons.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tachyons/tachyons.ts b/src/tachyons/tachyons.ts index 89ddb21..07c012a 100644 --- a/src/tachyons/tachyons.ts +++ b/src/tachyons/tachyons.ts @@ -854,7 +854,7 @@ function mediaQueryfy(mediaQueries: { from?: number; to?: number; name: string } return mediaQueries .map(it => { const css = cssom.parse(input) - css.cssRules.forEach((selector: any) => { + ;[].slice.call(css.cssRules).forEach((selector: any) => { const cssSelector = CSSwhat.parse(selector.selectorText) cssSelector.forEach((tokens: any[]) => { tokens.forEach((element: any) => From b9463a0c023836ed22b606842bccd4f247ca0dea Mon Sep 17 00:00:00 2001 From: Patrick Low Date: Thu, 19 Dec 2019 16:43:33 +0800 Subject: [PATCH 3/4] minor fix import CSSWhat --- src/tachyons/tachyons.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tachyons/tachyons.ts b/src/tachyons/tachyons.ts index 07c012a..0d22485 100644 --- a/src/tachyons/tachyons.ts +++ b/src/tachyons/tachyons.ts @@ -1,5 +1,5 @@ import cssom from 'cssom' -import CSSwhat from 'css-what' +import * as CSSwhat from 'css-what' const mediaQueries = [ { from: 30, name: 'ns' }, From 649f5a529bc7f9a642de40a7dfc8d65c49b22705 Mon Sep 17 00:00:00 2001 From: Patrick Low Date: Fri, 20 Dec 2019 15:55:11 +0800 Subject: [PATCH 4/4] add ParsedStylesheet to cssom.d.ts --- src/tachyons/tachyons.ts | 12 ++++++++---- types/cssom.d.ts | 9 ++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/tachyons/tachyons.ts b/src/tachyons/tachyons.ts index 0d22485..47e9f8f 100644 --- a/src/tachyons/tachyons.ts +++ b/src/tachyons/tachyons.ts @@ -854,11 +854,15 @@ function mediaQueryfy(mediaQueries: { from?: number; to?: number; name: string } return mediaQueries .map(it => { const css = cssom.parse(input) - ;[].slice.call(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 index 984ab60..ca0babf 100644 --- a/types/cssom.d.ts +++ b/types/cssom.d.ts @@ -1,5 +1,12 @@ declare module '~cssom/index' { - export function parse(token: string): CSSStyleSheet + export function parse(token: string): ParsedStylesheet + export interface ParsedStylesheet { + parentStyleSheet: null + cssRules: CSSRule[] + } + export interface CSSRule { + selectorText: string + } } declare module 'cssom' {