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

slick-temp

v0.2.0

Published

Create and remove temporary directories with minimal effort

Downloads

7

Readme

node-slick-temp

Create and remove temporary directories. Useful for build tools, like Broccoli plugins. Smart about naming, and placing them in ./tmp if possible, so you don't have to worry about this.

Note: This project is a rewrite using exclusively asynchronous file functions of Jo Liss's quick-temp.

Installation

npm install --save slick-temp

Usage

var slickTemp = require('slick-temp')

Creating a temporary directory

To make a temporary and assign its path to this.tmpDestDir, call either one of these:

slickTemp.makeOrRemake(this, 'tmpDestDir').then(...)
// or
slickTemp.makeOrReuse(this, 'tmpDestDir').then(...)

If this.tmpDestDir already contains a path, makeOrRemake will remove it first and then create a new directory (with a different path), whereas makeOrReuse will be a no-op.

Both functions return a promise that resolves to the path of the temporary directory.

Removing a temporary directory

To remove a previously-created temporary directory and all its contents, call

slickTemp.remove(this, 'tmpDestDir').then(...)

This will also assign this.tmpDestDir = null. If this.tmpDestDir is already null or undefined, it will be a no-op.

Why asynchronous code

  • Blocking the main thread is considered bad practice
  • Although SSDs are pretty fast, spinning hard drives, exteral devices and network devices have considerably more lag
  • The speed difference between memory speed and CPU speed has grown steadily in the past because memory capacity and price are considered increasingly more important. That gap will likely continue to grow.
  • Asynchronous code allows for more flexibily
    • Offloading of the work into worker threads is possible
    • Failed operations can be retried at lesser cost (main thread never blocked)

Development

  • npm test runs tests once
  • npm run-script autotest runs tests on every file change

A word of thanks

Thanks goes to Jo Liss for the idea to this library.