UNPKG

1.65 kBJavaScriptView Raw
1'use strict';
2
3var path = require('path');
4var pipe = require('multipipe');
5var less = require('gulp-less');
6var gulpif = require('gulp-if');
7var coffee = require('gulp-coffee');
8var atpl = require('gulp-atpl');
9var reactify = require('gulp-reactify');
10var babel = require('gulp-babel');
11var cssParser = require('./parser/css');
12var css2jsParser = require('./parser/css2js');
13var jsParser = require('./parser/js');
14var tplParser = require('./parser/tpl');
15var jsonParser = require('./parser/json');
16var handlebarsParser = require('./parser/handlebars');
17var standalonify = require('./parser/standalonify');
18var util = require('./util');
19
20module.exports = function transport(file, opt, cb) {
21 var pkg = opt.pkg;
22 var useCss2jsParser = util.isCSSFile(file.path) &&
23 /\.js$/.test(file.url.pathname);
24 var useStandalone = function(file) {
25 return util.isStandalone(file);
26 };
27 var es6 = file.pkg.origin.spm['6to5'] || file.pkg.origin.spm['babel'];
28 var stream = pipe(
29 gulpif(/\.less$/, less({ paths: [path.dirname(file.path)] })),
30 gulpif(/\.css$/, cssParser({pkg: pkg})),
31 gulpif(useCss2jsParser, css2jsParser()),
32 gulpif(/\.coffee$/, coffee({bare: true})),
33 gulpif(/\.atpl/, atpl()),
34 gulpif(/\.js$/, pipe(
35 reactify(),
36 gulpif(es6, babel(es6)),
37 jsParser({pkg: pkg, ignore: opt.ignore})
38 )),
39 gulpif(/\.tpl$/, tplParser()),
40 gulpif(/\.json$/, jsonParser()),
41 gulpif(/\.handlebars$/, handlebarsParser({pkg: pkg})),
42 gulpif(useStandalone, standalonify({url:file.url.pathname,base:opt.base}))
43 ).once('data', function(file) {
44 cb(null, file);
45 });
46 stream.write(file);
47 stream.end();
48};