Skip to content

Commit f8349d4

Browse files
committed
fix: replace gulp-rename with our own implementation
We need to do in-place rename so that the file can be managed by mem-fs for. The gulp-rename@1.2.3 breaks us as the clone of file object causes mem-fs-editor to rewrite a file that's already committed.
1 parent 3671342 commit f8349d4

File tree

5 files changed

+31
-15
lines changed

5 files changed

+31
-15
lines changed

packages/cli/generators/app/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
const ProjectGenerator = require('../../lib/project-generator');
88
const utils = require('../../lib/utils');
99

10-
module.exports = class extends ProjectGenerator {
10+
module.exports = class AppGenerator extends ProjectGenerator {
1111
// Note: arguments and options should be defined in the constructor.
1212
constructor(args, opts) {
1313
super(args, opts);

packages/cli/generators/extension/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const utils = require('../../lib/utils');
99

1010
const ProjectGenerator = require('../../lib/project-generator');
1111

12-
module.exports = class extends ProjectGenerator {
12+
module.exports = class ExtensionGenerator extends ProjectGenerator {
1313
// Note: arguments and options should be defined in the constructor.
1414
constructor(args, opts) {
1515
super(args, opts);

packages/cli/lib/project-generator.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
// License text available at https://opensource.org/licenses/MIT
55

66
'use strict';
7-
const rename = require('gulp-rename');
87
const BaseGenerator = require('./base-generator');
98
const utils = require('./utils');
109

@@ -61,24 +60,15 @@ module.exports = class ProjectGenerator extends BaseGenerator {
6160
});
6261

6362
this._setupRenameTransformer();
63+
super._setupGenerator();
6464
}
6565

6666
/**
6767
* Registers a Transform Stream with Yeoman. Removes `.ejs` extension
6868
* from files that have it during project generation.
6969
*/
7070
_setupRenameTransformer() {
71-
this.registerTransformStream(
72-
rename(function(file) {
73-
// extname already contains a leading '.'
74-
const fileName = `${file.basename}${file.extname}`;
75-
const result = fileName.match(/(.+)(.ts|.json|.js|.md)\.ejs$/);
76-
if (result) {
77-
file.extname = result[2];
78-
file.basename = result[1];
79-
}
80-
}),
81-
);
71+
this.registerTransformStream(utils.renameEJS());
8272
}
8373

8474
setOptions() {

packages/cli/lib/utils.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const debug = require('../lib/debug')('utils');
99
const fs = require('fs');
1010
const path = require('path');
1111
const util = require('util');
12+
const stream = require('stream');
1213
var semver = require('semver');
1314
const regenerate = require('regenerate');
1415
const _ = require('lodash');
@@ -208,3 +209,29 @@ exports.getDependencies = function() {
208209
}
209210
return deps;
210211
};
212+
213+
/**
214+
* Rename EJS files
215+
*/
216+
exports.renameEJS = function() {
217+
const renameStream = new stream.Transform({objectMode: true});
218+
219+
renameStream._transform = function(file, enc, callback) {
220+
const filePath = file.relative;
221+
const dirname = path.dirname(filePath);
222+
let extname = path.extname(filePath);
223+
let basename = path.basename(filePath, extname);
224+
225+
// extname already contains a leading '.'
226+
const fileName = `${basename}${extname}`;
227+
const result = fileName.match(/(.+)(.ts|.json|.js|.md)\.ejs$/);
228+
if (result) {
229+
extname = result[2];
230+
basename = result[1];
231+
file.path = path.join(file.base, dirname, basename + extname);
232+
}
233+
callback(null, file);
234+
};
235+
236+
return renameStream;
237+
};

packages/cli/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
"chalk": "^2.3.2",
4444
"change-case": "^3.0.2",
4545
"debug": "^3.1.0",
46-
"gulp-rename": "^1.2.2",
4746
"lodash": "^4.17.5",
4847
"minimist": "^1.2.0",
4948
"pacote": "^8.1.1",

0 commit comments

Comments
 (0)