alphax

Fueling your scaffolding.

Stats

stars ๐ŸŒŸissues โš ๏ธupdated ๐Ÿ› created ๐Ÿฃsize ๐Ÿ‹๏ธโ€โ™€๏ธ
1612May 12, 2021Jan 7, 2018Minified + gzip package size for alphax in KB

Readme

Fueling your scaffolding.

NPM version NPM downloads Build Status donate

What is alphaX?

alphaX provides very simple JSON-like and chained APIs that allow you to manipulate files freely. Now it supports glob, task control, middleware, rename, filter and transform file as well.

BTW, alphaX was named from the Greek initials ฮฑ and spaceX I admire.

Features

  • ๐Ÿš€ Fast, based on stream.
  • ๐Ÿ“ฆ Chained API.
  • ๐Ÿ’… Using middlewares to process each file.
  • ๐Ÿšจ Asynchronous task control.
  • ๐ŸŒˆ Filter or Rename files with a pure function or configuration.
  • ๐Ÿ’Ž Support Condiitonal Manipulation

Install

npm i alphax --save 
# Pay attention to the case, NPM does not support capitals. ๐Ÿ˜…
# Or yarn add alphax

Usage

import alphax from 'alphax'
// Or cjs: const app = require('alphax')
const app = alphax()
  • Chained Style
alphax()
  .src('**')
  .task(task1)
  .task(task2)
  .task(task3)
  .use(file => file.content += Date.now())
  .rename(filepath => filepath.replace('{name}', name))
  .rename(filepath => filepath.replace('{age}', age))
  .transform(content => content.replace('{name}', name))
  .filter(filepath => filepath.endWith('.js'))
  .filter(filepath => !filepath.startWith('test'))
  .dest('dist')
  .then(files => console.log(files))
  .catch(error => console.log(error))
  • Config Style
const config = {
  tasks: [task1, task3, task3],
  use: file => file.content += Date.now(),
  rename: {
    '{name}': name,
    '{age}': age
  },
  filter: {
    'app.js': true,
    'test.js': false
  },
  transform(content) {
    return content.replace('{name}', name)
  }
}

alphax()
  .src('**', config)
  .dest('dist')
  .then(files => console.log(files))
  .catch(error => console.log(error))

For detailed usage please head to v2js.com/alphax.

Projects Using alphaX

  • poz: Programmable scaffolding generator. ๐Ÿน
  • Feel free to add yours here :)

Prior art

alphaX wouldn't exist if it wasn't for excellent prior art, alphaX is inspired by these projects:

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

alphaX ยฉ ulivz, Released under the MIT License.
Authored and maintained by ulivz with help from contributors (list).

github.com/ulivz ยท GitHub @ulivz

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.