Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/maximilianschmitt/ng-autobootstrap

Automatically create bootstrap files for requiring your angular modules with browserify.
https://github.com/maximilianschmitt/ng-autobootstrap

Last synced: 2 months ago
JSON representation

Automatically create bootstrap files for requiring your angular modules with browserify.

Awesome Lists containing this project

README

        

# ng-autobootstrap

![Travis Build](http://img.shields.io/travis/maximilianschmitt/ng-autobootstrap.svg?style=flat)

> Automatically create bootstrap files for including your angular modules (like controllers and directives) with browserify.
>
> Inspired by [ng-classify](https://github.com/CaryLandholt/ng-classify).

## Gulp plugin

Check out [gulp-ng-autobootstrap](https://github.com/maximilianschmitt/gulp-ng-autobootstrap)!

## Installation

```
npm install ng-autobootstrap
```

## API

### new NgAutoBootstrap([options])

Creates a new `NgAutoBootstrap` object with the specified options.

### ngAutoBootstrap.bootstrap(filePaths)

Returns a string with the generated bootstrap file contents.

## Configuring ng-autobootstrap

### Options

Override default options by passing them to the `NgAutoBootstrap` constructor.

``` js
var ngAutoBootstrap = new NgAutoBootstrap({
bootstrap: {
path: 'config/bootstrap.js'
}
});
```

#### options.bootstrap

This is where you configure the path to your bootstrap file. ng-autobootstrap needs to know this paths so that it can generate relative paths to the angular modules that are being pulled in.

#### options.moduleTypes.{{moduleType}}.path

A glob for identifying the respective module type by its file path.

#### options.moduleTypes.{{moduleType}}.casing

How the file name should be transformed to its module name. Supports everything that [change-case](https://github.com/blakeembrey/change-case) supports.

E.g. if a controller file is called `my-awesome-controller.js`, it will be registered as `MyAwesomeController` with `pascalCase` or `myAwesomeController` with `camelCase` in your angular app.

#### options.moduleTypes.{{moduleType}}.prefix

A prefix to add to each module name of the respective module type.

#### options.moduleTypes.{{moduleType}}.suffix

A suffix to add to each module name of the respective module type.

#### options.moduleTypes.{{moduleType}}.omit

A string to omit from the filename before casing it.

E.g. if a service file is called `user-service.js` and you set `options.moduleTypes.service.omit = '-service'`, then the resulting module will be registered with angular via `app.service('User', ...);` (assuming PascalCasing).

### Default options

Prefixes, suffixes and omits are not set by default.

``` js
var defaultOptions = {
bootstrap: {
path: 'bootstrap.js'
},
moduleTypes: {
animation: {
path: '**/animations/*.js',
casing: 'paramCase'
},
constant: {
path: '**/constants/*.js',
casing: 'constant'
},
controller: {
path: '**/controllers/*.js',
casing: 'pascalCase'
},
directive: {
path: '**/directives/*.js',
casing: 'camelCase'
},
factory: {
path: '**/factories/*.js',
casing: 'pascalCase'
},
filter: {
path: '**/filters/*.js',
casing: 'camelCase'
},
provider: {
path: '**/providers/*.js',
casing: 'camelCase'
},
service: {
path: '**/services/*.js',
casing: 'camelCase'
},
value: {
path: '**/values/*.js',
casing: 'camelCase'
},
// config modules are pulled in like this: app.config(require('./path/to-config'))
config: {
path: '**/*-config.js'
}
}
};
```