Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thlorenz/update-section
Updates a section inside a file with newer content while removing the old content.
https://github.com/thlorenz/update-section
Last synced: 15 days ago
JSON representation
Updates a section inside a file with newer content while removing the old content.
- Host: GitHub
- URL: https://github.com/thlorenz/update-section
- Owner: thlorenz
- License: mit
- Created: 2013-12-11T19:51:41.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2014-03-07T18:17:11.000Z (over 10 years ago)
- Last Synced: 2024-05-08T17:30:26.959Z (6 months ago)
- Language: JavaScript
- Homepage: https://github.com/thlorenz/update-section
- Size: 215 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# update-section [![build status](https://secure.travis-ci.org/thlorenz/update-section.png)](http://travis-ci.org/thlorenz/update-section)
[![testling badge](https://ci.testling.com/thlorenz/update-section.png)](https://ci.testling.com/thlorenz/update-section)
Updates a section inside a file with newer content while removing the old content.
```js
var updateSection = require('update-section');var original = [
'# Some Project'
, ''
, 'Does a bunch of things'
, ''
, 'START -- GENERATED GOODNESS'
, 'this was painstakingly generated'
, 'as was this'
, 'END -- GENERATED GOODNESS' , ''
, ''
, '## The End'
, ''
, 'Til next time'
].join('\n');var update = [
'START -- GENERATED GOODNESS'
, 'this was painstakingly re-generated'
, 'and we added another line'
, 'here'
, 'END -- GENERATED GOODNESS'
].join('\n');function matchesStart(line) {
return (/START -- GENERATED GOODNESS/).test(line);
}function matchesEnd(line) {
return (/END -- GENERATED GOODNESS/).test(line);
}var updated = updateSection(original, update, matchesStart, matchesEnd);
console.log(updated);
```#### Output
```
# Some ProjectDoes a bunch of things
START -- GENERATED GOODNESS
this was painstakingly re-generated
and we added another line
here
END -- GENERATED GOODNESS## The End
Til next time
```## Installation
npm install update-section
## API
### updateSection(content, section, matchesStart, matchesEnd)
```
/**
* Updates the content with the given section.
*
* If previous section is found it is replaced.
* Otherwise the section is appended to the end of the content.
*
* @name updateSection
* @function
* @param {String} content that may or may not include a previously added section
* @param {String} section the section to update
* @param {Function} matchesStart when called with a line needs to return true iff it is the section start line
* @param {Function} matchesEnd when called with a line needs to return true iff it is the section end line
* @return {String} content with updated section
*/
```## License
MIT
updateSection(content, section, matchesStart, matchesEnd, top) → {String}Updates the content with the given section.
If previous section is found it is replaced.
Otherwise the section is appended to the end of the content.Parameters:
Name
Type
Description
content
String
that may or may not include a previously added section
section
String
the section to update
matchesStart
function
when called with a line needs to return true iff it is the section start line
matchesEnd
function
when called with a line needs to return true iff it is the section end line
top
boolean
forces the section to be added at the top of the content if a replacement couldn't be made
- Source:
Returns:
content with updated section
Type
String
updateSection::parse(lines, matchesStart, matchesEnd) → {object}Finds the start and end lines that match the given criteria.
Used by update-section itself.Use it if you need to get information about where the matching content is located.
Parameters:
Name
Type
Description
lines
Array.<string>
the lines in which to look for matches
matchesStart
function
when called with a line needs to return true iff it is the section start line
matchesEnd
function
when called with a line needs to return true iff it is the section end line
- Source:
Returns:
with the following properties: hasStart, hasEnd, startIdx, endIdx
Type
object*generated with [docme](https://github.com/thlorenz/docme)*