1 | 'use strict';
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var assertion = require("./assertion");
|
4 | var serialise = require("./serialise");
|
5 | var regex = require("./regex");
|
6 | var parseLax = require("./parser/lax");
|
7 | var model = require("./model");
|
8 | exports.model = model;
|
9 | var utils = require("./utils");
|
10 | exports.utils = utils;
|
11 | exports.parts = parseLax;
|
12 | function isPartial(source) {
|
13 | return regex.partial.test(source);
|
14 | }
|
15 | exports.isPartial = isPartial;
|
16 | function 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 | }
|
40 | exports.parse = parse;
|
41 | function stringify(header) {
|
42 | return serialise.stringify(header);
|
43 | }
|
44 | exports.stringify = stringify;
|
45 | function assert(header) {
|
46 | return assertion.header(header);
|
47 | }
|
48 | exports.assert = assert;
|
49 |
|
\ | No newline at end of file |