npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

broccoli-glob-filter

v0.1.2

Published

Base class for broccoli plugins that processes files one by one.

Downloads

36

Readme

broccoli-glob-filter

Base class for broccoli plugins that processes files one by one.

Features:

  • It stores results in the cache and rebuilds only changed files.
  • It supports glob patterns to specify files to filter.

Install

npm install broccoli-glob-filter

Usage

var Filter = require('broccoli-glob-filter')

var MyFilter = function(inputTree, options) {
  Filter.apply(this, arguments)
}
MyFilter.prototype = Object.create(Filter.prototype)
MyFilter.processFileContent = function(content, relPath, srcDir) {
  return 'content of filtered file'

  // You can return an array, when you need to create more than one file,
  // or to set special path of a file.
  return [
    {
      path: 'path/of/new/file',
      content: 'content'
    }
  ]
}

API

Filter(inputTree, [options])

Constructor.

inputTree

Type: Tree

options

Type: object

List of options

files

Type: array.<string> Default: ['**']

Glob patterns for filtered files.

targetExtension

Type: string

New extension of filtered files.

changeFileName

Type: function(string) -> string

Function that is called for every file with its filename and should return new filename of the filtered file. When this function is specified, option targetExtension doesn't work.

Filter.processFileContent(content, relPath, srcDir)

Returns: string|array.<object>

This method must be implemented in the inherited class. It processes content of each file from the inputTree that matches patterns and returns content of the new file.

If you need to create more than one file, or to set special path of a file, you can return an array of file objects with the following properties:

  • path – relative path of the new file.
  • content – content of the new file.

If you want to process a file asynchronously, you can return a promise.

content

Type: string

Content of source file.

relPath

Type: string

Relative path of source file.

srcDir

Type: string

Path of the inputTree. You can use it, when you need to read additional files from tree.

License

Public domain, see the LICENCE.md file.