1. gulp-wrap
A gulp plugin to wrap the stream contents with a template.
gulp-wrap
Package: gulp-wrap
Created by: adamayres
Last modified: Sat, 18 Jun 2022 18:18:35 GMT
Version: 0.15.0
Downloads: 78,362
Repository: https://github.com/adamayres/gulp-wrap

Install

npm install gulp-wrap
yarn add gulp-wrap

gulp-wrap

NPM version
Build Status
Coverage Status
Dependency Status
devDependency Status

A gulp plugin to wrap the stream contents with a lodash template.

Usage

First, install gulp-wrap as a development dependency:

 npm install --save-dev gulp-wrap

Then, add it to your gulpfile.js:

Wrap the contents with an inline template:

 var wrap = require("gulp-wrap");

gulp.src("./src/*.json")
    .pipe(wrap('angular.module(\'text\', []).value(<%= contents %>);', {}, { parse: false /* do not parse the JSON file for template data */ }))
    .pipe(gulp.dest("./dist"));

Wrap the contents with a template from file:

 var wrap = require("gulp-wrap");

gulp.src("./src/*.json")
    .pipe(wrap({ src: 'path/to/template.txt'}))
    .pipe(gulp.dest("./dist"));

Use parsed contents within a template (supports JSON and YAML):

 var wrap = require("gulp-wrap");

gulp.src("./src/*.json")
    .pipe(wrap('Hello, <%= contents.title %>, have a <%= contents.adjective %> day.'))
    .pipe(gulp.dest("./dist"));

Provide additional data and options for template processing:

 var wrap = require("gulp-wrap");

gulp.src("./src/*.json")
    .pipe(wrap('BEFORE <%= data.contents %> <%= data.someVar %> AFTER', { someVar: 'someVal'}, { variable: 'data' }))
    .pipe(gulp.dest("./dist"));

This gulp plugin wraps the stream contents in a template. If you want the stream contents to be the templates use the gulp-template plugin.

Template

The stream contents will be available in the template using the contents key. If the file extension is json, yaml, or yml then the contents will be parsed before being passed to the template. Properties from the vinyl file will be available in the template under the file object and are local to that stream. User supplied data values will always take precedence over namespace clashes with the file properties.

API

wrap(template[,data][,options])

template

Type: String or Object or Function

The template to used. When a String then it will be used as the template. When an Object then the template will be loaded from file. When a Function then the function will be called and should return the template content. This function get the data object as first parameter.

template.src

Type: String

The file location of the template.

data

Type: Object or Function

The data object that is passed on to the lodash template call. When a Function then the function will be called and should return the Object data used in the template.

options

Type: Object or Function

The options object that is passed on to the lodash template call. When a Function then the function will be called and should return the Object used as the options.

options.parse

Type: Boolean

Set to explicit false value to disable automatic JSON and YAML parsing.

options.engine

Type: String

Set the consolidate template engine to use. (default to lodash).
Using another engine that lodash may require installation of additional node package.

License

MIT License

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code