vazco / uniforms

A React library for building forms from any schema.

Home Page:https://uniforms.tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

$ref in subschemas

ph-poppe opened this issue · comments

Before you open an issue, please check if a similar one already exists or has been closed before. Detailed information about the process of contributing can be found in CONTRIBUTING.md.

Let us know what is happening. Do provide us with:

  • Affected versions of the core, bridge, and theme packages you are aware of.
    • Include other versions as well, if you think it may help (React, browser, etc.).
  • Steps to reproduce. If possible, include a reproduction using our playground or CodeSandbox template.
  • Possible workarounds, if you've found any.

versions:
"uniforms": "^4.0.0-alpha.5",
"uniforms-bridge-json-schema": "^4.0.0-alpha.5",
"ajv": "^8.0.0",

run on chrome, React v 16.14

I have 2 schemas that are combined in a final one:

subschema1:

// note: instanceOf is handled by ajv
{
  $id: "/schemas/dateDef",
  oneOf: [{ type: "string", format: "date-time" }, { instanceof: "Date" }]
};

subschema 2:

{
  $id: "schemas/schema2",
  $schema: "http://json-schema.org/draft-07/schema#",
  type: "object",
  properties: {
    receivedDate: {
      $ref: "#/definitions/dateDef"
    },
    dueDate: {
      $ref: "#/definitions/dateDef"
    }
  },
  definitions:{
    dateDef:...
  }
}

final schema:

{
  type: "object",
  properties: {
     test: {$ref: "#/definitions/subSchema2"}
  },
  definitions: {
   subSchema2:...
 }
}

When this is loaded into the jonschemabridge, I hit the problem that dateDef is not resolved. In the jsonschemabridge he is looking for the dateDef definition in the parent schema, not in the subschema (subSchema2) and hence throwing an error. Is there a way for the bridge to look up the definition in the subschema?

current workaround:

  • adding the definition of the subSchema1 in the final schema as well.

thanks for the support!