UNPKG

rump-images

Version:

Rump piece for handling images

71 lines (44 loc) 7.45 kB
'use strict'; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; var _gulp = require('gulp'); var _gulp2 = _interopRequireDefault(_gulp); var _gulpChanged = require('gulp-changed'); var _gulpChanged2 = _interopRequireDefault(_gulpChanged); var _gulpClone = require('gulp-clone'); var _gulpClone2 = _interopRequireDefault(_gulpClone); var _gulpFilter = require('gulp-filter'); var _gulpFilter2 = _interopRequireDefault(_gulpFilter); var _gulpGm = require('gulp-gm'); var _gulpGm2 = _interopRequireDefault(_gulpGm); var _gulpImagemin = require('gulp-imagemin'); var _gulpImagemin2 = _interopRequireDefault(_gulpImagemin); var _gulpPlumber = require('gulp-plumber'); var _gulpPlumber2 = _interopRequireDefault(_gulpPlumber); var _gulpRename = require('gulp-rename'); var _gulpRename2 = _interopRequireDefault(_gulpRename); var _rump = require('rump'); var _rump2 = _interopRequireDefault(_rump); var _gulpUtil = require('gulp-util'); var _path = require('path'); var name = _rump2['default'].taskName.bind(_rump2['default']); var task = _gulp2['default'].task.bind(_gulp2['default']); var configs = _rump2['default'].configs; task(name('build:images'), function () { var source = (0, _path.join)(configs.main.paths.source.root, configs.main.paths.source.images, configs.main.globs.build.images); var destination = (0, _path.join)(_rump2['default'].configs.main.paths.destination.root, _rump2['default'].configs.main.paths.destination.images); var minify = configs.main.images.minify; var stream = (0, _gulp.src)([source].concat(configs.main.globs.global)).pipe((_rump2['default'].configs.watch ? _gulpPlumber2['default'] : _gulpUtil.noop)()).pipe((_rump2['default'].configs.watch ? _gulpChanged2['default'] : _gulpUtil.noop)(destination)); // Clone retina images if available if (configs.main.images.retina) { var cloneSink = _gulpClone2['default'].sink(), retinaFilter = (0, _gulpFilter2['default'])(['**/*@2x.*'], { restore: true }); stream = stream.pipe(retinaFilter).pipe(cloneSink).pipe((0, _gulpGm2['default'])(function (gmfile, done) { return done(null, gmfile.resize('50%', '50%')); })).pipe((0, _gulpRename2['default'])(function (path) { return path.basename = path.basename.replace(/@2x$/, ''); })).pipe(retinaFilter.restore).pipe(cloneSink.tap()); } return stream.pipe((minify ? _gulpImagemin2['default'] : _gulpUtil.noop)(configs.main.images.imagemin)).pipe((0, _gulp.dest)(destination)); }); _gulp.tasks[name('build')].dep.push(name('build:images')); //# sourceMappingURL=data:application/json;base64,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QUFjLENBQUMsQ0FBQyxDQUFBIiwiZmlsZSI6ImJ1aWxkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGd1bHAsIHtkZXN0LCBzcmMsIHRhc2tzfSBmcm9tICdndWxwJ1xuaW1wb3J0IGNoYW5nZWQgZnJvbSAnZ3VscC1jaGFuZ2VkJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2d1bHAtY2xvbmUnXG5pbXBvcnQgZmlsdGVyIGZyb20gJ2d1bHAtZmlsdGVyJ1xuaW1wb3J0IGdtIGZyb20gJ2d1bHAtZ20nXG5pbXBvcnQgaW1hZ2VtaW4gZnJvbSAnZ3VscC1pbWFnZW1pbidcbmltcG9ydCBwbHVtYmVyIGZyb20gJ2d1bHAtcGx1bWJlcidcbmltcG9ydCByZW5hbWUgZnJvbSAnZ3VscC1yZW5hbWUnXG5pbXBvcnQgcnVtcCBmcm9tICdydW1wJ1xuaW1wb3J0IHtub29wfSBmcm9tICdndWxwLXV0aWwnXG5pbXBvcnQge2pvaW59IGZyb20gJ3BhdGgnXG5cbmNvbnN0IG5hbWUgPSA6OnJ1bXAudGFza05hbWUsXG4gICAgICB0YXNrID0gOjpndWxwLnRhc2ssXG4gICAgICB7Y29uZmlnc30gPSBydW1wXG5cbnRhc2sobmFtZSgnYnVpbGQ6aW1hZ2VzJyksICgpID0+IHtcbiAgY29uc3Qgc291cmNlID0gam9pbihjb25maWdzLm1haW4ucGF0aHMuc291cmNlLnJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLnBhdGhzLnNvdXJjZS5pbWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlncy5tYWluLmdsb2JzLmJ1aWxkLmltYWdlcyksXG4gICAgICAgIGRlc3RpbmF0aW9uID0gam9pbihydW1wLmNvbmZpZ3MubWFpbi5wYXRocy5kZXN0aW5hdGlvbi5yb290LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVtcC5jb25maWdzLm1haW4ucGF0aHMuZGVzdGluYXRpb24uaW1hZ2VzKSxcbiAgICAgICAge21pbmlmeX0gPSBjb25maWdzLm1haW4uaW1hZ2VzXG4gIGxldCBzdHJlYW0gPSBzcmMoW3NvdXJjZV0uY29uY2F0KGNvbmZpZ3MubWFpbi5nbG9icy5nbG9iYWwpKVxuICAgICAgICAucGlwZSgocnVtcC5jb25maWdzLndhdGNoID8gcGx1bWJlciA6IG5vb3ApKCkpXG4gICAgICAgIC5waXBlKChydW1wLmNvbmZpZ3Mud2F0Y2ggPyBjaGFuZ2VkIDogbm9vcCkoZGVzdGluYXRpb24pKVxuXG4gIC8vIENsb25lIHJldGluYSBpbWFnZXMgaWYgYXZhaWxhYmxlXG4gIGlmKGNvbmZpZ3MubWFpbi5pbWFnZXMucmV0aW5hKSB7XG4gICAgY29uc3QgY2xvbmVTaW5rID0gY2xvbmUuc2luaygpLFxuICAgICAgICAgIHJldGluYUZpbHRlciA9IGZpbHRlcihbJyoqLypAMnguKiddLCB7cmVzdG9yZTogdHJ1ZX0pXG4gICAgc3RyZWFtID0gc3RyZWFtXG4gICAgICAucGlwZShyZXRpbmFGaWx0ZXIpXG4gICAgICAucGlwZShjbG9uZVNpbmspXG4gICAgICAucGlwZShnbSgoZ21maWxlLCBkb25lKSA9PiBkb25lKG51bGwsIGdtZmlsZS5yZXNpemUoJzUwJScsICc1MCUnKSkpKVxuICAgICAgLnBpcGUocmVuYW1lKHBhdGggPT4gcGF0aC5iYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUucmVwbGFjZSgvQDJ4JC8sICcnKSkpXG4gICAgICAucGlwZShyZXRpbmFGaWx0ZXIucmVzdG9yZSlcbiAgICAgIC5waXBlKGNsb25lU2luay50YXAoKSlcbiAgfVxuXG4gIHJldHVybiBzdHJlYW1cbiAgICAucGlwZSgobWluaWZ5ID8gaW1hZ2VtaW4gOiBub29wKShjb25maWdzLm1haW4uaW1hZ2VzLmltYWdlbWluKSlcbiAgICAucGlwZShkZXN0KGRlc3RpbmF0aW9uKSlcbn0pXG5cbnRhc2tzW25hbWUoJ2J1aWxkJyldLmRlcC5wdXNoKG5hbWUoJ2J1aWxkOmltYWdlcycpKVxuIl19