Skip to content

moeriki/temporarily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

temporarily

Create temporary directories and files.

npm version npm version Build Status Coverage Status dependencies Status


Install

npm install --save temporarily

Why

There are a few other temporary file creation utilities. Here's why I made my own.

  • cleanup by default (on process exit), no opt-out (though you may clean up early if necessary)
  • sync by default, meant for testing
  • easy nested dir / file scaffolding with content

Usage

const temp = require('temporarily');
// or
const { dir, file, filepath } = require('temporarily');
// or
import { dir, file, filepath } from 'temporarily';

API

filepath

Generate a filepath. No file is created.

filepath( [options:object] )

  • options.dir :string – default os.tmpdir()
  • options.ext :string
  • options.name :string – default temporarily-{wwwwdddd}
filepath();
// '/var/folders/30/T/temporarily-tkEK6023'

filepath({ ext: 'json' });
// '/var/folders/30/T/temporarily-tkEK6023.json'

filepath({ dir: os.homedir() });
// '/home/myuser/temporarily-tkEK6023'

filepath({ name: 'file-{wwdd}' });
// '/var/folders/30/T/file-tk60'

file

Create a temporary file.

file( [options:object] )

  • options.data :string|Buffer – default ''
  • options.encoding :string – default 'utf8'
  • options.mode :string – default 0o666

All options from filepath can be applied as well.

file();
// { data: '',
//   filepath: '/var/folders/30/T/temporarily-RdgC6481',
//   mode: 438,
//   cleanup: [Function: cleanup] }

file({ mode: 0o777 });
// { data: '',
//   filepath: '/var/folders/30/T/temporarily-RdgC6481',
//   mode: 511,
//   cleanup: [Function: cleanup] }

file({ data: 'Hello World!' }); // write file contents
// { data: 'Hello World!',
//   filepath: '/var/folders/30/T/temporarily-RdgC6481',
//   mode: 438,
//   cleanup: [Function: cleanup] }

dir

Create a temporary directory.

dir( [options:object], [children:Array<object>] )

  • options.mode :string – default 0o777

All options from filepath can be applied as well.

dir();
// { filepath: '/var/folders/30/T/temporarily-tkEK6023',
//   mode: 511,
//   cleanup: [Function: cleanup] }

dir({ dir: os.homedir() });
// { filepath: '/home/myuser/temporarily-tkEK6023',
//   mode: 511,
//   cleanup: [Function: cleanup] }

dir({ mode: 0o666 });
// { filepath: '/var/folders/30/T/temporarily-tkEK6023',
//   mode: 438,
//   cleanup: [Function: cleanup] }

dir({ name: 'tempo' }, [
  dir([
    file({ name: 'nestedFile' }),
  ]),
  file({ data: 'Hello World!' }),
])
// { filepath: '/var/folders/30/T/tempo',
//   mode: 511,
//   cleanup: [Function: cleanup],
//   children:
//    [ { filepath: '/var/folders/30/T/tempo/temporarily-MwpX5662',
//        mode: 511,
//        cleanup: [Function: cleanup],
//        children:
//         [ { data: '',
//             filepath: '/var/folders/30/T/tempo/temporarily-MwpX5662/nestedFile',
//             mode: 438,
//             cleanup: [Function: cleanup] } ] },
//      { data: 'Hello World!',
//        filepath: '/var/folders/30/T/tempo/temporarily-yxYz6104',
//        mode: 438,
//        cleanup: [Function: cleanup] } ] }

About

Create temporary directories and files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published