Build validate functions for redux-form from Meteor SimpleSchema
npm install meteor-simple-schema-transformTransform
Meteor SimpleSchema
objects into other objects
and functions for use with a variety of form engines, validators, etc.
A helper to turn a
Meteor SimpleSchema
into a variety of translations and transformations,
for use with any other form builder, validator, submitter, etc.
The goal is to make SimpleSchema a portable source, for other libraries.
This is a very early idea project.
Take a look at this
forum thread
Also checkout the excellent uniforms project
for a more complete solution for forms (though more tied to Meteor).
``shell`
npm i --save meteor-simple-schema-transform
There are various parts you may want to use.
Include only those tools you need.
Missing a tool/translation? _(add it and submit a PR)_
Build SimpleSchema into a value cleanup function - clean values object based on schema
`js
// MyContainer
import { Meteor } from 'meteor/meteor';
import { createContainer } from 'meteor/react-meteor-data';
import { MyPage } from '../pages/MyPage';
import SST from 'meteor-simple-schema-transform';
const mySchema = new SimpleSchema({
name: {
label: "Friendly Name",
type: String,
min: 3,
max: 30,
}
});
const cleaner = SST.buildClean(mySchema);
export default createContainer(({ params }) => {
// ....
saveData (data) {
Meteor.call('myMethod', cleaner(data), (err) => {
if (err) console.error('Got Error on saveData', err);
});
}
return {
saveData
}
}, MyPage);
`
Build SimpleSchema into a validate function for use with
ReduxForm
`js
// MyContainer
import { Meteor } from 'meteor/meteor';
import { createContainer } from 'meteor/react-meteor-data';
import { MyPage } from '../pages/MyPage';
import SST from 'meteor-simple-schema-transform';
const mySchema = new SimpleSchema({
name: {
label: "Friendly Name",
type: String,
min: 3,
max: 30,
}
});
const cleaner = SST.buildClean(mySchema);
const validate = SST.forReduxForm.buildValidate(mySchema);
export default createContainer(({ params }) => {
// ....
saveData (data) {
Meteor.call('myMethod', cleaner(data), (err) => {
if (err) console.error('Got Error on saveData', err);
});
}
return {
saveData,
validate
}
}, MyPage);
``
- [x] Proof of concept
- [ ] other easy schema validate variations
- [ ] other easy schema transformations