From a6cda8a2dfe6c6fb723909a28117953d347061b1 Mon Sep 17 00:00:00 2001 From: Bob Matcuk Date: Thu, 13 Jun 2019 20:15:21 -0700 Subject: [PATCH] added definitions for icss-utils (#36052) --- types/icss-utils/icss-utils-tests.ts | 21 ++++++++++++++++++ types/icss-utils/index.d.ts | 32 ++++++++++++++++++++++++++++ types/icss-utils/package.json | 6 ++++++ types/icss-utils/tsconfig.json | 23 ++++++++++++++++++++ types/icss-utils/tslint.json | 1 + 5 files changed, 83 insertions(+) create mode 100644 types/icss-utils/icss-utils-tests.ts create mode 100644 types/icss-utils/index.d.ts create mode 100644 types/icss-utils/package.json create mode 100644 types/icss-utils/tsconfig.json create mode 100644 types/icss-utils/tslint.json diff --git a/types/icss-utils/icss-utils-tests.ts b/types/icss-utils/icss-utils-tests.ts new file mode 100644 index 0000000000..c3f840c619 --- /dev/null +++ b/types/icss-utils/icss-utils-tests.ts @@ -0,0 +1,21 @@ +import { replaceValueSymbols, replaceSymbols, extractICSS, createICSSRules } from "icss-utils"; +import postcss = require("postcss"); + +const root = postcss.parse("a#css.string { color: red }"); + +const replacements = { + quick: "slow", + lazy: "energetic", +}; + +const s: string = replaceValueSymbols("The quick brown fox jumps over the lazy dog.", replacements); + +replaceSymbols(root, replacements); + +const { icssImports, icssExports } = extractICSS(root); +const s2: string = icssImports.monkey.bagel; +const s3: string = icssExports.foo; + +extractICSS(root, false); + +const rules: postcss.Rule[] = createICSSRules(icssImports, icssExports); diff --git a/types/icss-utils/index.d.ts b/types/icss-utils/index.d.ts new file mode 100644 index 0000000000..2c28cd4c94 --- /dev/null +++ b/types/icss-utils/index.d.ts @@ -0,0 +1,32 @@ +// Type definitions for icss-utils 4.1 +// Project: https://github.com/css-modules/icss-utils#readme +// Definitions by: Bob Matcuk +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +import { Container, Rule } from "postcss"; + +export interface Replacements { + [key: string]: string; +} + +export interface CSSImports { + [key: string]: { [key: string]: string }; +} + +export interface CSSExports { + [key: string]: string; +} + +export interface ExtractedICSS { + icssImports: CSSImports; + icssExports: CSSExports; +} + +export function replaceValueSymbols(value: string, replacements: Replacements): string; + +export function replaceSymbols(css: Container, replacements: Replacements): void; + +export function extractICSS(css: Container, removeRules?: boolean): ExtractedICSS; + +export function createICSSRules(imports: CSSImports, exports: CSSExports): Rule[]; diff --git a/types/icss-utils/package.json b/types/icss-utils/package.json new file mode 100644 index 0000000000..57e9c40057 --- /dev/null +++ b/types/icss-utils/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "postcss": "^7.0.0" + } +} diff --git a/types/icss-utils/tsconfig.json b/types/icss-utils/tsconfig.json new file mode 100644 index 0000000000..eb071150d9 --- /dev/null +++ b/types/icss-utils/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "icss-utils-tests.ts" + ] +} diff --git a/types/icss-utils/tslint.json b/types/icss-utils/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/icss-utils/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }