tempy

  • Version 3.1.0
  • Published
  • 12.5 kB
  • 4 dependencies
  • MIT license

Install

npm i tempy
yarn add tempy
pnpm add tempy

Overview

Get a random temporary file or directory path

Index

Functions

function temporaryDirectory

temporaryDirectory: (options?: DirectoryOptions) => string;
  • Get a temporary directory path. The directory is created for you.

    Example 1

    import {temporaryDirectory} from 'tempy';
    temporaryDirectory();
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'
    temporaryDirectory({prefix: 'a'});
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/name_3c085674ad31223b9653c88f725d6b41'

function temporaryDirectoryTask

temporaryDirectoryTask: <ReturnValueType>(
callback: TaskCallback<ReturnValueType>,
options?: DirectoryOptions
) => Promise<ReturnValueType>;
  • The callback resolves with a temporary directory path you can write to. The directory is automatically cleaned up after the callback is executed.

    Returns

    A promise that resolves after the callback is executed and the directory is cleaned up.

    Example 1

    import {temporaryDirectoryTask} from 'tempy';
    await temporaryDirectoryTask(tempDirectory => {
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'
    })

function temporaryFile

temporaryFile: (
options?: MergeExclusive<
{ readonly extension?: string },
{ readonly name?: string }
>
) => string;
  • Get a temporary file path you can write to.

    Example 1

    import {temporaryFile, temporaryDirectory} from 'tempy';
    temporaryFile();
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/4f504b9edb5ba0e89451617bf9f971dd'
    temporaryFile({extension: 'png'});
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/a9fb0decd08179eb6cf4691568aa2018.png'
    temporaryFile({name: 'unicorn.png'});
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/f7f62bfd4e2a05f1589947647ed3f9ec/unicorn.png'
    temporaryDirectory();
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'

function temporaryFileTask

temporaryFileTask: <ReturnValueType>(
callback: TaskCallback<ReturnValueType>,
options?: MergeExclusive<
{ readonly extension?: string },
{ readonly name?: string }
>
) => Promise<ReturnValueType>;
  • The callback resolves with a temporary file path you can write to. The file is automatically cleaned up after the callback is executed.

    Returns

    A promise that resolves after the callback is executed and the file is cleaned up.

    Example 1

    import {temporaryFileTask} from 'tempy';
    await temporaryFileTask(tempFile => {
    console.log(tempFile);
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/4f504b9edb5ba0e89451617bf9f971dd'
    });

function temporaryWrite

temporaryWrite: (
fileContent: string | Buffer | TypedArray | DataView | NodeJS.ReadableStream,
options?: MergeExclusive<
{ readonly extension?: string },
{ readonly name?: string }
>
) => Promise<string>;
  • Write data to a random temp file.

    Example 1

    import {temporaryWrite} from 'tempy';
    await temporaryWrite('🦄');
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'

function temporaryWriteSync

temporaryWriteSync: (
fileContent: string | Buffer | TypedArray | DataView,
options?: MergeExclusive<
{ readonly extension?: string },
{ readonly name?: string }
>
) => string;
  • Synchronously write data to a random temp file.

    Example 1

    import {temporaryWriteSync} from 'tempy';
    temporaryWriteSync('🦄');
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'

function temporaryWriteTask

temporaryWriteTask: <ReturnValueType>(
fileContent: string | Buffer | TypedArray | DataView | NodeJS.ReadableStream,
callback: TaskCallback<ReturnValueType>,
options?: MergeExclusive<
{ readonly extension?: string },
{ readonly name?: string }
>
) => Promise<ReturnValueType>;
  • Write data to a random temp file. The file is automatically cleaned up after the callback is executed.

    Returns

    A promise that resolves after the callback is executed and the file is cleaned up.

    Example 1

    import {temporaryWriteTask} from 'tempy';
    await temporaryWriteTask('🦄', tempFile => {
    //=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/4f504b9edb5ba0e89451617bf9f971dd'
    });

Type Aliases

type DirectoryOptions

type DirectoryOptions = {
/**
Directory prefix.
_You usually won't need this option. Specify it only when actually needed._
Useful for testing by making it easier to identify cache directories that are created.
*/
readonly prefix?: string;
};

    type FileOptions

    type FileOptions = MergeExclusive<
    {
    /**
    File extension.
    Mutually exclusive with the `name` option.
    _You usually won't need this option. Specify it only when actually needed._
    */
    readonly extension?: string;
    },
    {
    /**
    Filename.
    Mutually exclusive with the `extension` option.
    _You usually won't need this option. Specify it only when actually needed._
    */
    readonly name?: string;
    }
    >;

      type TaskCallback

      type TaskCallback<ReturnValueType> = (
      temporaryPath: string
      ) => Promise<ReturnValueType> | ReturnValueType;
      • The temporary path created by the function. Can be asynchronous.

      Package Files (1)

      Dependencies (4)

      Dev Dependencies (6)

      Peer Dependencies (0)

      No peer dependencies.

      Badge

      To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

      You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/tempy.

      • Markdown
        [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/tempy)
      • HTML
        <a href="https://www.jsdocs.io/package/tempy"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>