|
@@ -8,6 +8,7 @@
|
|
|
const gulp = require( 'gulp' );
|
|
const gulp = require( 'gulp' );
|
|
|
const path = require( 'path' );
|
|
const path = require( 'path' );
|
|
|
const replace = require( 'gulp-replace' );
|
|
const replace = require( 'gulp-replace' );
|
|
|
|
|
+const mergeStream = require( 'merge-stream' );
|
|
|
const filterGitignore = require( '../utils/filtergitignore' );
|
|
const filterGitignore = require( '../utils/filtergitignore' );
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -21,8 +22,36 @@ const filterGitignore = require( '../utils/filtergitignore' );
|
|
|
* @returns {Stream}
|
|
* @returns {Stream}
|
|
|
*/
|
|
*/
|
|
|
module.exports = function executeRemoveUseStrict( workdir ) {
|
|
module.exports = function executeRemoveUseStrict( workdir ) {
|
|
|
- const useStrictRegex = /^\s*'use strict';\s*$/gm;
|
|
|
|
|
|
|
+ return mergeStream(
|
|
|
|
|
+ updateJshintrc( workdir ),
|
|
|
|
|
+ removeUseStrict( workdir )
|
|
|
|
|
+ );
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// Updates .jshintrc file's `strict` option with `implied` value.
|
|
|
|
|
+//
|
|
|
|
|
+// @param {String} workdir Path of directory to be processed.
|
|
|
|
|
+// @returns {Stream}
|
|
|
|
|
+function updateJshintrc( workdir ) {
|
|
|
|
|
+ const jshintrcPath = path.join( workdir, '.jshintrc' );
|
|
|
|
|
+ const strictRegex = /("strict":.*?").*?(".*)/;
|
|
|
|
|
+ const replaceWith = 'implied';
|
|
|
|
|
+
|
|
|
|
|
+ return gulp.src( jshintrcPath )
|
|
|
|
|
+ .pipe( replace(
|
|
|
|
|
+ strictRegex,
|
|
|
|
|
+ `$1${ replaceWith }$2`
|
|
|
|
|
+ ) )
|
|
|
|
|
+ .pipe( gulp.dest( workdir ) );
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Removes `'use strict';` directive from project's source files. Omits files listed in `.gitignore`.
|
|
|
|
|
+//
|
|
|
|
|
+// @param {String} workdir Path of directory to be processed.
|
|
|
|
|
+// @returns {Stream}
|
|
|
|
|
+function removeUseStrict( workdir ) {
|
|
|
const glob = path.join( workdir, '**/*' );
|
|
const glob = path.join( workdir, '**/*' );
|
|
|
|
|
+ const useStrictRegex = /^\s*'use strict';\s*$/gm;
|
|
|
|
|
|
|
|
return gulp.src( glob )
|
|
return gulp.src( glob )
|
|
|
.pipe( filterGitignore() )
|
|
.pipe( filterGitignore() )
|
|
@@ -32,4 +61,4 @@ module.exports = function executeRemoveUseStrict( workdir ) {
|
|
|
{ skipBinary: true }
|
|
{ skipBinary: true }
|
|
|
) )
|
|
) )
|
|
|
.pipe( gulp.dest( workdir ) );
|
|
.pipe( gulp.dest( workdir ) );
|
|
|
-};
|
|
|
|
|
|
|
+}
|