| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /**
- * Plugin Manager
- */
- var PluginManager = function(less) {
- this.less = less;
- this.visitors = [];
- this.preProcessors = [];
- this.postProcessors = [];
- this.installedPlugins = [];
- this.fileManagers = [];
- };
- /**
- * Adds all the plugins in the array
- * @param {Array} plugins
- */
- PluginManager.prototype.addPlugins = function(plugins) {
- if (plugins) {
- for (var i = 0; i < plugins.length; i++) {
- this.addPlugin(plugins[i]);
- }
- }
- };
- /**
- *
- * @param plugin
- */
- PluginManager.prototype.addPlugin = function(plugin) {
- this.installedPlugins.push(plugin);
- plugin.install(this.less, this);
- };
- /**
- * Adds a visitor. The visitor object has options on itself to determine
- * when it should run.
- * @param visitor
- */
- PluginManager.prototype.addVisitor = function(visitor) {
- this.visitors.push(visitor);
- };
- /**
- * Adds a pre processor object
- * @param {object} preProcessor
- * @param {number} priority - guidelines 1 = before import, 1000 = import, 2000 = after import
- */
- PluginManager.prototype.addPreProcessor = function(preProcessor, priority) {
- var indexToInsertAt;
- for (indexToInsertAt = 0; indexToInsertAt < this.preProcessors.length; indexToInsertAt++) {
- if (this.preProcessors[indexToInsertAt].priority >= priority) {
- break;
- }
- }
- this.preProcessors.splice(indexToInsertAt, 0, {preProcessor: preProcessor, priority: priority});
- };
- /**
- * Adds a post processor object
- * @param {object} postProcessor
- * @param {number} priority - guidelines 1 = before compression, 1000 = compression, 2000 = after compression
- */
- PluginManager.prototype.addPostProcessor = function(postProcessor, priority) {
- var indexToInsertAt;
- for (indexToInsertAt = 0; indexToInsertAt < this.postProcessors.length; indexToInsertAt++) {
- if (this.postProcessors[indexToInsertAt].priority >= priority) {
- break;
- }
- }
- this.postProcessors.splice(indexToInsertAt, 0, {postProcessor: postProcessor, priority: priority});
- };
- /**
- *
- * @param manager
- */
- PluginManager.prototype.addFileManager = function(manager) {
- this.fileManagers.push(manager);
- };
- /**
- *
- * @returns {Array}
- * @private
- */
- PluginManager.prototype.getPreProcessors = function() {
- var preProcessors = [];
- for (var i = 0; i < this.preProcessors.length; i++) {
- preProcessors.push(this.preProcessors[i].preProcessor);
- }
- return preProcessors;
- };
- /**
- *
- * @returns {Array}
- * @private
- */
- PluginManager.prototype.getPostProcessors = function() {
- var postProcessors = [];
- for (var i = 0; i < this.postProcessors.length; i++) {
- postProcessors.push(this.postProcessors[i].postProcessor);
- }
- return postProcessors;
- };
- /**
- *
- * @returns {Array}
- * @private
- */
- PluginManager.prototype.getVisitors = function() {
- return this.visitors;
- };
- /**
- *
- * @returns {Array}
- * @private
- */
- PluginManager.prototype.getFileManagers = function() {
- return this.fileManagers;
- };
- module.exports = PluginManager;
|