Updates a section inside a file with newer content while removing the old content.
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);
# Some Project
Does 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
npm install update-section
/**
* 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
*/
MIT
-
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 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:
content with updated section
- Type
- String
-
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.
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:
with the following properties: hasStart, hasEnd, startIdx, endIdx
- Type
- object
generated with docme