Skip to content

Commit 5819989

Browse files
goto-bus-stopyoshuawuyts
authored andcommitted
Update cssnext, fixes #3 (#4)
* Update cssnext Probably a breaking change. The `cssnext` package is deprecated. * add imported files to `result.files` * Node 4+ * Update standard
1 parent e9d2f3b commit 5819989

File tree

4 files changed

+74
-35
lines changed

4 files changed

+74
-35
lines changed

.travis.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
node_js:
2-
- "0.12"
2+
- "stable"
33
- "4"
44
sudo: false
55
language: node_js
66
script: "npm run test:cov"
7-
after_script: "npm i -g codecov.io && cat ./coverage/lcov.info | codecov"
7+
after_script: "npm i -g codecov.io && cat ./coverage/lcov.info | codecov"

index.js

+35-13
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,43 @@
1-
const cssnext = require('cssnext')
1+
const postcss = require('postcss')
2+
const cssnext = require('postcss-cssnext')
3+
const imports = require('postcss-import')
24
const xtend = require('xtend')
35

46
module.exports = transform
57

68
function transform (filename, source, options, done) {
7-
try {
8-
source = cssnext(source, xtend({
9-
sourcemap: true,
10-
from: filename,
11-
messages: {
12-
browser: true,
13-
console: false
9+
options = xtend(options || {})
10+
const sourcemap = options.sourcemap
11+
delete options.sourcemap
12+
13+
const processor = postcss([
14+
imports(),
15+
cssnext(options)
16+
])
17+
18+
const poptions = xtend({
19+
map: sourcemap === false ? false : { inline: true },
20+
from: filename,
21+
messages: {
22+
browser: true,
23+
console: false
24+
}
25+
}, options || {})
26+
27+
processor.process(source, poptions).then(function (result) {
28+
// Collect imported files for watchify
29+
const files = [filename]
30+
result.messages.forEach(function (msg) {
31+
if (msg.type === 'dependency') {
32+
files.push(msg.file)
1433
}
15-
}, options || {}))
16-
} catch (e) {
17-
return done(e)
18-
}
34+
})
1935

20-
done(null, source)
36+
done(null, {
37+
css: result.css,
38+
files: files
39+
})
40+
}, function (err) {
41+
done(err)
42+
})
2143
}

package.json

+7-2
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,18 @@
2222
],
2323
"license": "MIT",
2424
"dependencies": {
25-
"cssnext": "^1.8.4",
25+
"postcss": "^6.0.17",
26+
"postcss-cssnext": "^3.1.0",
27+
"postcss-import": "^11.0.0",
2628
"xtend": "^4.0.0"
2729
},
2830
"devDependencies": {
2931
"dependency-check": "^2.5.1",
3032
"istanbul": "^0.4.1",
31-
"standard": "^5.4.1",
33+
"standard": "^10.0.3",
3234
"tape": "^4.2.1"
35+
},
36+
"engines": {
37+
"node": ">= 4"
3338
}
3439
}

test.js

+30-18
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,37 @@ const test = require('tape')
33
const path = require('path')
44
const fs = require('fs')
55

6-
test('basic', compare('basic.css', 'basic-out.css'))
7-
test('import', compare('import.css', 'basic-out.css'))
6+
test('basic', function (t) {
7+
t.plan(1)
88

9-
function compare (inputFile, outputFile) {
10-
return function compareTest (t) {
11-
const file = path.join(__dirname, 'fixtures', inputFile)
12-
const src = fs.readFileSync(file, 'utf8')
13-
const expected = fs.readFileSync(
14-
path.join(__dirname, 'fixtures', outputFile)
15-
, 'utf8')
9+
const file = path.join(__dirname, 'fixtures/basic.css')
10+
const src = fs.readFileSync(file, 'utf8')
11+
const expected = fs.readFileSync(path.join(__dirname, 'fixtures/basic-out.css'), 'utf8')
1612

17-
t.plan(1)
13+
transform(file, src, {
14+
sourcemap: false
15+
}, function (err, actual) {
16+
if (err) return t.error(err)
1817

19-
transform(file, src, {
20-
sourcemap: false
21-
}, function (err, actual) {
22-
if (err) return t.error(err)
18+
t.equal(actual.css, expected, 'output is as expected')
19+
})
20+
})
21+
test('import', function (t) {
22+
t.plan(2)
2323

24-
t.equal(actual, expected, 'output is as expected')
25-
})
26-
}
27-
}
24+
const file = path.join(__dirname, 'fixtures/import.css')
25+
const src = fs.readFileSync(file, 'utf8')
26+
const expected = fs.readFileSync(path.join(__dirname, 'fixtures/basic-out.css'), 'utf8')
27+
28+
transform(file, src, {
29+
sourcemap: false
30+
}, function (err, actual) {
31+
if (err) return t.error(err)
32+
33+
t.equal(actual.css, expected, 'output is as expected')
34+
t.deepEqual(actual.files, [
35+
file,
36+
path.join(__dirname, 'fixtures/basic.css')
37+
], 'lists imported files')
38+
})
39+
})

0 commit comments

Comments
 (0)