gulp-newer
Advanced tools
Comparing version 0.4.0 to 0.5.0
15
index.js
@@ -28,2 +28,6 @@ var Transform = require('stream').Transform; | ||
if (options.map && typeof options.map !== 'function') { | ||
throw new PluginError('Requires map to be a function'); | ||
} | ||
/** | ||
@@ -42,2 +46,8 @@ * Path to destination directory or file. | ||
/** | ||
* Optional function for mapping relative source files to destination files. | ||
* @type {function(string): string} | ||
*/ | ||
this._map = options.map; | ||
/** | ||
* Promise for the dest file/directory stats. | ||
@@ -82,3 +92,3 @@ * @type {[type]} | ||
this._destStats.then(function(destStats) { | ||
if (destStats.isDirectory() || self._ext) { | ||
if (destStats.isDirectory() || self._ext || self._map) { | ||
// stat dest/relative file | ||
@@ -90,2 +100,5 @@ var relative = srcFile.relative; | ||
relative; | ||
if (self._map) { | ||
destFileRelative = self._map(destFileRelative); | ||
} | ||
return Q.nfcall(fs.stat, path.join(self._dest, destFileRelative)); | ||
@@ -92,0 +105,0 @@ } else { |
{ | ||
"name": "gulp-newer", | ||
"version": "0.4.0", | ||
"version": "0.5.0", | ||
"description": "Only pass through newer source files", | ||
@@ -34,12 +34,12 @@ "homepage": "https://github.com/tschaub/gulp-newer", | ||
"devDependencies": { | ||
"jshint": "~2.4.1", | ||
"mocha": "~1.17.0", | ||
"gulp": "~3.3.4", | ||
"chai": "~1.8.1", | ||
"mock-fs": "~2.1.1" | ||
"jshint": "~2.5.10", | ||
"mocha": "~2.0.1", | ||
"gulp": "~3.8.10", | ||
"chai": "~1.10.0", | ||
"mock-fs": "~2.3.2" | ||
}, | ||
"dependencies": { | ||
"kew": "~0.3.1", | ||
"gulp-util": "~2.2.10" | ||
"gulp-util": "~3.0.1" | ||
} | ||
} |
@@ -72,2 +72,3 @@ # `gulp-newer` | ||
* **options.ext** - `string` Source files will be matched to destination files with the provided extension (e.g. '.css'). | ||
* **options.map** - `function` Map relative source paths to relative destination paths (e.g. `function(relativePath) { return relativePath + '.bak'; }`) | ||
@@ -74,0 +75,0 @@ Create a [transform stream](http://nodejs.org/api/stream.html#stream_class_stream_transform_1) that passes through files whose modification time is more recent than the corresponding destination file's modification time. |
72
spec.js
@@ -59,5 +59,5 @@ var Transform = require('stream').Transform; | ||
describe('config.ext', function() { | ||
it('must be a string', function() { | ||
assert.throws(function() { | ||
@@ -73,2 +73,16 @@ newer({dest: 'foo', ext: 1}); | ||
describe('config.map', function() { | ||
it('must be a function', function() { | ||
assert.throws(function() { | ||
newer({dest: 'foo', map: 1}); | ||
}); | ||
assert.throws(function() { | ||
newer({dest: 'foo', map: 'bar'}); | ||
}); | ||
}); | ||
}); | ||
describe('dest dir that does not exist', function() { | ||
@@ -569,2 +583,56 @@ | ||
describe('custom mapping between source and dest', function() { | ||
beforeEach(function() { | ||
mock({ | ||
'file1.ext1': mock.file({ | ||
content: 'file1 content', | ||
mtime: new Date(100) | ||
}), | ||
'file2.ext1': mock.file({ | ||
content: 'file2 content', | ||
mtime: new Date(100) | ||
}), | ||
dest: { | ||
'file1.ext2': mock.file({ | ||
content: 'file1 content', | ||
mtime: new Date(100) | ||
}), | ||
'file2.ext2': mock.file({ | ||
content: 'file2 content', | ||
mtime: new Date(50) | ||
}) | ||
} | ||
}); | ||
}); | ||
afterEach(mock.restore); | ||
it('passes through one newer file', function(done) { | ||
var stream = newer({ | ||
dest: 'dest', | ||
map: function(destPath) { | ||
return destPath.replace('.ext1', '.ext2'); | ||
} | ||
}); | ||
var paths = ['file1.ext1', 'file2.ext1']; | ||
var calls = 0; | ||
stream.on('data', function(file) { | ||
assert.equal(file.path, path.resolve('file2.ext1')); | ||
++calls; | ||
}); | ||
stream.on('error', done); | ||
stream.on('end', function() { | ||
assert.equal(calls, 1); | ||
done(); | ||
}); | ||
write(stream, paths); | ||
}); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
23901
688
81
+ Addedansi-gray@0.1.1(transitive)
+ Addedansi-regex@2.1.1(transitive)
+ Addedansi-styles@2.2.1(transitive)
+ Addedansi-wrap@0.1.0(transitive)
+ Addedarray-differ@1.0.0(transitive)
+ Addedarray-uniq@1.0.3(transitive)
+ Addedbeeper@1.1.1(transitive)
+ Addedchalk@1.1.3(transitive)
+ Addedclone@1.0.4(transitive)
+ Addedcolor-support@1.1.3(transitive)
+ Addeddateformat@2.2.0(transitive)
+ Addedfancy-log@1.3.3(transitive)
+ Addedglogg@1.0.2(transitive)
+ Addedgulp-util@3.0.8(transitive)
+ Addedgulplog@1.0.0(transitive)
+ Addedhas-ansi@2.0.0(transitive)
+ Addedhas-gulplog@0.1.0(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedlodash._basecopy@3.0.1(transitive)
+ Addedlodash._basetostring@3.0.1(transitive)
+ Addedlodash._basevalues@3.0.0(transitive)
+ Addedlodash._getnative@3.9.1(transitive)
+ Addedlodash._isiterateecall@3.0.9(transitive)
+ Addedlodash._reescape@3.0.0(transitive)
+ Addedlodash._reevaluate@3.0.0(transitive)
+ Addedlodash._reinterpolate@3.0.0(transitive)
+ Addedlodash._root@3.0.1(transitive)
+ Addedlodash.escape@3.2.0(transitive)
+ Addedlodash.isarguments@3.1.0(transitive)
+ Addedlodash.isarray@3.0.4(transitive)
+ Addedlodash.keys@3.1.2(transitive)
+ Addedlodash.restparam@3.6.1(transitive)
+ Addedlodash.template@3.6.2(transitive)
+ Addedlodash.templatesettings@3.1.1(transitive)
+ Addedobject-assign@3.0.0(transitive)
+ Addedparse-node-version@1.0.1(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedreadable-stream@2.3.8(transitive)
+ Addedreplace-ext@0.0.1(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsparkles@1.0.1(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedsupports-color@2.0.0(transitive)
+ Addedthrough2@2.0.5(transitive)
+ Addedtime-stamp@1.1.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedvinyl@0.5.3(transitive)
+ Addedxtend@4.0.2(transitive)
- Removedansi-regex@0.2.1(transitive)
- Removedansi-styles@1.1.0(transitive)
- Removedarray-find-index@1.0.2(transitive)
- Removedcamelcase@2.1.1(transitive)
- Removedcamelcase-keys@2.1.0(transitive)
- Removedchalk@0.5.1(transitive)
- Removedcurrently-unhandled@0.4.1(transitive)
- Removeddateformat@1.0.12(transitive)
- Removeddecamelize@1.2.0(transitive)
- Removederror-ex@1.3.2(transitive)
- Removedfind-up@1.1.2(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedget-stdin@4.0.1(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedgulp-util@2.2.20(transitive)
- Removedhas-ansi@0.1.0(transitive)
- Removedhasown@2.0.2(transitive)
- Removedhosted-git-info@2.8.9(transitive)
- Removedindent-string@2.1.0(transitive)
- Removedis-arrayish@0.2.1(transitive)
- Removedis-core-module@2.15.1(transitive)
- Removedis-finite@1.1.0(transitive)
- Removedis-utf8@0.2.1(transitive)
- Removedload-json-file@1.1.0(transitive)
- Removedlodash._escapehtmlchar@2.4.1(transitive)
- Removedlodash._escapestringchar@2.4.1(transitive)
- Removedlodash._htmlescapes@2.4.1(transitive)
- Removedlodash._isnative@2.4.1(transitive)
- Removedlodash._objecttypes@2.4.1(transitive)
- Removedlodash._reinterpolate@2.4.1(transitive)
- Removedlodash._reunescapedhtml@2.4.1(transitive)
- Removedlodash._shimkeys@2.4.1(transitive)
- Removedlodash.defaults@2.4.1(transitive)
- Removedlodash.escape@2.4.1(transitive)
- Removedlodash.isobject@2.4.1(transitive)
- Removedlodash.keys@2.4.1(transitive)
- Removedlodash.template@2.4.1(transitive)
- Removedlodash.templatesettings@2.4.1(transitive)
- Removedlodash.values@2.4.1(transitive)
- Removedloud-rejection@1.6.0(transitive)
- Removedmap-obj@1.0.1(transitive)
- Removedmeow@3.7.0(transitive)
- Removedminimist@0.2.4(transitive)
- Removednormalize-package-data@2.5.0(transitive)
- Removedobject-assign@4.1.1(transitive)
- Removedparse-json@2.2.0(transitive)
- Removedpath-exists@2.1.0(transitive)
- Removedpath-parse@1.0.7(transitive)
- Removedpath-type@1.1.0(transitive)
- Removedpify@2.3.0(transitive)
- Removedpinkie@2.0.4(transitive)
- Removedpinkie-promise@2.0.1(transitive)
- Removedread-pkg@1.1.0(transitive)
- Removedread-pkg-up@1.0.1(transitive)
- Removedreadable-stream@1.0.34(transitive)
- Removedredent@1.0.0(transitive)
- Removedrepeating@2.0.1(transitive)
- Removedresolve@1.22.8(transitive)
- Removedsemver@5.7.2(transitive)
- Removedsignal-exit@3.0.7(transitive)
- Removedspdx-correct@3.2.0(transitive)
- Removedspdx-exceptions@2.5.0(transitive)
- Removedspdx-expression-parse@3.0.1(transitive)
- Removedspdx-license-ids@3.0.20(transitive)
- Removedstrip-ansi@0.3.0(transitive)
- Removedstrip-bom@2.0.0(transitive)
- Removedstrip-indent@1.0.1(transitive)
- Removedsupports-color@0.2.0(transitive)
- Removedsupports-preserve-symlinks-flag@1.0.0(transitive)
- Removedthrough2@0.5.1(transitive)
- Removedtrim-newlines@1.0.0(transitive)
- Removedvalidate-npm-package-license@3.0.4(transitive)
- Removedvinyl@0.2.3(transitive)
- Removedxtend@3.0.0(transitive)
Updatedgulp-util@~3.0.1