Skip to content

Commit 1496d2c

Browse files
committed
fix: removed yieldContents feature
It's not optimal to hold the whole file in memory like that. The file contents will need to be streamed when needed. [ci skip]
1 parent 48b78af commit 1496d2c

4 files changed

Lines changed: 1 addition & 58 deletions

File tree

src/vaults/types.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ type VaultName = string;
135135
type VaultActions = Partial<Record<VaultAction, null>>;
136136

137137
type FileTree = Array<TreeNode>;
138-
type TreeNode = DirectoryNode | FileNode | ContentNode;
138+
type TreeNode = DirectoryNode | FileNode;
139139
type FilePath = string;
140140
type INode = number;
141141
type CNode = number;
@@ -177,15 +177,6 @@ type FileNode = {
177177
stat?: StatEncoded;
178178
};
179179

180-
// Keeping this separate from `FileNode` so we can optionally not include it.
181-
type ContentNode = {
182-
type: 'content';
183-
path: undefined;
184-
fileName: string;
185-
cNode: CNode;
186-
contents: string;
187-
};
188-
189180
export { vaultActions };
190181

191182
export type {
@@ -208,7 +199,6 @@ export type {
208199
StatEncoded,
209200
DirectoryNode,
210201
FileNode,
211-
ContentNode,
212202
};
213203

214204
export { tagLast, refs };

src/vaults/utils.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,6 @@ function genStat(stat: Stat): StatEncoded {
159159
* @param yieldParents - Toggles yielding details about parents of pattern matched paths. Defaults to false.
160160
* @param yieldDirectories - Toggles yielding directories that match the pattern. Defaults to true.
161161
* @param yieldFiles - Toggles yielding files that match the pattern. Defaults to true.
162-
* @param yieldContents - Toggles yielding file contents after all other details are yielded. Defaults to false.
163162
* @param yieldStats - Toggles including stats in file and directory details. Defaults to false.
164163
*/
165164
async function* globWalk({
@@ -170,7 +169,6 @@ async function* globWalk({
170169
yieldParents = false,
171170
yieldDirectories = true,
172171
yieldFiles = true,
173-
yieldContents = false,
174172
yieldStats = false,
175173
}: {
176174
fs: FileSystem | FileSystemReadable;
@@ -180,7 +178,6 @@ async function* globWalk({
180178
yieldParents?: boolean;
181179
yieldDirectories?: boolean;
182180
yieldFiles?: boolean;
183-
yieldContents?: boolean;
184181
yieldStats?: boolean;
185182
}): AsyncGenerator<TreeNode, void, void> {
186183
const files: Array<string> = [];
@@ -285,19 +282,6 @@ async function* globWalk({
285282
}
286283
current = queue.shift();
287284
}
288-
if (!yieldContents) return;
289-
// Iterate over file contents
290-
for (let i = 0; i < files.length; i++) {
291-
const filePath = files[i];
292-
yield {
293-
type: 'content',
294-
path: undefined,
295-
fileName: path.basename(filePath),
296-
cNode: i,
297-
// @ts-ignore: While the types don't fully match, it matches enough for our usage.
298-
contents: (await fs.promises.readFile(filePath)).toString(),
299-
};
300-
}
301285
}
302286

303287
export {

tests/vaults/VaultOps.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,6 @@ describe('VaultOps', () => {
559559
yieldFiles: true,
560560
yieldParents: true,
561561
yieldRoot: true,
562-
yieldContents: false,
563562
})) {
564563
tree.push(treeNode);
565564
}

tests/vaults/utils.test.ts

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ describe('Vaults utils', () => {
138138
yieldFiles: true,
139139
yieldParents: true,
140140
yieldRoot: true,
141-
yieldContents: false,
142141
})) {
143142
tree.push(treeNode);
144143
}
@@ -172,7 +171,6 @@ describe('Vaults utils', () => {
172171
yieldFiles: true,
173172
yieldParents: true,
174173
yieldRoot: true,
175-
yieldContents: false,
176174
})) {
177175
tree.push(treeNode);
178176
}
@@ -206,7 +204,6 @@ describe('Vaults utils', () => {
206204
yieldFiles: true,
207205
yieldParents: true,
208206
yieldRoot: true,
209-
yieldContents: false,
210207
})) {
211208
tree.push(treeNode);
212209
}
@@ -230,7 +227,6 @@ describe('Vaults utils', () => {
230227
yieldFiles: true,
231228
yieldParents: true,
232229
yieldRoot: true,
233-
yieldContents: false,
234230
})) {
235231
tree.push(treeNode);
236232
}
@@ -319,31 +315,6 @@ describe('Vaults utils', () => {
319315
),
320316
);
321317
});
322-
test('Yields file contents directories with `yieldContents`', async () => {
323-
const tree: FileTree = [];
324-
for await (const treeNode of vaultsUtils.globWalk({
325-
fs: fs,
326-
basePath: relativeBase,
327-
yieldFiles: false,
328-
yieldDirectories: false,
329-
yieldContents: true,
330-
})) {
331-
tree.push(treeNode);
332-
}
333-
const files = tree.map((v) => (v.type === 'content' ? v.contents : ''));
334-
expect(files).toContainAllValues([
335-
'content-file0',
336-
'content-file9',
337-
'content-file1',
338-
'content-file2',
339-
'content-file3',
340-
'content-file4',
341-
'content-file5',
342-
'content-file6',
343-
'content-file7',
344-
'content-file8',
345-
]);
346-
});
347318
test('Yields stats with `yieldStats`', async () => {
348319
const tree: FileTree = [];
349320
for await (const treeNode of vaultsUtils.globWalk({
@@ -352,7 +323,6 @@ describe('Vaults utils', () => {
352323
yieldStats: true,
353324
yieldFiles: true,
354325
yieldDirectories: true,
355-
yieldContents: false,
356326
})) {
357327
tree.push(treeNode);
358328
}

0 commit comments

Comments
 (0)