Merge pull request #1583 from strongloop/fix-ts-defs

Fix ts defs
This commit is contained in:
Raymond Feng 2018-05-10 10:20:10 -07:00 committed by GitHub
commit e49eb47e36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 16 deletions

View File

@ -418,6 +418,12 @@ ModelBaseClass.toString = function() {
* @returns {Object} returns Plain JSON object
*/
ModelBaseClass.prototype.toObject = function(onlySchema, removeHidden, removeProtected) {
if (typeof onlySchema === 'object' && onlySchema != null) {
var options = onlySchema;
onlySchema = options.onlySchema;
removeHidden = options.removeHidden;
removeProtected = options.removeProtected;
}
if (onlySchema === undefined) {
onlySchema = true;
}

View File

@ -133,8 +133,8 @@ describe('ModelBuilder', function() {
// Predefined property bio should be kept
user.toObject().should.have.property('bio', 'me');
user.toObject(true).should.have.property('bio', 'me');
user.toObject(false).should.have.property('bio', 'me');
user.toObject({onlySchema: true}).should.have.property('bio', 'me');
user.toObject({onlySchema: false}).should.have.property('bio', 'me');
done(null, User);
});

View File

@ -83,7 +83,9 @@ export declare class DataSource {
DataAccessObject: AnyObject & {prototype: AnyObject};
constructor(name?: string, settings?: Options, modelBuilder?: ModelBuilder);
constructor(name: string, settings?: Options, modelBuilder?: ModelBuilder);
constructor(settings?: Options, modelBuilder?: ModelBuilder);
constructor(
connectorModule: Connector,

24
types/model.d.ts vendored
View File

@ -92,7 +92,7 @@ export declare class ModelDefinition extends EventEmitter implements Schema {
}
/**
* Base model class
* Base class for LoopBack 3.x models
*/
export declare class ModelBase {
static dataSource?: DataSource;
@ -135,15 +135,16 @@ export declare class ModelBase {
static getUpdateOnlyProperties(): string[];
/**
* Model class: base class for all persistent objects.
* Constructor for ModelBase
*
* `ModelBaseClass` mixes `Validatable` and `Hookable` classes methods
* NOTE: We have to use `constructor(...args: any[]);` so that it can be used
* for `return class extends superClass`.
*
* @class
* @param {AnyObject} data Initial object data
* @param {Options} options An object to control the instantiation
*/
constructor(data: AnyObject, options?: Options);
constructor(...args: any[]);
// constructor(data: AnyObject, options?: Options);
/**
* Convert the model instance to a plain json object
@ -160,20 +161,17 @@ export declare class ModelBase {
* Convert model instance to a plain JSON object.
* Returns a canonical object representation (no getters and setters).
*
* @param {boolean} onlySchema Restrict properties to dataSource only.
* @param options Options for the conversion
* @property {boolean} onlySchema Restrict properties to dataSource only.
* Default is false. If true, the function returns only properties defined
* in the schema; Otherwise it returns all enumerable properties.
* @param {boolean} removeHidden Boolean flag as part of the transformation.
* @property {boolean} removeHidden Boolean flag as part of the transformation.
* If true, then hidden properties should not be brought out.
* @param {boolean} removeProtected Boolean flag as part of the transformation.
* @property {boolean} removeProtected Boolean flag as part of the transformation.
* If true, then protected properties should not be brought out.
* @returns {object} returns Plain JSON object
*/
toObject(
onlySchema?: boolean,
removeHidden?: boolean,
removeProtected?: boolean,
): AnyObject;
toObject(options?: Options): AnyObject;
/**
* Define a property on the model.