Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/moeriki/temporarily
Create temporary directories and files.
https://github.com/moeriki/temporarily
Last synced: 7 days ago
JSON representation
Create temporary directories and files.
- Host: GitHub
- URL: https://github.com/moeriki/temporarily
- Owner: moeriki
- License: mit
- Created: 2017-06-06T14:10:02.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-11T13:28:32.000Z (almost 6 years ago)
- Last Synced: 2024-12-17T03:21:41.666Z (24 days ago)
- Language: JavaScript
- Homepage:
- Size: 123 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
temporarily
Create temporary directories and files.
---
## Install
```sh
npm install --save temporarily
```## Why
There are a [few](https://github.com/vesln/temporary) [other](https://github.com/raszi/node-tmp) [temporary](https://github.com/bruce/node-temp) 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
```js
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}````js
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.
```js
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] )`
* options.**mode** `:string` – default `0o777`
All options from **filepath** can be applied as well.
```js
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] } ] }
```