Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jalal246/replace-in
Replace text in a given file.
https://github.com/jalal246/replace-in
async callback chunks editor file fmod fs modifier node-js nodejs promise regex replace-in-files search search-in-file stream stream-data text-processing
Last synced: 3 months ago
JSON representation
Replace text in a given file.
- Host: GitHub
- URL: https://github.com/jalal246/replace-in
- Owner: jalal246
- License: mit
- Created: 2017-07-24T13:19:36.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-08-28T13:57:43.000Z (over 2 years ago)
- Last Synced: 2024-08-09T21:13:48.402Z (6 months ago)
- Topics: async, callback, chunks, editor, file, fmod, fs, modifier, node-js, nodejs, promise, regex, replace-in-files, search, search-in-file, stream, stream-data, text-processing
- Language: JavaScript
- Homepage: https://jalal246.github.io/replace-in/
- Size: 125 KB
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# replace-in
> Replace text in a given file.
```sh
npm install replace-in
```## How it works?
It creates a read stream to read from the target file in chunks. Replace each
request and write the results using write stream. A final report will be
returned when the replacement is done.## API
### replace(options)
`options` object contains:
- `path: string` file path
- `request: array` array of objects. Each object must have two properties:
- `regex` for RegExp/String to be matched.
- `replace` string replacement.
- `encoding:? string` read stream encoding (default: `utf8`)The results is promise contains `report: array` An array of objects. Each element contains three keys:
- `isChanged: Boolean` search result.
- `regex: string` regex sent in the request.
- `replace: string` replacement sent in the request.### Example
```js
const replace = require("replace-in");// let's create some phrases to replace it in our file.
const phrase1 = {
// regex
regex: /old/gi,
// replace
replace: "new",
};// and we have to replace more.
const phrase1 = {
// regex
regex: "second",
// replace
replace: "third",
};const report = await replace({
path: "/path1/path2/fileName",
request: [phrase1, phrase1],
});// > report
// [
// {
// isChanged: true,
// regex: /old/gi,
// replace: "new",
// },
// {
// isChanged: false, // not found so it wasn't changed
// regex: "second",
// replace: "third",
// },
// ];
```Or you can check specific phrase result:
```js
const report = await replace({
path: "/path1/path2/fileName",
request: [phrase1, phrase1],
});if (report[2].isChanged) {
console.log("phrase1 was found and changed");
} else {
console.log("phrase1 was not found in the file!");
}
```## Tests
```sh
test
```### Related projects
- [find-in](https://github.com/jalal246/packageSorter) - A tool, written in JS
for Searching Text in Files.
- [textics](https://github.com/jalal246/textics-stream) &
[textics-stream](https://github.com/jalal246/textics) - counts lines, words, chars and spaces for a given string.- [packageSorter](https://github.com/jalal246/packageSorter) - Sorting packages
for monorepos production.- [move-position](https://github.com/jalal246/move-position) - Moves element in
given array form index-A to index-B.## License
This project is licensed under the [MIT License](https://github.com/jalal246/replace-in/blob/master/LICENSE)