fileseg v0.1.0
fileseg
File segment fetching and replacing for configuration files
Installation
Simply install by running npm install fileseg --save.
Usage
fileseg allows for configuration block management within files. For instance you may want to control a custom block of ignored paths in a .gitignore file:
node_modules
*.log
.vscode
# __fileseg__ BEGIN:customConfig
some-application-path
another/path
# __fileseg__ END:customConfigReading and editing this configuration section is easy with fileseg:
const createAdapter = require("fileseg");
const adapter = createAdapter(".gitignore");
adapter
.read("customConfig")
.then(function(config) {
const newConfig = [
...config.split("\n"),
"somefile.exe"
];
return adapter.write("customConfig", newConfig.join("\n"));
});The result within .gitignore would be:
node_modules
*.log
.vscode
# __fileseg__ BEGIN:customConfig
some-application-path
another/path
somefile.exe
# __fileseg__ END:customConfigA file can have any number of blocks managed by fileseg. A file is created automatically when writing to a path that doesn't exist. Reading a block from a non-existent file will return null by default (this can be overidden in the options).
Configuring
fileseg can be configured by passing in a configuration object when creating the adapter:
const createAdapter = require("fileseg");
const adapter = createAdapter(".gitignore", {
commentPrefix: "#",
blockPrefix: " __fileseg__ ",
beginText: "BEGIN:",
endText: "END:",
newLine: "\n",
noSegment: null
});You can override the default behaviour:
commentPrefixis the string used to prefix block delimiters. The default#character is quite common in configuration files, but it can be changed to other comment characters for other markups and languages.blockPrefixis a library-specific identifier to increase the uniqueness of the block.beginTextandendTextconfigure the values to delimit the start and end of a block. These must never be the same and should usually not be changed.newLinecontrols the new line characters (both recognised and replaced). This could be set, for example, to"\r\n"in a pure Windows project.noSegmentis the default return value for when a segment is not found (includes non-existent files).
8 years ago