import { Contract } from "@paperbits/common"; import { IModelBinder } from "@paperbits/common/editing"; import { SignupModel } from "./signupModel"; import { SignupContract } from "./signupContract"; const nodeType = "signup"; const oldNodeType = "user-signup"; export class SignupModelBinder implements IModelBinder { public canHandleContract(contract: Contract): boolean { return contract.type === nodeType || contract.type === oldNodeType; } public canHandleModel(model: Object): boolean { return model instanceof SignupModel; } public async contractToModel(contract: SignupContract): Promise { const model = new SignupModel(); model.requireHipCaptcha = contract.requireHipCaptcha; return model; } public modelToContract(model: SignupModel): Contract { const contract: SignupContract = { type: nodeType, requireHipCaptcha: model.requireHipCaptcha }; return contract; } }