UNPKG

1.02 kBJavaScriptView Raw
1var _ = require('lodash');
2var async = require('async');
3var recast = require('recast');
4
5var defineParse = require('./lib/defineParse');
6var requireParse = require('./lib/requireParse');
7var pkg = require('./package.json');
8
9module.exports = function(options, callback) {
10 var context = this;
11 var contents = context.contents.toString();
12
13 if (!contents.trim()) {
14 return callback();
15 }
16
17 var ast;
18 try {
19 ast = recast.parse(contents);
20 } catch (err) {
21 return callback(err);
22 }
23
24 // 设置AMD依赖
25 context.extra.AMDDependencies = context.extra.AMDDependencies || [];
26
27 async.parallel([
28 _.partial(requireParse, context, options, ast),
29 _.partial(defineParse, context, options, ast)
30 ], function(err) {
31 if (err) {
32 return callback(err);
33 }
34
35 try {
36 context.contents = new Buffer(recast.print(ast).code);
37 } catch (err) {
38 return callback(err);
39 }
40
41 callback();
42 });
43};
44
45module.exports.toString = function() {
46 return [pkg.name, pkg.version].join('@');
47};
48