mirror of
https://github.com/less/less.js.git
synced 2026-05-01 03:00:22 -04:00
56 lines
2.1 KiB
JavaScript
56 lines
2.1 KiB
JavaScript
module.exports = function(environment, fileManagers) {
|
|
var SourceMapOutput, SourceMapBuilder, ParseTree, ImportManager, Environment;
|
|
|
|
var initial = {
|
|
version: [3, 5, 2],
|
|
data: require('./data'),
|
|
tree: require('./tree'),
|
|
Environment: (Environment = require('./environment/environment')),
|
|
AbstractFileManager: require('./environment/abstract-file-manager'),
|
|
AbstractPluginLoader: require('./environment/abstract-plugin-loader'),
|
|
environment: (environment = new Environment(environment, fileManagers)),
|
|
visitors: require('./visitors'),
|
|
Parser: require('./parser/parser'),
|
|
functions: require('./functions')(environment),
|
|
contexts: require('./contexts'),
|
|
SourceMapOutput: (SourceMapOutput = require('./source-map-output')(environment)),
|
|
SourceMapBuilder: (SourceMapBuilder = require('./source-map-builder')(SourceMapOutput, environment)),
|
|
ParseTree: (ParseTree = require('./parse-tree')(SourceMapBuilder)),
|
|
ImportManager: (ImportManager = require('./import-manager')(environment)),
|
|
render: require('./render')(environment, ParseTree, ImportManager),
|
|
parse: require('./parse')(environment, ParseTree, ImportManager),
|
|
LessError: require('./less-error'),
|
|
transformTree: require('./transform-tree'),
|
|
utils: require('./utils'),
|
|
PluginManager: require('./plugin-manager'),
|
|
logger: require('./logger')
|
|
};
|
|
|
|
// Create a public API
|
|
|
|
var ctor = function(t) {
|
|
return function() {
|
|
var obj = Object.create(t.prototype);
|
|
t.apply(obj, Array.prototype.slice.call(arguments, 0));
|
|
return obj;
|
|
};
|
|
};
|
|
var t, api = Object.create(initial);
|
|
for (var n in initial.tree) {
|
|
/* eslint guard-for-in: 0 */
|
|
t = initial.tree[n];
|
|
if (typeof t === 'function') {
|
|
api[n.toLowerCase()] = ctor(t);
|
|
}
|
|
else {
|
|
api[n] = Object.create(null);
|
|
for (var o in t) {
|
|
/* eslint guard-for-in: 0 */
|
|
api[n][o.toLowerCase()] = ctor(t[o]);
|
|
}
|
|
}
|
|
}
|
|
|
|
return api;
|
|
};
|