1 |
|
2 |
|
3 |
|
4 |
|
5 | "use strict";
|
6 |
|
7 | const parseJson = require("json-parse-better-errors");
|
8 | const JsonExportsDependency = require("./dependencies/JsonExportsDependency");
|
9 |
|
10 | class 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 |
|
27 | module.exports = JsonParser;
|