1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import path from 'path';
- import AbstractPluginLoader from '../less/environment/abstract-plugin-loader.js';
- /**
- * Node Plugin Loader
- */
- class PluginLoader extends AbstractPluginLoader {
- constructor(less) {
- super();
- this.less = less;
- this.require = prefix => {
- prefix = path.dirname(prefix);
- return id => {
- const str = id.substr(0, 2);
- if (str === '..' || str === './') {
- return require(path.join(prefix, id));
- }
- else {
- return require(id);
- }
- };
- };
- }
- loadPlugin(filename, basePath, context, environment, fileManager) {
- const prefix = filename.slice(0, 1);
- const explicit = prefix === '.' || prefix === '/' || filename.slice(-3).toLowerCase() === '.js';
- if (!explicit) {
- context.prefixes = ['less-plugin-', ''];
- }
- return new Promise((fulfill, reject) => {
- fileManager.loadFile(filename, basePath, context, environment).then(
- data => {
- try {
- fulfill(data);
- }
- catch (e) {
- console.log(e);
- reject(e);
- }
- }
- ).catch(err => {
- reject(err);
- });
- });
- }
- }
- export default PluginLoader;
|