1 | "use strict";
|
---|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
---|
3 | var tslib_1 = require("tslib");
|
---|
4 | var path_1 = tslib_1.__importDefault(require("path"));
|
---|
5 | var abstract_plugin_loader_js_1 = tslib_1.__importDefault(require("../less/environment/abstract-plugin-loader.js"));
|
---|
6 | /**
|
---|
7 | * Node Plugin Loader
|
---|
8 | */
|
---|
9 | var PluginLoader = function (less) {
|
---|
10 | this.less = less;
|
---|
11 | this.require = function (prefix) {
|
---|
12 | prefix = path_1.default.dirname(prefix);
|
---|
13 | return function (id) {
|
---|
14 | var str = id.substr(0, 2);
|
---|
15 | if (str === '..' || str === './') {
|
---|
16 | return require(path_1.default.join(prefix, id));
|
---|
17 | }
|
---|
18 | else {
|
---|
19 | return require(id);
|
---|
20 | }
|
---|
21 | };
|
---|
22 | };
|
---|
23 | };
|
---|
24 | PluginLoader.prototype = Object.assign(new abstract_plugin_loader_js_1.default(), {
|
---|
25 | loadPlugin: function (filename, basePath, context, environment, fileManager) {
|
---|
26 | var prefix = filename.slice(0, 1);
|
---|
27 | var explicit = prefix === '.' || prefix === '/' || filename.slice(-3).toLowerCase() === '.js';
|
---|
28 | if (!explicit) {
|
---|
29 | context.prefixes = ['less-plugin-', ''];
|
---|
30 | }
|
---|
31 | if (context.syncImport) {
|
---|
32 | return fileManager.loadFileSync(filename, basePath, context, environment);
|
---|
33 | }
|
---|
34 | return new Promise(function (fulfill, reject) {
|
---|
35 | fileManager.loadFile(filename, basePath, context, environment).then(function (data) {
|
---|
36 | try {
|
---|
37 | fulfill(data);
|
---|
38 | }
|
---|
39 | catch (e) {
|
---|
40 | console.log(e);
|
---|
41 | reject(e);
|
---|
42 | }
|
---|
43 | }).catch(function (err) {
|
---|
44 | reject(err);
|
---|
45 | });
|
---|
46 | });
|
---|
47 | },
|
---|
48 | loadPluginSync: function (filename, basePath, context, environment, fileManager) {
|
---|
49 | context.syncImport = true;
|
---|
50 | return this.loadPlugin(filename, basePath, context, environment, fileManager);
|
---|
51 | }
|
---|
52 | });
|
---|
53 | exports.default = PluginLoader;
|
---|
54 | //# sourceMappingURL=plugin-loader.js.map |
---|