/
node.js
executable file
·117 lines (75 loc) · 3.33 KB
/
node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
"use strict";
var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"];
var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"];
var _interopRequire = require("babel-runtime/helpers/interop-require")["default"];
exports.__esModule = true;
exports.transformFile = transformFile;
exports.transformFileSync = transformFileSync;
var _lodashLangIsFunction = require("lodash/lang/isFunction");
var _lodashLangIsFunction2 = _interopRequireDefault(_lodashLangIsFunction);
var _fs = require("fs");
var _fs2 = _interopRequireDefault(_fs);
//
//
var _util = require("../util");
var util = _interopRequireWildcard(_util);
var _babelMessages = require("babel-messages");
var messages = _interopRequireWildcard(_babelMessages);
var _babelTypes = require("babel-types");
var t = _interopRequireWildcard(_babelTypes);
var _babelTraverse = require("babel-traverse");
var _babelTraverse2 = _interopRequireDefault(_babelTraverse);
var _transformationFileOptionsOptionManager = require("../transformation/file/options/option-manager");
var _transformationFileOptionsOptionManager2 = _interopRequireDefault(_transformationFileOptionsOptionManager);
//
var _transformationPipeline = require("../transformation/pipeline");
var _transformationPipeline2 = _interopRequireDefault(_transformationPipeline);
var _transformationFile = require("../transformation/file");
exports.File = _interopRequire(_transformationFile);
var _transformationFileOptionsConfig = require("../transformation/file/options/config");
exports.options = _interopRequire(_transformationFileOptionsConfig);
var _toolsBuildExternalHelpers = require("../tools/build-external-helpers");
exports.buildExternalHelpers = _interopRequire(_toolsBuildExternalHelpers);
var _babelTemplate = require("babel-template");
exports.template = _interopRequire(_babelTemplate);
var _package = require("../../package");
exports.version = _package.version;
exports.util = util;
exports.messages = messages;
exports.types = t;
exports.traverse = _babelTraverse2["default"];
exports.OptionManager = _transformationFileOptionsOptionManager2["default"];
exports.Pipeline = _transformationPipeline2["default"];
var pipeline = new _transformationPipeline2["default"]();
var transform = pipeline.transform.bind(pipeline);
exports.transform = transform;
var transformFromAst = pipeline.transformFromAst.bind(pipeline);
exports.transformFromAst = transformFromAst;
//
function transformFile(filename /*: string*/, opts /*:: ?: Object*/, callback /*: Function*/) {
if (_lodashLangIsFunction2["default"](opts)) {
callback = opts;
opts = {};
}
opts.filename = filename;
_fs2["default"].readFile(filename, function (err, code) {
var result = undefined;
if (!err) {
try {
result = transform(code, opts);
} catch (_err) {
err = _err;
}
}
if (err) {
callback(err);
} else {
callback(null, result);
}
});
}
function transformFileSync(filename /*: string*/) /*: string*/ {
var opts /*:: ?: Object*/ = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
opts.filename = filename;
return transform(_fs2["default"].readFileSync(filename, "utf8"), opts);
}