Comments (5)
@richie50 you can use something like this to simplify things a bit :).
from putout.
@coderaiser I just needed it to remove IIFE from an old angularJs projects. I was porting the application from ES2015 to Yypescript. And by the way i was able to apply your above code to remove all the IIFE. Thanks mate
from putout.
Here is a short example for one file, could you please provide more deteails.
const {readFileSync, writeFileSync} = require('fs');
const putout = require('putout');
const input = readFileSync('./iife.js', 'utf8');
const output = putout(file, {
plugins: [
'remove-iife'
]
});
writeFileSync('./iife.js', output);
from putout.
@coderaiser for example src/ folder with .js files and sub directories with .js files recursively. I guess with the above script i can recursively go thru each .js file in all directories and sub directories and use the remove-iife and write the output to the said file.
Code below:
//requiring path and fs modules
const path = require('path');
const fs = require('fs');
//joining path of directory
const directoryPath = path.join(__dirname, 'src/app');
let walk = (directoryPath, fileList = []) => {
const files = fs.readdirSync(directoryPath);
files.forEach(function(file) {
let isDirectory = fs.statSync(path.join(directoryPath, file)).isDirectory();
if (isDirectory) {
filelist = walk(path.join(directoryPath, file), fileList); // recursively go thru the sub directory call
} else {
//console.log(file, " is a file ", !isDirectory);
var jsFilterRegex = /\.js$/;
if (jsFilterRegex.test(file)) {
console.log("Removing IIFE with putout plugin ", file);
const input = fs.readFileSync(path.join(directoryPath, file), 'utf8');
/**
* This part of the code is not tested with the putout plugin but you get the idea
*/
const output = putout(file, {
plugins: [
'remove-iife'
]
});
fs.writeFileSync(directoryPath, file, output);
/** Not tested */
}
fileList.concat(path.join(directoryPath, file)); // store the files
}
});
return fileList;
};
let all_files = []
all_files = walk(directoryPath, all_files);
from putout.
Could you please tell me why do you need it? We can move out some stuff from putout cli
into separate module to simplify using of such functionality in future :).
from putout.
Related Issues (20)
- [typescript/convert-generic-to-shorthand]: Creates TypeErrors for intersections with no overlap. HOT 3
- [Plugin Proposal]: `plugin-speedify` to apply small inline code optimizations. HOT 19
- [printer] Removes any `declare` of class properties. HOT 2
- [types/convert-typeof-to-is-type]: Does not fix partially fixed conditions HOT 2
- `Error while loading rule 'putout/putout': Node type 'TSOptionalType' is not supported yet: 'number?'` HOT 2
- [types/convert-typeof-to-is-type]: Does not fix `typeof a === 'object'` HOT 4
- question: how can I use putout to transform unicode regexes (/../u)? HOT 4
- How to disable pretty printer HOT 12
- Could not resolve dependency when installing latest eslint-plugin-putout HOT 4
- Getting error for apply-nullish-coalescing HOT 7
- TypeScript type being removed in output when using object destructuring HOT 2
- Callstack error on version 32.1.x or newer HOT 12
- TypeScript union type as a key turns into extends expression HOT 2
- TypeScript interface `extends` gets removed HOT 1
- Eslint Plugin Relying on Stylistic HOT 6
- 404 Page of Node v12 link in README. HOT 2
- convert-commonjs-to-esm/exports not working HOT 8
- Double quotes to single quotes conversion creates syntax error HOT 3
- question: how can i disable all plugins that are not in the rulesdir? HOT 3
- [printer] [bug] HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from putout.