keystonejs-site icon indicating copy to clipboard operation
keystonejs-site copied to clipboard

Add documentation about adding custom fields

Open mxstbr opened this issue 8 years ago • 0 comments

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');
} });

mxstbr avatar Mar 26 '16 00:03 mxstbr