You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
4.6 KiB
174 lines
4.6 KiB
/// <reference types="node"/>
|
|
import {MergeExclusive, TypedArray} from 'type-fest';
|
|
|
|
declare namespace tempy {
|
|
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 DirectoryOptions = {
|
|
/**
|
|
_You usually won't need this option. Specify it only when actually needed._
|
|
|
|
Directory prefix.
|
|
|
|
Useful for testing by making it easier to identify cache directories that are created.
|
|
*/
|
|
readonly prefix?: string;
|
|
};
|
|
|
|
/**
|
|
The temporary path created by the function. Can be asynchronous.
|
|
*/
|
|
type TaskCallback = (tempPath: string) => Promise<void> | void;
|
|
}
|
|
|
|
declare const tempy: {
|
|
file: {
|
|
/**
|
|
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
|
|
```
|
|
import tempy = require('tempy');
|
|
|
|
await tempy.file.task(tempFile => {
|
|
console.log(tempFile);
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/4f504b9edb5ba0e89451617bf9f971dd'
|
|
});
|
|
```
|
|
*/
|
|
task: (callback: tempy.TaskCallback, options?: tempy.FileOptions) => Promise<void>;
|
|
|
|
/**
|
|
Get a temporary file path you can write to.
|
|
|
|
@example
|
|
```
|
|
import tempy = require('tempy');
|
|
|
|
tempy.file();
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/4f504b9edb5ba0e89451617bf9f971dd'
|
|
|
|
tempy.file({extension: 'png'});
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/a9fb0decd08179eb6cf4691568aa2018.png'
|
|
|
|
tempy.file({name: 'unicorn.png'});
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/f7f62bfd4e2a05f1589947647ed3f9ec/unicorn.png'
|
|
|
|
tempy.directory();
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'
|
|
```
|
|
*/
|
|
(options?: tempy.FileOptions): string;
|
|
};
|
|
|
|
directory: {
|
|
/**
|
|
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
|
|
```
|
|
import tempy = require('tempy');
|
|
|
|
await tempy.directory.task(tempDirectory => {
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'
|
|
})
|
|
```
|
|
*/
|
|
task: (callback: tempy.TaskCallback, options?: tempy.DirectoryOptions) => Promise<void>;
|
|
|
|
/**
|
|
Get a temporary directory path. The directory is created for you.
|
|
|
|
@example
|
|
```
|
|
import tempy = require('tempy');
|
|
|
|
tempy.directory();
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'
|
|
|
|
tempy.directory({prefix: 'a'});
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/name_3c085674ad31223b9653c88f725d6b41'
|
|
```
|
|
*/
|
|
(options?: tempy.DirectoryOptions): string;
|
|
};
|
|
|
|
write: {
|
|
/**
|
|
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
|
|
```
|
|
import tempy = require('tempy');
|
|
|
|
await tempy.write.task('🦄', tempFile => {
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/4f504b9edb5ba0e89451617bf9f971dd'
|
|
});
|
|
```
|
|
*/
|
|
task: (fileContent: string | Buffer | TypedArray | DataView | NodeJS.ReadableStream, callback: tempy.TaskCallback, options?: tempy.FileOptions) => Promise<void>;
|
|
|
|
/**
|
|
Write data to a random temp file.
|
|
|
|
@example
|
|
```
|
|
import tempy = require('tempy');
|
|
|
|
await tempy.write('🦄');
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'
|
|
```
|
|
*/
|
|
(fileContent: string | Buffer | TypedArray | DataView | NodeJS.ReadableStream, options?: tempy.FileOptions): Promise<string>;
|
|
};
|
|
|
|
/**
|
|
Synchronously write data to a random temp file.
|
|
|
|
@example
|
|
```
|
|
import tempy = require('tempy');
|
|
|
|
tempy.writeSync('🦄');
|
|
//=> '/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T/2f3d094aec2cb1b93bb0f4cffce5ebd6'
|
|
```
|
|
*/
|
|
writeSync: (fileContent: string | Buffer | TypedArray | DataView, options?: tempy.FileOptions) => string;
|
|
|
|
/**
|
|
Get the root temporary directory path.
|
|
|
|
For example: `/private/var/folders/3x/jf5977fn79jbglr7rk0tq4d00000gn/T`.
|
|
*/
|
|
readonly root: string;
|
|
};
|
|
|
|
export = tempy;
|