keystonejs-site
keystonejs-site copied to clipboard
Add documentation about adding custom fields
See https://github.com/keystonejs/keystone/pull/2472
According to @snowkeeper, it works something like this:
var keystone = require('keystone');
var util = require('util');
/*
Custom FieldType Constructor
@extends Field
@api public
*/
function custom(list, path, options) {
// add your options to this
// call super_
custom.super_.call(this, list, path, options);
}
/* inherit Field */
util.inherits(custom, keystone.Field);
/* override or add methods */
custom.prototype.addToSchema = function() {
// override schema instructions
}
/* Export Field Type */ exports = module.exports = custom;
var keystone = require('keystone');
Object.defineProperty(keystone.Field.Types, 'myField', { get: function() {
return require(./customType.js');
} });