Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wavebeem/oopsy-data
Takes a file and error locations, turning them into line/column data with relevant text
https://github.com/wavebeem/oopsy-data
Last synced: 18 days ago
JSON representation
Takes a file and error locations, turning them into line/column data with relevant text
- Host: GitHub
- URL: https://github.com/wavebeem/oopsy-data
- Owner: wavebeem
- License: mit
- Created: 2015-12-05T23:36:44.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-12-06T03:48:07.000Z (about 9 years ago)
- Last Synced: 2024-11-30T21:34:11.802Z (23 days ago)
- Language: JavaScript
- Size: 4.88 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# oopsy-data
This package is designed to help you provide context for source code error
messages.## Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By
participating in this project you agree to abide by its terms.## API
`fromIndices(code, indices, options)`
`fromLocations(code, locations, options)`
There are two functions, `fromIndices`, and `fromLocations`. Both of them take
the source code text as a string for the first parameter. The second parameter
is either a list of string indices (e.g. `[{index: 0}, {index: 5}`) or a list of
`{line, column}` objects (e.g. `[{line: 1, column: 3}, {line: 3, column: 89}]`).If the objects you pass have a property `data`, that will be passed along in the
return values.They both accept an optional third parameter which is an options object. The
only key for the options object is `color`, which can have the values true or
false. This controls using the `chalk` library to colorize output.NOTE: The library considers both LF (Linux/OS X) and CRLF (Windows)
## Example: No color, using indices:
```javascript
var OopsyData = require("oopsy-data");
var code =
"hello world\n" +
"this is me and cool\n" +
"nice nice nice\n";
var indices = [
{index: 0},
{index: 2},
{index: 13}
];
var data = OopsyData.fromIndices(code, indices);
data.forEach(function(d) {
console.log("Line:", d.line, "Column:", d.column);
console.log(d.context);
});
```## Example: Color, using locations:
```javascript
var OopsyData = require("oopsy-data");
var code =
"hello world\n" +
"this is me and cool\n" +
"nice nice nice\n";
var indices = [
{line: 1, column: 1},
{line: 2, column: 7},
{line: 3, column: 10}
];
var data = OopsyData.fromLocations(code, locations, {color: true});
data.forEach(function(d) {
console.log("Line:", d.line, "Column:", d.column);
console.log(d.context);
});
```