Skip to content

Commit 2569915

Browse files
committed
rework commitSharedFsTask for mem-fs@4
1 parent adcda06 commit 2569915

File tree

4 files changed

+118
-66
lines changed

4 files changed

+118
-66
lines changed

package-lock.json

+99-53
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+3-7
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
},
5959
"dependencies": {
6060
"@yeoman/adapter": "^1.4.0",
61-
"@yeoman/conflicter": "^1.1.0",
61+
"@yeoman/conflicter": "^2.0.0-alpha.1",
6262
"@yeoman/namespace": "^1.0.0",
6363
"@yeoman/transform": "^1.2.0",
6464
"arrify": "^3.0.0",
@@ -71,7 +71,6 @@
7171
"grouped-queue": "^2.0.0",
7272
"locate-path": "^7.2.0",
7373
"lodash-es": "^4.17.21",
74-
"mem-fs": "^3.0.0",
7574
"mem-fs-editor": "^10.0.1",
7675
"semver": "^7.5.0",
7776
"slash": "^5.0.1",
@@ -98,13 +97,10 @@
9897
"xo": "0.56.0",
9998
"yeoman-assert": "^3.1.1",
10099
"yeoman-generator": "^5.9.0",
101-
"yeoman-test": "^8.0.0-rc.1"
100+
"yeoman-test": "^8.1.0-beta.0"
102101
},
103102
"peerDependencies": {
104-
"@yeoman/types": "^1.1.0",
105-
"mem-fs": "^3.0.0"
106-
},
107-
"acceptDependencies": {
103+
"@yeoman/types": "^1.1.1",
108104
"mem-fs": "^4.0.0-beta.1"
109105
},
110106
"engines": {

src/commit.ts

+15-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PipelineSource } from 'node:stream';
1+
import { Duplex, type PipelineSource } from 'node:stream';
22
import type { InputOutputAdapter } from '@yeoman/types';
33
import { type ConflicterOptions, createConflicterTransform, createYoResolveTransform, forceYoFiles } from '@yeoman/conflicter';
44
import createdLogger from 'debug';
@@ -14,7 +14,7 @@ const debug = createdLogger('yeoman:environment:commit');
1414
* @param {Stream} [stream] - files stream, defaults to this.sharedFs.stream().
1515
* @return {Promise}
1616
*/
17-
export const commitSharedFsTask = ({
17+
export const commitSharedFsTask = async ({
1818
adapter,
1919
conflicterOptions,
2020
sharedFs,
@@ -26,7 +26,17 @@ export const commitSharedFsTask = ({
2626
stream?: PipelineSource<any>;
2727
}) => {
2828
debug('Running commitSharedFsTask');
29-
const fs = createMemFsEditor(sharedFs);
30-
stream = stream ?? fs.store.stream({ filter: file => isFilePending(file) });
31-
return fs.commit([createYoResolveTransform(), forceYoFiles(), createConflicterTransform(adapter, conflicterOptions)], stream);
29+
const editor = createMemFsEditor(sharedFs);
30+
await sharedFs.pipeline(
31+
{ filter: (file: MemFsEditorFile) => isFilePending(file) || file.path.endsWith('.yo-resolve') },
32+
createYoResolveTransform(),
33+
forceYoFiles(),
34+
createConflicterTransform(adapter, conflicterOptions),
35+
Duplex.from(async function* (source: AsyncGenerator<MemFsEditorFile>) {
36+
for await (const file of source) {
37+
await editor.commitFileAsync(file);
38+
yield file;
39+
}
40+
}),
41+
);
3242
};

src/environment-base.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ export default class EnvironmentBase extends EventEmitter implements BaseEnviron
872872
this.sharedFs.once('change', queueCommit);
873873

874874
debug('Running conflicts');
875-
const { customCommitTask = () => commitSharedFsTask(this) } = this.composedStore;
875+
const { customCommitTask = async () => commitSharedFsTask(this) } = this.composedStore;
876876
if (typeof customCommitTask === 'function') {
877877
await customCommitTask();
878878
} else {

0 commit comments

Comments
 (0)