36 lines
873 B
JavaScript
36 lines
873 B
JavaScript
import SimpleSchema from 'simpl-schema';
|
|
import VARIABLE_NAME_REGEX from '/imports/constants/VARIABLE_NAME_REGEX.js';
|
|
|
|
/*
|
|
* Constants are primitive values that can be used elsewhere in computations
|
|
*/
|
|
let ConstantSchema = new SimpleSchema({
|
|
name: {
|
|
type: String,
|
|
optional: true,
|
|
},
|
|
// The technical, lowercase, single-word name used in formulae
|
|
variableName: {
|
|
type: String,
|
|
regEx: VARIABLE_NAME_REGEX,
|
|
min: 2,
|
|
defaultValue: 'newConstant',
|
|
},
|
|
// The input value to be parsed, must return a constant node or an array
|
|
// of constant nodes to be valid
|
|
calculation: {
|
|
type: String,
|
|
optional: true,
|
|
},
|
|
// The value, or array of values
|
|
result: {
|
|
type: SimpleSchema.oneOf(String, Number, Boolean, Array),
|
|
maxSize: 32,
|
|
},
|
|
'result.$': {
|
|
type: SimpleSchema.oneOf(String, Number, Boolean),
|
|
}
|
|
});
|
|
|
|
export { ConstantSchema };
|