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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kxghnpm/kx-shredder-sync

v1.0.0

Published

Simple synchronous file shredder

Readme

kx-shredder-sync

Synchronous file shredder.

Examples:

const Shredder = require('@kxghnpm/kx-shredder-sync');
const shr = Shredder.createShredder({
    strategy: Shredder.strategies.ZERO_BYTES
});
shr.shredAll(`my/target/folder`, {recursive: true, unlink: false});
const Shredder = require('@kxghnpm/kx-shredder-sync');
const shr = Shredder.createShredder({
    strategy: Shredder.strategies.FF_BYTES
});
shr.shredAll(['tests/xxx.txt', 'tests/xxf/xxx.txt'], {unlink: true});
const shr = require('@kxghnpm/kx-shredder-sync').createShredder();
shr.shredOne('mycv.pdf');

API

const Shredder = require('@kxghnpm/kx-shredder-sync');
const shr = Shredder.createShredder({
    /// ... opts ...
    strategy: Shredder.strategies.US_DOD,
    log: console.log,
    passCount: 2
});

strategies

File shredding strategies. If none provided, falls back to US_DOD. Four available:

  • ZERO_BYTES fills file with zeros
  • FF_BYTES fills file with max byte values
  • RANDOM_BYTES fills file with random bytes
  • US_DOD all of the previous three as one pass (in that order).

createShredder

Accepts the following params:

  • fileLister filelister with a listFiles(targetDirectoryPath, recursive) method. It recursively searches for files to be shredded. Default used filelister is @kxghnpm/kx-file-lister-sync with the following blacklist of file extensions: ['.exe', '.dll', '.so', '.dat', '.xml', '.js', '.log', '.o', '.efi', '.prx', '.sh', '.rs', '.bat']
  • bufferSize write buffer chunk size in bytes. Defaults to 65536
  • strategy see strategies above. Defaults to US_DOD
  • log logger function that will be passed a string indicating progress of mass shredding. Defaults to empty function.
  • passCount how many times should shredding strategy be used on a file. Suggested and default value is 1.

Returns an object with following functions:

shredOne

Synchronously shreds a file. Args:

  • targetFilePath path to file to be shredded
  • unlink whether the file should also be unlinked. False by default.

shredAll

Synchronously shreds files in (sub)folder(s) or file paths listed in array.

  • target directory path or array of file paths
  • opts.recursive whether also files in subdirectories should be shredded. Defaults to false
  • opts.unlink whether the files should also be unlinked. False by default

getTargets

Lists targets that would be shredded by shredAll function. Useful for prompting user before shredding recursively.

  • target target path to target directory or array of file paths
  • recursive whether also subdirectories should be shredded. Defaults to false