UNPKG

758 BJavaScriptView Raw
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5"use strict";
6
7const parseJson = require("json-parse-better-errors");
8const JsonExportsDependency = require("./dependencies/JsonExportsDependency");
9
10class JsonParser {
11 constructor(options) {
12 this.options = options;
13 }
14
15 parse(source, state) {
16 const data = parseJson(source[0] === "\ufeff" ? source.slice(1) : source);
17 state.module.buildInfo.jsonData = data;
18 state.module.buildMeta.exportsType = "named";
19 if (typeof data === "object" && data) {
20 state.module.addDependency(new JsonExportsDependency(Object.keys(data)));
21 }
22 state.module.addDependency(new JsonExportsDependency(["default"]));
23 return state;
24 }
25}
26
27module.exports = JsonParser;