1.2.0 • Published 6 years ago
eflex-fixy v1.2.0
Fixy
Fixy is an npm module for parsing fixed formatted strings/files and unparsing an Array of Objects.
Install
npm install fixy --save
Usage
fixy.parse | Single Level
var fixy = fixy.parse({
map:[{
name: "Age",
width: 2,
start: 1,
type: "int"
},{
name: "Initial",
width: 3,
start: 3,
type: "string"
}],
options:{
fullwidth: 5,
skiplines: null,
format: "csv"
}
}, "21ABC\n22DEF");
fixy.parse | Multi Level
var fixy = fixy.parse({
map:[{
name: "Name",
width: 7,
start: 1,
type: "string",
level: "A"
},{
name: "Age",
width: 2,
start: 1,
type: "int",
level: "B"
}],
options:{
skiplines: null,
levels: {
"A": {
nickname: "A",
start: 0,
end: 0,
fullwidth: 7
},
"B": {
nickname: "B",
start: 1,
end: 2,
fullwidth: 2
}
}
}
}, "Steve \n30");
fixy.unparse | Single Level
var fixy = fixy.unparse([{
name: "Age",
width: 7,
padding_position: "end",
padding_symbol: "#"
},{
name: "Initial",
width: 4,
padding_position: "end",
padding_symbol: "@"
}], [{
Age: 30,
Initial: "SJP"
},{
Age: 20,
Initial: "CCS"
}]);
fixy.unparse | Multi Level
var fixy = fixy.unparse([{
name: "Name",
width: 7,
padding_position: "end",
level: "A",
},{
name: "Age",
width: 3,
padding_position: "end",
level: "B"
},{
name: "Initial",
width: 4,
padding_position: "end",
level: "B"
}], {
A: [{ Name: "Mike" }],
B: [{
Age: 30,
Initial: "MAS"
},{
Age: 20,
Initial: "SAM"
}]
}, ["A", "B"]);
Configuration
fixy.parse({map, options}, fixed-format-string)
map
A map array of objects of the column names, width, starting point, type of value, extra type settings.
- Integer - type : "int" - name (Required) | Name of the Column - width (Required) | Length of Column - start (Required) | Start of Column in Row - level (Required if Multi Level) | Level Map Name
- Float - type : "float" (decimal use allowed but not required) - name (Required) | Name of the Column - width (Required) | Length of Column - start (Required) | Start of Column in Row - percision (Optional) | Float Percision Value (Ex: 9.20 is 2) | DEFAULT TO 2 DECIMAL PLACES - sybmol (Optional) | Symbol Value (Ex: $9.20) | ONLY AVAILABLE FOR FORMAT = CSV - level (Required if Multi Level) | Level Map Name
- Date - type : "date" - name (Required) | Name of the Column - width (Required) | Length of Column - start (Required) | Start of Column in Row - inputformat (Required) | Format Date Date is Currently In - outputformat (Required) | Format Date Date is Returned As - level (Required if Multi Level) | Level Map Name
- String - type : "string" - name (Required) | Name of the Column - width (Required) | Length of Column - start (Required) | Start of Column in Row - level (Required if Multi Level) | Level Map Name
- Boolean - type : "bool" - name (Required) | Name of the Column - width (Required) | Length of Column - start (Required) | Start of Column in Row - tVal (Required) | String Value of True - fVal (Required) | String Value of False - level (Required if Multi Level) | Level Map Name
options (for single level)
- fullwidth = full length of rows from start to end
- skiplines = optional array of rows to be skipped. May be left null
- format = defaults "json". Valid selections are: json, csv
options (for multi level)
- skiplines = optional array of rows to be skipped. May be left null
- levels = level map object (see example)
"LEVELNAME": {
nickname: "NameInMap",
start: 0, //row start, zero based
end: 0, //row end, zero based
fullwidth: 7 // row width per level
}
fixy.unparse(map, array of objects || object with levels see example, array level order (required for multi))
map
A map array of objects of the column names, width, starting point, type of value, extra type settings.
- name (Required) | Name of the Key
- width (Required) | Length of Fixed Section
- padding_position (Optional. Default: "start") | Where padding should start ("start" or "end")
- padding_symbol (Optional. Default: space " ") | What empty space should be padded with (any symbol, letter or number)
- level (Required if Multi Level) | Level Map Name
example object with level mapping
{
A: [{ Name: "Mike" }],
B: [{
Age: 30,
Initial: "MSP"
}]
}
1.2.0
6 years ago