postcss-partial-import
Advanced tools
Comparing version
@@ -0,1 +1,7 @@ | ||
## 1.3.0 (2015-09-14) | ||
Added: Support for generating imported files | ||
Updated: Switched to `fs-promise` from `fs` and `mkdirp` | ||
Updated: Switched to `assign` from `_extend` | ||
## 1.2.0 (2015-09-09) | ||
@@ -2,0 +8,0 @@ |
42
index.js
@@ -1,16 +0,18 @@ | ||
var extend = require('util')._extend; | ||
var fs = require('fs'); | ||
var assign = require('object-assign'); | ||
var fs = require('fs-promise'); | ||
var hash = require('string-hash'); | ||
var mkdirp = require('mkdirp'); | ||
var path = require('path'); | ||
var postcss = require('postcss'); | ||
var readFile = require('fs-readfile-promise'); | ||
module.exports = postcss.plugin('postcss-partial-import', function (opts) { | ||
var cacheDir = opts && opts.cachedir; | ||
var cacheFile = cacheDir && path.join(cacheDir, 'imports.json'); | ||
var enc = opts && opts.encoding || 'utf8'; | ||
var ext = opts && opts.extension || 'css'; | ||
var pre = opts && opts.prefix || '_'; | ||
opts = assign({ | ||
encoding: 'utf8', | ||
extension: 'css', | ||
prefix: '_' | ||
}, opts); | ||
if (opts.cachedir) { | ||
opts.cachefile = path.join(opts.cachedir, 'imports.json'); | ||
} | ||
var getModified = function (filename) { | ||
@@ -52,5 +54,5 @@ return fs.statSync(filename).mtime.getTime(); | ||
readFile(fileCache, { encoding: enc }).then(function (contents) { | ||
fs.readFile(fileCache, { encoding: opts.encoding }).then(function (contents) { | ||
var processor = postcss(); | ||
var options = extend({}, result.opts); | ||
var options = assign({}, result.opts); | ||
@@ -67,3 +69,3 @@ options.from = filename; | ||
var getPath = function (file, fromPath) { | ||
if (!path.extname(file)) file = path.join(path.dirname(file), pre + path.basename(file) + '.' + ext); | ||
if (!path.extname(file)) file = path.join(path.dirname(file), opts.prefix + path.basename(file) + '.' + opts.extension); | ||
@@ -88,5 +90,7 @@ return path.resolve(path.dirname(fromPath), file); | ||
readFile(file, { encoding: enc }).then(function (css) { | ||
(opts.generate ? fs.ensureFile(file) : Promise.resolve()).then(function () { | ||
return fs.readFile(file, { encoding: opts.encoding }); | ||
}).then(function (css) { | ||
var processor = postcss(); | ||
var options = extend({}, result.opts); | ||
var options = assign({}, result.opts); | ||
@@ -148,3 +152,3 @@ options.from = file; | ||
var output = css.toResult().css; | ||
var cacheFilename = path.resolve(cacheDir, hash(output) + '.css'); | ||
var cacheFilename = path.resolve(opts.cachedir, hash(output) + '.css'); | ||
@@ -167,7 +171,7 @@ cache[fromPath].cache = cacheFilename; | ||
if (cacheDir) { | ||
mkdirp.sync(cacheDir); | ||
if (opts.cachedir) { | ||
fs.mkdirsSync(opts.cachedir); | ||
try { | ||
cache = require(cacheFile); | ||
cache = require(opts.cachefile); | ||
} catch (error) { | ||
@@ -179,3 +183,3 @@ cache = {}; | ||
parseStyles(css, result, cache).then(function () { | ||
if (cache) fs.writeFileSync(cacheFile, JSON.stringify(cache)); | ||
if (cache) fs.writeFileSync(opts.cachefile, JSON.stringify(cache)); | ||
@@ -182,0 +186,0 @@ resolve(); |
{ | ||
"name": "postcss-partial-import", | ||
"version": "1.2.0", | ||
"version": "1.3.0", | ||
"description": "PostCSS plugin that imports like Sass", | ||
@@ -25,5 +25,6 @@ "keywords": [ | ||
"dependencies": { | ||
"fs-readfile-promise": "^2.0.1", | ||
"mkdirp": "^0.5.1", | ||
"postcss": "^5.0.4", | ||
"fs-extra": "^0.24.0", | ||
"fs-promise": "^0.3.1", | ||
"object-assign": "^4.0.1", | ||
"postcss": "^5.0.5", | ||
"string-hash": "^1.1.0" | ||
@@ -30,0 +31,0 @@ }, |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
16528
1.31%138
2.22%2
-33.33%5
25%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
Updated