UNPKG

1.52 kBJavaScriptView Raw
1'use strict';
2Object.defineProperty(exports, "__esModule", { value: true });
3var assertion = require("./assertion");
4var serialise = require("./serialise");
5var regex = require("./regex");
6var parseLax = require("./parser/lax");
7var model = require("./model");
8exports.model = model;
9var utils = require("./utils");
10exports.utils = utils;
11exports.parts = parseLax;
12function isPartial(source) {
13 return regex.partial.test(source);
14}
15exports.isPartial = isPartial;
16function parse(source) {
17 if (regex.bomStart.test(source)) {
18 source = source.replace(regex.bomStart, '');
19 }
20 var result = parseLax.header.parse(source);
21 var ret = {
22 success: !!result.status
23 };
24 if (result.status === true) {
25 ret.value = result.value;
26 return ret;
27 }
28 ret.index = result.index.offset;
29 ret.line = result.index.line;
30 ret.column = result.index.column;
31 ret.message = 'expected ' + result.expected[0].replace(/"/, '\"') + ' at line ' + ret.line + ', column ' + ret.column;
32 var details = '';
33 details += ret.message + ':';
34 details += '\n\n';
35 details += utils.highlightPos(source, ret.line, ret.column);
36 details += '\n';
37 ret.details = details;
38 return ret;
39}
40exports.parse = parse;
41function stringify(header) {
42 return serialise.stringify(header);
43}
44exports.stringify = stringify;
45function assert(header) {
46 return assertion.header(header);
47}
48exports.assert = assert;
49//# sourceMappingURL=index.js.map
\No newline at end of file