UNPKG

als-remove-js-comments

Version:

A utility for removing JavaScript comments, supporting both single-line and multi-line comments with proper handling of string literals.

116 lines (83 loc) 2.89 kB
# als-remove-js-comments `als-remove-js-comments` is a simple and efficient utility for removing comments from JavaScript code. It supports both single-line (`//`) and multi-line (`/* */`) comments, while properly handling string literals to avoid removing comments inside strings. Works in NodeJs and browser. Supports jsx comments too `{/**/}`. ## Installation You can install the library via npm: ```bash npm install als-remove-js-comments ``` ## Usage ```js const removeComments = require('als-remove-js-comments'); const code = ` const a = 5; // This is a comment const str = "This is a string with // inside"; /* This is a multi-line comment */ const b = 10; `; const result = removeComments(code); console.log(result); // Output: // const a = 5; // const str = "This is a string with // inside"; // const b = 10; ``` In browser: ```html <script src="/node_modules/als-remove-js-comments/remove-comments.js"></script> <script> removeComments('some text // with comments') </script> ``` ## API ### `removeComments(code: string): string` Removes all single-line and multi-line comments from the given JavaScript code. #### Parameters: - `code` (`string`): The input JavaScript code. #### Returns: - `string`: The JavaScript code without comments. ## Examples ### Example 1: Removing Single-Line Comments ```js const input = `const a = 5; // This is a comment\nconst b = 10; // Another comment`; const output = removeComments(input); console.log(output); // Output: "const a = 5; \nconst b = 10; " ``` ### Example 2: Removing Multi-Line Comments ```js const input = `const a = 5; /* This is a\nmulti-line comment */\nconst b = 10;`; const output = removeComments(input); console.log(output); // Output: "const a = 5; \nconst b = 10;" ``` ### Example 3: Handling String Literals ```js const input = `const str = "This is a string with // inside";`; const output = removeComments(input); console.log(output); // Output: "const str = \"This is a string with // inside\";" ``` ### Example 4: Handling Comments on Separate Lines ```js const input = `// This is a single-line comment\nconst a = 5;`; const output = removeComments(input); console.log(output); // Output: "\nconst a = 5;" ``` ### Example 5: Handling Escaped Quotes ```js const input = `const str = "This string contains an escaped quote: \\" and a // comment";`; const output = removeComments(input); console.log(output); // Output: "const str = \"This string contains an escaped quote: \\" and a // comment\";" ``` ## Tests The library includes a set of tests to ensure correct behavior with various edge cases. You can run the tests using: ```bash node test.js ``` ## License This project is licensed under the MIT License. See the `LICENSE` file for details.