Skip to content

Commit f734ca5

Browse files
committed
Add main (programmatic API)
1 parent 2d93402 commit f734ca5

6 files changed

Lines changed: 32 additions & 17 deletions

File tree

β€ŽREADME.mdβ€Ž

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ A CSS utility class generator. User friendly, simple, powerful. Inspired by [tai
88

99
## Usage
1010

11-
- `cssutils --help`
11+
- `cssutils --help` (CLI)
12+
- `const cssutils = require("@peter554/cssutils")` (API)
1213
- Check out the tests for the full features.
1314

1415
### CSS variables
1516

1617
- `cssutils variables --config ./config.yml`
18+
- `cssutils.variables({configPath: "./config.yml"})`
1719

1820
```yml
1921
variables:
@@ -35,6 +37,7 @@ variables:
3537
### SASS/SCSS variables
3638
3739
- `cssutils sassvariables --config ./config.yml`
40+
- `cssutils.sassVariables({configPath: "./config.yml"})`
3841

3942
```yml
4043
variables:
@@ -56,6 +59,7 @@ $color-red: #f00;
5659
### Utility classes
5760

5861
- `cssutils utilities --config ./config.yml`
62+
- `cssutils.utilities({configPath: "./config.yml"})`
5963

6064
```yml
6165
variables:

β€Žpackage.jsonβ€Ž

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"name": "@peter554/cssutils",
3-
"version": "0.12.0",
3+
"version": "0.14.1",
44
"description": "CSS utility class generator. User friendly, simple, powerful.",
5+
"main": "./src/main.js",
56
"keywords": [
67
"css",
78
"functional css",

β€Žsrc/cli.jsβ€Ž

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ const { resolve, dirname } = require("path");
55

66
const { program } = require("commander");
77
const { mkdir } = require("shelljs");
8-
const CleanCSS = require("clean-css");
98

109
const { getConfig } = require("./getConfig");
11-
const log = require("./logging");
1210
const { generateVariables } = require("./generators/generateVariables");
1311
const { generateSassVariables } = require("./generators/generateSassVariables");
1412
const { generateUtilities } = require("./generators/generateUtilities");
@@ -33,7 +31,7 @@ program
3331
const output = resolve(cmd.output);
3432
mkdir("-p", dirname(output));
3533
writeFileSync(output, css);
36-
log.success(`CSS has been written to ${output}.`);
34+
console.log(`CSS has been written to ${output}.`);
3735
} else {
3836
console.log(css);
3937
}
@@ -57,7 +55,7 @@ program
5755
const output = resolve(cmd.output);
5856
mkdir("-p", dirname(output));
5957
writeFileSync(output, sass);
60-
log.success(`SASS has been written to ${output}.`);
58+
console.log(`SASS has been written to ${output}.`);
6159
} else {
6260
console.log(sass);
6361
}
@@ -82,7 +80,7 @@ program
8280
const output = resolve(cmd.output);
8381
mkdir("-p", dirname(output));
8482
writeFileSync(output, css);
85-
log.success(`CSS has been written to ${output}.`);
83+
console.log(`CSS has been written to ${output}.`);
8684
} else {
8785
console.log(css);
8886
}

β€Žsrc/getConfig.jsβ€Ž

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@ const { resolve, extname } = require("path");
44
const YAML = require("yaml");
55
const { cosmiconfigSync } = require("cosmiconfig");
66

7-
const log = require("./logging");
8-
97
const getConfig = (configPath) => {
108
if (configPath) {
119
config = resolve(configPath);
1210
if (!existsSync(config)) {
13-
log.error(`Configuration file ${config} does not exist.`);
14-
process.exit(1);
11+
throw Error(`Configuration file ${config} does not exist.`);
1512
}
1613
config = readFileSync(config, "utf8");
1714
return extname(config) == ".json" ? JSON.parse(config) : YAML.parse(config);
@@ -21,8 +18,7 @@ const getConfig = (configPath) => {
2118
});
2219
const searchResult = explorer.search();
2320
if (!searchResult) {
24-
log.error(`Configuration file discovery failed.`);
25-
process.exit(1);
21+
throw Error(`Configuration file discovery failed.`);
2622
}
2723
return searchResult.config;
2824
}

β€Žsrc/logging.jsβ€Ž

Lines changed: 0 additions & 4 deletions
This file was deleted.

β€Žsrc/main.jsβ€Ž

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const { getConfig } = require("./getConfig");
2+
const { generateVariables } = require("./generators/generateVariables");
3+
const { generateSassVariables } = require("./generators/generateSassVariables");
4+
const { generateUtilities } = require("./generators/generateUtilities");
5+
6+
module.exports = {
7+
variables: ({ configPath } = {}) => {
8+
const config = getConfig(configPath);
9+
return generateVariables(config);
10+
},
11+
utilities: ({ configPath, noSubstitute } = {}) => {
12+
const substitute = !noSubstitute;
13+
const config = getConfig(configPath);
14+
return generateUtilities(config, substitute);
15+
},
16+
sassVariables: ({ configPath } = {}) => {
17+
const config = getConfig(configPath);
18+
return generateSassVariables(config);
19+
},
20+
};

0 commit comments

Comments
 (0)