Skip to content
This repository was archived by the owner on Feb 16, 2021. It is now read-only.

Commit 0d3da81

Browse files
committed
fix(extension): add support for different extensions
Work with any file extension (.postcss, .css, etc). close #7
1 parent 347775b commit 0d3da81

10 files changed

+18
-16
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"clean": "rimraf dist coverage *.log",
88
"commit": "git-cz",
9-
"copyFakePostcssFile": "cpx \"src/spec/postcss/*\" dist/spec/postcss/",
9+
"copyFakePostcssFile": "cpx \"src/spec/styles/*\" dist/spec/styles/",
1010
"compile": "npm run clean && tsc",
1111
"compile:watch": "tsc --watch",
1212
"lint": "npm run tslint \"src/**/*.ts\"",

src/buildFile.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ const path = require('path');
44
import { PostcssTypescriptCss } from './namespace/PostcssTypescriptCss';
55

66
const build = (file: PostcssTypescriptCss.Options) => {
7-
const filename = path.basename(file.cssFileName, '.postcss');
7+
const extension = path.extname(file.cssFileName);
8+
const filename = path.basename(file.cssFileName, extension);
89
return (
910
`export const ${filename}Style = {
1011
${

src/saveFile.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ const saveFile = (file: PostcssTypescriptCss.Options) => {
88
return new Promise((resolve, reject) => {
99
try {
1010
const dirname = path.dirname(file.cssFileName);
11-
const filename = path.basename(file.cssFileName, '.postcss');
11+
const extension = path.extname(file.cssFileName);
12+
const filename = path.basename(file.cssFileName, extension);
1213
writeFileSync(`${dirname}/${filename}.ts`, build(file));
1314
resolve(true);
1415
} catch (err) {

src/spec/postcss-typescript-css.spec.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ function run(t: TestContext, input: {css: string, from: string}, opts?: PostcssT
1111
.then((result) => {
1212
let fakeComponentTS;
1313
if (opts) {
14-
fakeComponentTS = readFileSync(path.join(__dirname, 'postcss/fakeComponentModules.ts'), 'utf8');
14+
fakeComponentTS = readFileSync(path.join(__dirname, 'styles/fakeComponentModules.ts'), 'utf8');
1515
t.true(fakeComponentTS.includes('fakeComponentModulesStyle'));
1616
t.true(fakeComponentTS.includes('fakeComponentModules:'));
1717
t.true(fakeComponentTS.includes('fakeComponentModulesDescendentName:'));
1818
t.true(fakeComponentTS.includes('fakeComponentModulesModifierName:'));
1919
} else {
20-
fakeComponentTS = readFileSync(path.join(__dirname, 'postcss/fakeComponent.ts'), 'utf8');
20+
fakeComponentTS = readFileSync(path.join(__dirname, 'styles/fakeComponent.ts'), 'utf8');
2121
t.true(fakeComponentTS.includes('fakeComponentStyle'));
2222
t.true(fakeComponentTS.includes('fakeComponent:'));
2323
t.true(fakeComponentTS.includes('fakeComponentDescendentName:'));
@@ -39,14 +39,14 @@ function run(t: TestContext, input: {css: string, from: string}, opts?: PostcssT
3939
}
4040

4141
test('should create a ts file', t => {
42-
const cssFile = path.join(__dirname, 'postcss/fakeComponent.postcss');
42+
const cssFile = path.join(__dirname, 'styles/fakeComponent.css');
4343
const cssContent = readFileSync(cssFile, 'utf8');
4444
return run(t, { css: cssContent, from: cssFile });
4545
});
4646

4747
test('should create a ts file with postcss-modules configuration', t => {
48-
const cssFileName = path.join(__dirname, 'postcss/fakeComponentModules.postcss');
49-
const content = JSON.parse(readFileSync(path.join(__dirname, 'postcss/fakeComponentModules.json'), 'utf8'));
48+
const cssFileName = path.join(__dirname, 'styles/fakeComponentModules.css');
49+
const content = JSON.parse(readFileSync(path.join(__dirname, 'styles/fakeComponentModules.json'), 'utf8'));
5050
return run(t, { css: '', from: '' }, { cssFileName, content });
5151
});
5252

@@ -55,6 +55,6 @@ test('throws if cssFileName is null', t => {
5555
});
5656

5757
test('throws if content is null', t => {
58-
const cssFileName = path.join(__dirname, 'postcss/fakeComponentModules.postcss');
58+
const cssFileName = path.join(__dirname, 'styles/fakeComponentModules.css');
5959
return run(t, { css: '', from: '' }, { cssFileName, content: null });
6060
});

src/spec/saveFile.spec.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ const path = require('path');
44

55

66
test('should create a new ts file', async (t) => {
7-
const cssFileName = path.join(__dirname, 'postcss/fakeComponent2.postcss');
7+
const cssFileName = path.join(__dirname, 'styles/fakeComponent2.postcss');
88
t.is(await saveFile({
99
cssFileName,
1010
content: ['.FakeComponent2', '.FakeComponent2-descendentName', '.FakeComponent2--modifierName']
1111
}), true);
12-
const tsFile = path.join(__dirname, 'postcss/fakeComponent2.ts');
12+
const tsFile = path.join(__dirname, 'styles/fakeComponent2.ts');
1313
const tsFileName = path.basename(tsFile, '.ts');
1414
t.is(tsFileName, 'fakeComponent2');
1515
});
1616

1717
test('should create a new ts file with transformed classes', async (t) => {
18-
const cssFileName = path.join(__dirname, 'postcss/fakeComponentModules.postcss');
18+
const cssFileName = path.join(__dirname, 'styles/fakeComponentModules.css');
1919
t.is(await saveFile({
2020
cssFileName,
2121
content: {
@@ -24,7 +24,7 @@ test('should create a new ts file with transformed classes', async (t) => {
2424
fakeComponentModulesModifierName: '_FakeComponentModules--modifierName_h7423_1'
2525
}
2626
}), true);
27-
const tsFile = path.join(__dirname, 'postcss/fakeComponentModules.ts');
27+
const tsFile = path.join(__dirname, 'styles/fakeComponentModules.ts');
2828
const tsFileName = path.basename(tsFile, '.ts');
2929
t.is(tsFileName, 'fakeComponentModules');
3030
});
@@ -39,7 +39,7 @@ test('throws if there is not a css file name', async (t) => {
3939
});
4040

4141
test('throws if there is not a content', async (t) => {
42-
const cssFileName = path.join(__dirname, 'postcss/fakeComponent2.postcss');
42+
const cssFileName = path.join(__dirname, 'styles/fakeComponent2.postcss');
4343
saveFile({
4444
cssFileName,
4545
content: null

yarn.lock

+2-2
Original file line numberDiff line numberDiff line change
@@ -3305,7 +3305,7 @@ request-promise@^4.1.1:
33053305
request-promise-core "1.1.1"
33063306
stealthy-require "^1.0.0"
33073307

3308-
3308+
[email protected], request@^2.74.0, request@^2.78.0:
33093309
version "2.79.0"
33103310
resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
33113311
dependencies:
@@ -3330,7 +3330,7 @@ [email protected]:
33303330
tunnel-agent "~0.4.1"
33313331
uuid "^3.0.0"
33323332

3333-
request@^2.74.0, request@^2.78.0, request@^2.81.0:
3333+
request@^2.81.0:
33343334
version "2.81.0"
33353335
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
33363336
dependencies:

0 commit comments

Comments
 (0)