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

grunt-files-to-javascript-variables

v0.2.4

Published

Appends file contents to Javascript variables.

Downloads

23

Readme

grunt-files-to-javascript-variables

Reads the contents of JSON/HTML/Other files and appends them as variables in Javascript files. Supports simple and advanced appending.

Getting Started

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-files-to-javascript-variables --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-files-to-javascript-variables');

The "filesToJavascript" task

Explanation

If you need to build Javascript variables from (a lot of) files (e.g. HTML files) you can use this task. The tasks reads the files as strings and appends them to a defined property of a Javascript variable.

You need to specify the folder of your files to be searched recursively. The file names have the format:

(<inputFilePrefix>)(indexString)property.<inputFileExtension>

You can specify your file prefix or file extension. The property part of the file name will be used as the Javascript property of the given Javascript object. The variable of your Javascript object can be access either by simply refering to it, or by index (if it is an array). In case of index access, you should enable the 'useIndexes' option and define the 'variableIndexMap'. See the example in the source code for more information.

Configuration

In your project's Gruntfile, add a section named filesToJavascript to the data object passed into grunt.initConfig().

grunt.initConfig({
  filesToJavascript: {
      default_options: {
        options: {
            inputFilesFolder : 'test/data/matrix',
            inputFilePrefix : 'indicator-',
            useIndexes : true,
            variableIndexMap : {
                'a1-' : 0,
                'b1-' : 1,
                'c1-' : 2,
                'c2-' : 3,
                'c3-' : 4
            },
            outputBaseFile : 'test/data/gwoe-indicators-data-base.js',
            outputBaseFileVariable : 'indicators',
            outputFile : 'test/data/gwoe-indicators-data.js'
        }
      }
  },
})

Options

options.inputFilesFolder

Type: String Required

The folder containing recursively all the files to be appended.

options.inputFilePrefix

Type: String Default value: ``

If the files have prefix, you can set it.

options.inputFileExtension

Type: String Default value: any file extension

If you add a file extension, then only these files will be appended.

options.useIndexes

Type: boolean Default value: false

Whether to add the Javascript property to an array index. If set to 'true' you should specify also the 'variableIndexMap' property.

options.variableIndexMap

Type: String Default value: undefined

A map of key and values. The key is the part of the file name. The value is the index to which the Javascript variable will be added. See the configuration above for an example.

options.shouldMinify

Type: boolean Default value: false

Removes the white space from the input files. Note: JSON comments should NOT be written like // comment , but instead like /* comment */

options.outputBaseFile

Type: String Required

The path to the Javascript base file. The base file should contain the 'outputBaseFileVariable' to which the properties will be added.

options.outputBaseFileVariable

Type: String Required

The variable in the 'outputBaseFile' to which the properties will be added.

options.outputBaseFileVariableSuffix

Type: String Default Value: ``

You can define a suffix for the Javascript variable. For example if you have as variable 'indicators', useIndexes is true and the suffix is '.content', then the file contents will be added to the Javascript property 'indicators[index]..content'.

options.outputFile

Type: String Required

The Javascript output file containing the base file plus the added Javascript properties. This file will be overwritten every time the task is run and should not be edited manually!

Usage Examples

See the source code. Clone and run 'grunt --debug'

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 0.2.4 - change JSON minifying dependency, log message on file save.
  • 0.2.3 - option removeWhiteSpaces renamed shouldMinify
  • 0.2.2 - new boolean option removeWhiteSpaces
  • 0.2.1 - added support for JSON files.
  • 0.1.9 - renamed task to filesToJavascript.
  • 0.1.8 - improved debug statements and commit of templates.
  • 0.1.7 - removed unneeded debugging statements.
  • 0.1.6 - added support for configuration without indexes. See the 'createJSTemplates' grunt configuration and test/templates.
  • 0.1.5 - fixed fileNamePropertyOnly bug.
  • 0.1.4 - added a new option outputBaseFileVariableSuffix.
  • 0.1.3 - renamed task to filesToJson.
  • 0.1.1 - updated README and GitHub repository.
  • 0.1.0 - initial commit.