Added instance, schema and symbol to field configuration factories
This commit is contained in:
@@ -11,6 +11,11 @@ export function factory(factory_function, description) {
|
||||
return new Field_Configuration(null, null, factory_function, description);
|
||||
}
|
||||
|
||||
export function instance(type, description) {
|
||||
|
||||
return new Field_Configuration((i) => i instanceof type, null, () => new type(), description);
|
||||
}
|
||||
|
||||
export function typed_value(coercion_function, default_value, description) {
|
||||
return new Field_Configuration(null, coercion_function, () => default_value, description);
|
||||
}
|
||||
@@ -33,6 +38,14 @@ export function typed_required(coercion_function, description) {
|
||||
return new Field_Configuration((value) => value !== undefined, coercion_function, null, description);
|
||||
}
|
||||
|
||||
export function schema(field_schema, default_value, description) {
|
||||
return new Field_Configuration(null, (v) => field_schema.load(v), () => field_schema.load(default_value), description);
|
||||
}
|
||||
|
||||
export function symbol(symbol_set, default_value, description) {
|
||||
return new Field_Configuration(null, (v) => symbol_set.load(v), () => symbol_set.load(default_value), description);
|
||||
}
|
||||
|
||||
export function symbol_set(description_to_name_mapping, description=null) {
|
||||
|
||||
const symbols_by_name = Object.fromEntries(Object.keys(description_to_name_mapping).map(k => [k, Symbol(k)]));
|
||||
|
||||
Reference in New Issue
Block a user