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

comment-eraser

v3.0.2

Published

comment-eraser is a Node.js package that removes comments from JavaScript files efficiently. It offers customizable options for tailoring the comment removal process and includes an interactive mode for selective file cleanup. Overall, comment-eraser simp

Downloads

21

Readme

comment-eraser NPM version NPM monthly downloads NPM total downloads

Removing comments from JavaScript files has never been this easy.

Please consider following this project's author, Sina Bayandorian, and consider starring the project to show your :heart: and support.

Table of Contents

Install

Install with npm:

$ npm install --save comment-eraser

Usage

const { erase } = require('comment-eraser');

// reads eraser.config.json - falls back to DEFAULT_CONFIG if not specified
// removes comments from specified .js files
erase();
const { eraseFromString } = require('comment-eraser');

// config
const config = {
  type: 'both',
  code: jsCodeString
};

const [commentsRemoved, removedCharsCount, elapsedTime] = eraseFromString(config);

console.log(commentsRemoved, removedCharsCount, elapsedTime);

API

erase

Erases comments from the specified files - Read Configuration and Interactive Mode for more.

Params

  • configPath: String - optional - default is 'eraser.config.json'

Returns

  • { filePath, outputPath, commentsRemoved, removedCharsCount, elapsedTime }[] | undefined: { String, String, String, Number, TimeStamp }[ ] | undefined

Notes

  • note that when interactive is set to true the logs will no longer be available to you and the function will return undefined

Example

// note that this function needs no argument to be passed to it
// since it reads and utilizes eraser.config.json

const { erase } = require('comment-eraser');

const logs = erase();
console.log(logs);

eraseFromString

Erases comments from the given string.

Params

  • code: String
  • config: Object
    • type: 'both' | 'inline' | 'block'
    • excludePatterns: String[ ] - specifies comment patterns not to be excluded - default is []
    • note that each pattern must be a valid RegExp pattern or an error will be thrown
    • output: { path: String, file: String, append: Boolean }
      • path: String - default is ''
      • file: String - default is 'output.js'
      • append: Boolean - default is false

Returns

  • [commentsRemoved, removedCharsCount, outputPath, elapsedTime]: [ String, Number, (String | null), TimeStamp ]

Notes

  • if no output object is passed then the result won't be written to a file
  • in order to use the default output config pass {} as the outputoption
  • if two function calls have the same output option:
    • append set to true - all results will be appended to the file
    • append set to false - only the result of the last function call will be written to the file

Example

// note that in this example no new file is created
// as no config or output option is passed down to the function

const { eraseFromString } = require('comment-eraser');

const sampleString = '// a comment \n sample js code';
const [ commentsRemoved, removedCharsCount, elapsedTime ] = eraseFromString(sampleString);
console.log(commentsRemoved, removedCharsCount, outputPath, elapsedTime);

Configuration

utilized by the erase function

eraser.config.json

  • type: 'both' | 'inline' | 'block' specifies the comment type to be erased
    • both: default - all comments
    • inline: inline comments only
    • block: block comments only
  • include: String | String[ ] - glob pattern - js files to be included - default is ./**/*
  • exclude: String[ ] - glob pattern - js files to be excluded - default is []
  • writeToOutput: Boolean - specifies whether to write the output string into specific files - default is true
    • based on replace, outputDir, postfix
  • replace: Boolean - specifies whether to replace the file's content after removing the comments or not - default is false
    • will override outputDir and postfixif specified
  • outputDir: String - specifies the directory in which the new files are going the be created - default is no-comments
  • postfix: String - specifies the postfix to be added to the new files generated after the comment removal process - default is -no-comments
  • excludePatterns: String[ ] - specifies comment patterns not to be excluded - default is []
    • note that each pattern must be a valid RegExp pattern or an error will be thrown
  • interactive: Boolean - activates interactive mode if set to true - default is false

Interactive Mode

In this mode a temp file named prelog is created in which you can specify which files to include or not include one by one and then hit Enter to continue the process based on the prelog file

  • set interactive to true to activate in eraser.config.json
  • only available when using the erase function
  • =y: include file - default for all files
  • =n: exclude file
  • note that the prelog file will be removed after the process is finished

Exmaple - prelog

sample.js=y
sample-2.js=n

Cli Tool

eraser-cli - the cli tool for this package easily integrate the comment-eraser into your build process or install it globally and use it wherever you want