Skip to content
This repository has been archived by the owner on May 1, 2023. It is now read-only.

stfsy/broccoli-plugin-adapter

Repository files navigation

Broccoli Plugin Adapter

Build Status Dependency Status DevDependency Status Npm downloads Npm Version Git tag Github issues License

Broccoli plugin adapter. Allows easy implementation of broccoli plugins.

Example

'use strict'

const BroccoliPluginAdapter = require('broccoli-plugin-adapter')

const tag = require('./tag')
const Injector = require('./injector')
const livereload = require('livereload')

/**
 * Let your plugin extend BroccoliPluginAdapter
 **/
class BroccoliLivereload extends BroccoliPluginAdapter {

    constructor(inputNodes, options) {
        super(inputNodes, options)
    }

    /**
     * Override handle content to get access to file contents. Be aware that
     * to handle text files you have to encode the binary content.
     **/
    handleContent(path, content) {
        if (this._building) {
            return content
        }

        // Notify live reload server that file changed
        this._livereload.filterRefresh(path)

        const inject = this._injector.matches(path)

        if (inject) {
            return this._injector.inject(content)
        }

        return content
    }
}

module.exports = BroccoliLivereload

Installation

npm install broccoli-plugin-adapter --save-dev

License

This project is distributed under the MIT license.