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

gulp-ng-constant-fork

v0.4.1

Published

Gulp plugin for dynamic generation of angular constant modules. Forked version of https://github.com/guzart/gulp-ng-constant with extra options.

Downloads

376

Readme

gulp-ng-constant-fork

Build Status

Information

Usage

This plugin is a fork of guzarts plugin gulp-ng-constant so credits to him. Use this in the same way as the original plugin. This plugin was created to solve the deps false issue and the problem that the plugin cannot be called without referencing a config.json file. Plus it also ads a interpolation option used by lodash to detect data property values to inject in the templates.

configuration in gulpfile.js

gulpfile.js

var ngConstant = require('gulp-ng-constant-fork');

gulp.task('config', function () {
    ngConstant({
        dest: 'app.config.js',
        name: 'my.module.config',
        noFile: true,
        deps: false,
        constants: { ENV: 'dev' }
    })
    // Writes app.config.js to dist/ folder
    .pipe(gulp.dest('dist'));
});

dist/app.config.js (output)

angular.module("my.module.config")
.constant("ENV", "dev");

configuration in gulpfile.js

gulpfile.js

var ngConstant = require('gulp-ng-constant-fork');

gulp.task('config', function () {
    ngConstant({
        dest: 'app.config.js',
        name: 'my.module.config',
        noFile: true,
        deps: false,
        interpolate: /\{%=(.+?)%\}/g,
        wrap: '"use strict";\n// DO NOT EDIT THIS FILE, EDIT THE GULP TASK SETTINGS INSTEAD WHICH GENERATES THIS FILE\n<%= __ngModule %>',
        constants: { ENV: 'dev' }
    })
    // Writes app.config.js to dist/ folder
    .pipe(gulp.dest('dist'));
});

dist/app.config.js (output)

"use strict";
// DO NOT EDIT THIS FILE, EDIT THE GULP TASK  SETTINGS INSTEAD WHICH GENERATES THIS FILE
angular.module("my.module.config")
.constant("ENV", "dev");

configuration in gulpfile.js

gulpfile.js

var ngConstant = require('gulp-ng-constant-fork');

gulp.task('config', function () {
  gulp.src('app/config.json')
    .pipe(ngConstant({
      name: 'my.module.config',
      deps: ['ngAnimate'],
      constants: { myPropCnt: 'hola!' },
      wrap: 'amd',
    }))
    // Writes config.js to dist/ folder
    .pipe(gulp.dest('dist'));
});

app/config.json

{
  "myFirstCnt": true,
  "mySecondCnt": { "hello": "world" }
}

dist/config.js (output)

define(["require", "exports"], function(require, exports) {
  return angular.module("my.module.config", ["ngAnimate"])
    .constant("myFirstCnt", true)
    .constant("mySecondCnt", { "hello": "world" })
    .constant("myPropCnt", "hola!");
});

configuration in config.json

gulpfile.js

var ngConstant = require('gulp-ng-constant-fork');

gulp.task('config', function () {
  gulp.src('app/config.json')
    .pipe(ngConstant())
    // Writes config.js to dist/ folder
    .pipe(gulp.dest('dist'));
});

app/config.json

{
  "name": "my.module.config",
  "deps": ["ngAnimate"],
  "wrap": "commonjs",
  "constants": {
    "myFirstCnt": true,
    "mySecondCnt": { "hello": "world" }
  }
}

dist/config.js (output)

module.exports = angular.module("my.module.config", ["ngAnimate"])
    .constant("myFirstCnt", true)
    .constant("mySecondCnt", { "hello": "world" })
    .constant("myPropCnt", "hola!");

Options

options.name

Type: string
Default: undefined
Overrides: json.name

The module name. This property will override any name property defined in the input json file.

options.dest

Type: string
Default: src file name or constant if noFile is true
optional

The path where the generated constant module should be saved. Use to change output filename.

options.constants

Type: Object | string
Default: undefined
Exends/Overrides: json.constants

Constants to defined in the module. Can be a JSON string or an Object. This property extends the one defined in the input json file. If there are properties with the same name, this properties will override the ones from the input json file.

options.deps

Type: array<string>|boolean
Default: []
Overrides: json.deps
optional

An array that specifies the default dependencies a module should have. When your module should not have any modules, so you can append the constants to an already existing one, you can set deps to false. This property will override any deps property defined in the input json file.

options.noFile

Type: boolean
Default: false
optional

Boolean that tells if the configuration should not be read from a src file. Set this to true if the plugin is not called inside a pipe and the configuration is not loaded from a file.

options.wrap

Type: boolean|string
Default: false
Available: ['amd', 'commonjs']
optional

A boolean to active or deactive the automatic wrapping. A string who will wrap the result of file, use the <%= __ngModule %> variable to indicate where to put the generated module content. A string with 'amd' that wraps the module as an AMD module, compatible with RequireJS

options.space

Type: string
Default: '\t'
optional

A string that defines how the JSON.stringify method will prettify your code.

options.template

Type: string
Default: content of tpls/constant.tpl.ejs
optional

EJS template to apply when creating the output configuration file. The following variables are passed to the template during render:

  • moduleName: the module name (string)
  • deps: the module dependencies (array<string>)
  • constants: the module constants (array<contantObj>)
    • where a constantObj is an object with a name and a value, both strings.

options.templatePath

Type: string
Default: 'tpls/constant.tpl.ejs'
optional

Location of a custom template file for creating the output configuration file. Defaults to the provided constants template file if none provided.

options.interpolate

Type: Regexp Default: undefined which sets the default lodash interpolation which detects <%= dataProperty %>

optional

Can be used to set the loadash regexp used to detect data property values to inject.