longshotlabs / simpl-schema

A JavaScript schema validation package that supports direct validation of MongoDB update modifier objects
https://www.npmjs.com/package/simpl-schema
MIT License
560 stars 114 forks source link

Extending Array type field, erases its nested field #404

Closed Floriferous closed 4 years ago

Floriferous commented 4 years ago

Quite simply here's some code that throws "myArray" is Array type but the schema does not include a "myArray.$" definition for the array items":

import SimpleSchema from "simpl-schema";

const schema = new SimpleSchema({
  myArray: {
    type: Array
  },
  "myArray.$": {
    type: String,
    allowedValues: ["foo", "bar"]
  }
});

schema.extend({
  myArray: {
    minCount: 1
  }
})

It looks like you can't extend an Array type field, without passing the entire array.$ field again.

Here's a codesandbox: https://codesandbox.io/s/flamboyant-tdd-hy0mg?file=/src/index.js:0-241

github-actions[bot] commented 4 years ago

Thank you for submitting an issue!

If this is a bug report, please be sure to include, at minimum, example code showing a small schema and any necessary calls with all their arguments, which will reproduce the issue. Even better, you can link to a saved online code editor example, where anyone can immediately run the code and see the issue.

If you are requesting a feature, include a code example of how you imagine it working if it were implemented.

If you need to edit your issue description, click the [...] and choose Edit.

Be patient. This is a free and freely licensed package that I maintain in my spare time. You may get a response in a day, but it could also take a month. If you benefit from this package and would like to see more of my time devoted to it, you can help by sponsoring.

github-actions[bot] commented 4 years ago

:tada: This issue has been resolved in version 1.10.1 :tada:

The release is available on:

If this makes you happy, please consider becoming a sponsor.

Your semantic-release bot :package::rocket: