forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vinyl-fs.d.ts
167 lines (143 loc) · 6.67 KB
/
vinyl-fs.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
// Type definitions for vinyl-fs
// Project: https://github.com/wearefractal/vinyl-fs
// Definitions by: vvakame <https://github.com/vvakame/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../node/node.d.ts" />
/// <reference path="../glob-stream/glob-stream.d.ts" />
/// <reference path="../vinyl/vinyl.d.ts" />
declare module NodeJS {
interface WritableStream {
write(buffer: any/* Vinyl.File */, cb?: Function): boolean;
}
}
declare module "vinyl-fs" {
import _events = require("events");
import File = require("vinyl");
import globStream = require("glob-stream");
interface ISrcOptions extends globStream.Options {
/** Specifies the working directory the folder is relative to */
cwd?: string;
/**
* Specifies the folder relative to the cwd
* This is used to determine the file names when saving in .dest()
* Default is where the glob begins
*/
base?: string;
/**
* Setting this to false will make file.contents a paused stream
* If true it will buffer the file contents
* Defaults to true
*/
buffer?: boolean;
/**
* Setting this to false will ignore the contents of the file and disable writing to disk to speed up operations
* Defaults to true
*/
read?: boolean;
/** Only find files that have been modified since the time specified */
since?: Date|number;
/** Setting this to true will create a duplex stream, one that passes through items and emits globbed files.
* Defaults to false */
passthrough?: boolean;
/** Setting this to true will enable sourcemaps.
* Defaults to false */
sourcemaps?: boolean;
}
/**
* Gets files that match the glob and converts them into the vinyl format
* @param globs Takes a glob string or an array of glob strings as the first argument
* Globs are executed in order, so negations should follow positive globs
* fs.src(['!b*.js', '*.js']) would not exclude any files, but this would: fs.src(['*.js', '!b*.js'])
* @param opt Options Vinyl source options, changes the way the files are read, found, or stored in the vinyl stream
*/
function src(globs: string|string[], opt?: ISrcOptions): NodeJS.ReadWriteStream;
/**
* This is just a glob-watcher
*
* @param globs Takes a glob string or an array of glob strings as the first argument
* Globs are executed in order, so negations should follow positive globs
* fs.src(['!b*.js', '*.js']) would not exclude any files, but this would: fs.src(['*.js', '!b*.js'])
*/
function watch(globs: string|string[], cb?: (outEvt: { type: any; path: any; old: any; }) => void): _events.EventEmitter;
/**
* This is just a glob-watcher
*
* @param globs Takes a glob string or an array of glob strings as the first argument
* Globs are executed in order, so negations should follow positive globs
* fs.src(['!b*.js', '*.js']) would not exclude any files, but this would: fs.src(['*.js', '!b*.js'])
*/
function watch(globs: string|string[], opt?: { interval?: number; debounceDelay?: number; cwd?: string; maxListeners?: Function; }, cb?: (outEvt: { type: any; path: any; old: any; }) => void): _events.EventEmitter;
/**
* On write the stream will save the vinyl File to disk at the folder/cwd specified.
* After writing the file to disk, it will be emitted from the stream so you can keep piping these around.
* The file will be modified after being written to this stream:
* cwd, base, and path will be overwritten to match the folder
* stat.mode will be overwritten if you used a mode parameter
* contents will have it's position reset to the beginning if it is a stream
* @param folder destination folder
*/
function dest(folder: string, opt?: {
/** Specify the working directory the folder is relative to
* Default is process.cwd()
*/
cwd?: string;
/** Specify the mode the files should be created with
* Default is the mode of the input file (file.stat.mode)
* or the process mode if the input file has no mode property
*/
mode?: number|string;
/** Specify the mode the directory should be created with. Default is the process mode */
dirMode?: number|string;
/** Specify if existing files with the same path should be overwritten or not. Default is true, to always overwrite existing files */
overwrite?: boolean;
}): NodeJS.ReadWriteStream;
/**
* On write the stream will save the vinyl File to disk at the folder/cwd specified.
* After writing the file to disk, it will be emitted from the stream so you can keep piping these around.
* The file will be modified after being written to this stream:
* cwd, base, and path will be overwritten to match the folder
* stat.mode will be overwritten if you used a mode parameter
* contents will have it's position reset to the beginning if it is a stream
* @param getFolderPath function that takes in a file and returns a folder path
*/
function dest(getFolderPath: (file: File) => string): NodeJS.ReadWriteStream;
/**
* On write the stream will create a symbolic link (i.e. symlink) on disk at the folder/cwd specified.
* After creating the symbolic link, it will be emitted from the stream so you can keep piping these around.
* The file will be modified after being written to this stream:
* cwd, base, and path will be overwritten to match the folder
*/
function symlink(folder: string, opts?: {
/**
* Specify the working directory the folder is relative to
* Default is process.cwd()
*/
cwd?: string;
/** Specify the mode the directory should be created with. Default is the process mode */
mode?: number|string;
/**
* Specify the mode the directory should be created with
* Default is the process mode
*/
dirMode?: number
}): NodeJS.ReadWriteStream;
/**
* On write the stream will create a symbolic link (i.e. symlink) on disk at the folder/cwd generated from getFolderPath.
* After creating the symbolic link, it will be emitted from the stream so you can keep piping these around.
* The file will be modified after being written to this stream:
* cwd, base, and path will be overwritten to match the folder
*/
function symlink(getFolderPath: (File: File) => string, opts?:
{
/**
* Specify the working directory the folder is relative to
* Default is process.cwd()
*/
cwd?: string;
/**
* Specify the mode the directory should be created with
* Default is the process mode
*/
dirMode?: number
}): NodeJS.ReadWriteStream;
}