New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

gulp-file-checksum

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gulp-file-checksum

A gulp plugin for generating checksum file.

latest
Source
npmnpm
Version
2.0.2
Version published
Weekly downloads
609
17.12%
Maintainers
1
Weekly downloads
 
Created
Source

gulp-file-checksum Github workflow Coverage Status

Installation

Install pakcage with NPM and add it to your development dependencies

npm install --save-dev gulp-file-checksum

Usage

Generate a checksum file

The following generages a file dist/package_checksum.txt in the format defined by the template.

const fileChecksum = require('gulp-file-checksum');
const template = `
MD5     : {md5}
SHA1    : {sha1}
CRC32   : {crc32}
size    : {size} Bytes
Datetime: {dateime}
`
gulp.task('checksum',() => {
    return gulp.src('dist/package.zip', {
        buffer: false // for large files
    })
    .pipe(fileChecksum({
        template: template,
        output: '{filename}_checksum.txt'
    }))
    .pipe(gulp.dest('dist'))
})

The contents of the checksum file will look like this:

MD5     : 2f90ce3426541817e0dfd01cae086b60
SHA1    : d817d144dd1397efc52b9ce1dfc9e5713e7265e6
CRC32   : dfc51702
size    : 7051797 Bytes
Datetime: 2018-07-28 21:48:34

Options

  • template - string

    A template allow users to customize the output format and use placeholder syntax({}) to define the output content at the specified location. The built-in placeholders are as follow:

    • md5,sha1,sha256,sha512 etc. - All hash algorithms are provided by crypto

    • crc1,crc8,crc24,crc32 etc. - All crc algorithms are provided by crc

    • size - File size in bytes

    • datetime - {datetime:YYYY-MM-DD HH:mm:ss A}, The time format please refer to the documentation of momentjs

    • run - Run unix shell commands defined in shellCommand option via shelljs and get the results:

      fileChecksum({
          template: `{run:git-revision}`,
          shellCommands: {
              'git-revision': `
                  git rev-parse --short HEAD
              `
          }
      })
      
  • prefix & suffix - string [optional]

    Defines the prefix and suffix of the placeholder in your template. Default: { and }

  • output - string

    The name of output file. Support these placeholders: {basename}, {extname}, {filename};

  • plugins - class

    Sometimes you need to add a custom placeholder in your template, this option allows you to do that like the following example:

    // {time:yyyy-MM-dd}
    class FormatedTimePlugin {
        static get names() {
            return ['time'];
        }
        constructor(file, gulpOptions, placeholder) {
            const firstColonIndex = placeholder.indexOf(':');
            if(firstColonIndex > -1) {
                this.format = placeholder.substring(firstColonIndex);
            } else {
                this.format = "YYYY-MM-DDTHH:mm:ss.SSS"; // default format
            }
        }
        preprocess (template) {
            //
        }
        receiveChunk (chunk) {
            // ignore
        }
        finish(){
            return {
                time: someTimeLibray(new Date(), this.format);
            };
        }
    }
    // gulpfile.js
    fileChecksum({
        template: `
        Date: {time:YYYY-MM-DD}
        `.trim(),
        plugins: [FormatedTimePlugin]
    })
    

Keywords

gulp

FAQs

Package last updated on 05 Aug 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts