diff options
Diffstat (limited to 'cmd/binapi-generator/main.go')
-rw-r--r-- | cmd/binapi-generator/main.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cmd/binapi-generator/main.go b/cmd/binapi-generator/main.go index 89a2b2d..d46001d 100644 --- a/cmd/binapi-generator/main.go +++ b/cmd/binapi-generator/main.go @@ -116,6 +116,14 @@ func getInputFiles(inputDir string, deep int) (files []string, err error) { return files, nil } +func parseInputJSON(inputData []byte) (*jsongo.JSONNode, error) { + jsonRoot := new(jsongo.JSONNode) + if err := json.Unmarshal(inputData, jsonRoot); err != nil { + return nil, fmt.Errorf("unmarshalling JSON failed: %v", err) + } + return jsonRoot, nil +} + // generateFromFile generates Go package from one input JSON file func generateFromFile(inputFile, outputDir string) error { // create generator context @@ -142,9 +150,9 @@ func generateFromFile(inputFile, outputDir string) error { return fmt.Errorf("reading input file %s failed: %v", ctx.inputFile, err) } // parse JSON data into objects - jsonRoot := new(jsongo.JSONNode) - if err := json.Unmarshal(ctx.inputData, jsonRoot); err != nil { - return fmt.Errorf("unmarshalling JSON failed: %v", err) + jsonRoot, err := parseInputJSON(ctx.inputData) + if err != nil { + return fmt.Errorf("parsing JSON input failed: %v", err) } ctx.packageData, err = parsePackage(ctx, jsonRoot) if err != nil { |