Skip to content

Commit

Permalink
Added interface abstractions for most types, also renamed some of the…
Browse files Browse the repository at this point in the history
… methods to be more sensible, which are breaking changes.
  • Loading branch information
grofit committed Apr 1, 2016
1 parent 6bdcc0a commit c9b154b
Show file tree
Hide file tree
Showing 23 changed files with 458 additions and 131 deletions.
5 changes: 3 additions & 2 deletions dist/definitions/factories/validation-group-factory.d.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { ValidationGroup } from "../validation-group";
import { FieldErrorProcessor } from "../processors/field-error-processor";
import { Ruleset } from "../rulesets/ruleset";
import { IModelWatcher } from "../watcher/imodel-watcher";
import { IRuleResolver } from "../rulesets/irule-resolver";
import { IFieldErrorProcessor } from "../processors/ifield-error-processor";
export declare class ValidationGroupFactory {
private fieldErrorProcessor;
private modelWatcher;
private propertyResolver;
private ruleResolver;
constructor(fieldErrorProcessor: FieldErrorProcessor, modelWatcher: IModelWatcher, propertyResolver: any, ruleResolver: any);
constructor(fieldErrorProcessor: IFieldErrorProcessor, modelWatcher: IModelWatcher, propertyResolver: any, ruleResolver: IRuleResolver);
createValidationGroup: (model: any, ruleset: Ruleset) => ValidationGroup;
}
13 changes: 8 additions & 5 deletions dist/definitions/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export * from "./exposer";
export * from "./ivalidation-group";
export * from "./validation-group";
export * from "./events/property-validation-changed-event";
export * from "./events/validation-state-changed-event";
Expand All @@ -7,12 +8,8 @@ export * from "./helpers/comparer-helper";
export * from "./helpers/type-helper";
export * from "./processors/field-error-processor";
export * from "./processors/field-has-error";
export * from "./processors/ifield-error-processor";
export * from "./processors/validation-error";
export * from "./rulesets/for-each-rule";
export * from "./rulesets/rule-link";
export * from "./rulesets/rule-resolver";
export * from "./rulesets/ruleset-builder";
export * from "./rulesets/ruleset";
export * from "./rules/date-validation-rule";
export * from "./rules/decimal-validation-rule";
export * from "./rules/email-validation-rule";
Expand All @@ -33,3 +30,9 @@ export * from "./watcher/imodel-watcher";
export * from "./watcher/model-watcher";
export * from "./watcher/property-changed-event";
export * from "./watcher/property-watcher";
export * from "./rulesets/for-each-rule";
export * from "./rulesets/irule-resolver";
export * from "./rulesets/rule-link";
export * from "./rulesets/rule-resolver";
export * from "./rulesets/ruleset-builder";
export * from "./rulesets/ruleset";
9 changes: 9 additions & 0 deletions dist/definitions/ivalidation-group.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { EventHandler } from "eventjs";
export interface IValidationGroup {
propertyStateChangedEvent: EventHandler;
modelStateChangedEvent: EventHandler;
isValid(): Promise<boolean>;
getModelErrors(): Promise<any>;
getPropertyError(propertyRoute: string): Promise<any>;
release(): void;
}
3 changes: 2 additions & 1 deletion dist/definitions/processors/field-error-processor.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import * as Promise from "bluebird";
import { RuleRegistry } from "../rules/rule-registry";
import { RuleLink } from "../rulesets/rule-link";
export declare class FieldErrorProcessor {
import { IFieldErrorProcessor } from "./ifield-error-processor";
export declare class FieldErrorProcessor implements IFieldErrorProcessor {
ruleRegistry: RuleRegistry;
constructor(ruleRegistry: RuleRegistry);
processRuleLink(fieldValue: any, ruleLink: RuleLink): Promise<any>;
Expand Down
6 changes: 6 additions & 0 deletions dist/definitions/processors/ifield-error-processor.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import * as Promise from "bluebird";
import { RuleLink } from "../rulesets/rule-link";
export interface IFieldErrorProcessor {
processRuleLink(fieldValue: any, ruleLink: RuleLink): Promise<any>;
checkFieldForErrors(fieldValue: any, rules: any): Promise<string>;
}
4 changes: 4 additions & 0 deletions dist/definitions/rulesets/irule-resolver.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { Ruleset } from "./ruleset";
export interface IRuleResolver {
resolvePropertyRules(propertyRoute: string, ruleset: Ruleset): any;
}
3 changes: 2 additions & 1 deletion dist/definitions/rulesets/rule-resolver.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { IRuleResolver } from "./irule-resolver";
import { PropertyResolver } from "property-resolver";
import { Ruleset } from "./ruleset";
export declare class RuleResolver {
export declare class RuleResolver implements IRuleResolver {
private propertyResolver;
constructor(propertyResolver?: PropertyResolver);
isPropertyRoute: (possiblePropertyRoute: string) => boolean;
Expand Down
18 changes: 10 additions & 8 deletions dist/definitions/validation-group.d.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
import * as Promise from "bluebird";
import { PropertyResolver } from "property-resolver";
import { EventHandler } from "eventjs";
import { FieldErrorProcessor } from "./processors/field-error-processor";
import { Ruleset } from "./rulesets/ruleset";
import { RuleResolver } from "./rulesets/rule-resolver";
import { IModelWatcher } from "./watcher/imodel-watcher";
export declare class ValidationGroup {
import { IValidationGroup } from "./ivalidation-group";
import { IFieldErrorProcessor } from "./processors/ifield-error-processor";
import { IRuleResolver } from "./rulesets/irule-resolver";
export declare class ValidationGroup implements IValidationGroup {
private fieldErrorProcessor;
private modelWatcher;
private propertyResolver;
private ruleResolver;
private ruleset;
private model;
refreshRate: number;
propertyErrors: {};
propertyChangedEvent: EventHandler;
validationStateChangedEvent: EventHandler;
private propertyErrors;
private activePromiseChain;
private activeValidators;
constructor(fieldErrorProcessor: FieldErrorProcessor, modelWatcher: IModelWatcher, propertyResolver: PropertyResolver, ruleResolver: RuleResolver, ruleset: Ruleset, model: any, refreshRate?: number);
propertyStateChangedEvent: EventHandler;
modelStateChangedEvent: EventHandler;
constructor(fieldErrorProcessor: IFieldErrorProcessor, modelWatcher: IModelWatcher, propertyResolver: PropertyResolver, ruleResolver: IRuleResolver, ruleset: Ruleset, model: any, refreshRate?: number);
private isRuleset(possibleRuleset);
private isForEach(possibleForEach);
private onModelChanged;
Expand All @@ -29,7 +30,8 @@ export declare class ValidationGroup {
private validateModel;
private hasErrors;
isValid: () => Promise<boolean>;
getErrors: () => Promise<any>;
getModelErrors: () => Promise<any>;
getPropertyError: (propertyRoute: string) => Promise<any>;
release: () => void;
private waitForValidatorsToFinish;
}
63 changes: 46 additions & 17 deletions dist/treacherous.all.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
__export(__webpack_require__(1));
__export(__webpack_require__(40));
__export(__webpack_require__(3));
__export(__webpack_require__(11));
__export(__webpack_require__(12));
Expand All @@ -67,18 +68,14 @@ return /******/ (function(modules) { // webpackBootstrap
__export(__webpack_require__(14));
__export(__webpack_require__(15));
__export(__webpack_require__(16));
__export(__webpack_require__(40));
__export(__webpack_require__(36));
__export(__webpack_require__(35));
__export(__webpack_require__(13));
__export(__webpack_require__(33));
__export(__webpack_require__(34));
__export(__webpack_require__(41));
__export(__webpack_require__(42));
__export(__webpack_require__(18));
__export(__webpack_require__(19));
__export(__webpack_require__(20));
__export(__webpack_require__(21));
__export(__webpack_require__(23));
__export(__webpack_require__(41));
__export(__webpack_require__(43));
__export(__webpack_require__(24));
__export(__webpack_require__(25));
__export(__webpack_require__(26));
Expand All @@ -89,10 +86,16 @@ return /******/ (function(modules) { // webpackBootstrap
__export(__webpack_require__(31));
__export(__webpack_require__(17));
__export(__webpack_require__(32));
__export(__webpack_require__(42));
__export(__webpack_require__(44));
__export(__webpack_require__(37));
__export(__webpack_require__(39));
__export(__webpack_require__(38));
__export(__webpack_require__(36));
__export(__webpack_require__(45));
__export(__webpack_require__(35));
__export(__webpack_require__(13));
__export(__webpack_require__(33));
__export(__webpack_require__(34));


/***/ },
Expand Down Expand Up @@ -189,6 +192,7 @@ return /******/ (function(modules) { // webpackBootstrap
var validation_state_changed_event_1 = __webpack_require__(12);
var rule_resolver_1 = __webpack_require__(13);
var type_helper_1 = __webpack_require__(14);
// TODO: This class is WAY to long, needs refactoring
var ValidationGroup = (function () {
function ValidationGroup(fieldErrorProcessor, modelWatcher, propertyResolver, ruleResolver, ruleset, model, refreshRate) {
var _this = this;
Expand All @@ -214,9 +218,9 @@ return /******/ (function(modules) { // webpackBootstrap
if (_this.propertyErrors[propertyName]) {
delete _this.propertyErrors[propertyName];
var eventArgs = new property_validation_changed_event_1.PropertyValidationChangedEvent(propertyName, true);
_this.propertyChangedEvent.publish(eventArgs);
_this.propertyStateChangedEvent.publish(eventArgs);
if (hadErrors) {
_this.validationStateChangedEvent.publish(new validation_state_changed_event_1.ValidationStateChangedEvent(true));
_this.modelStateChangedEvent.publish(new validation_state_changed_event_1.ValidationStateChangedEvent(true));
}
}
return;
Expand All @@ -225,9 +229,9 @@ return /******/ (function(modules) { // webpackBootstrap
_this.propertyErrors[propertyName] = possibleError;
if (possibleError != previousError) {
var eventArgs = new property_validation_changed_event_1.PropertyValidationChangedEvent(propertyName, false, possibleError);
_this.propertyChangedEvent.publish(eventArgs);
_this.propertyStateChangedEvent.publish(eventArgs);
if (!hadErrors) {
_this.validationStateChangedEvent.publish(new validation_state_changed_event_1.ValidationStateChangedEvent(false));
_this.modelStateChangedEvent.publish(new validation_state_changed_event_1.ValidationStateChangedEvent(false));
}
}
};
Expand Down Expand Up @@ -319,10 +323,14 @@ return /******/ (function(modules) { // webpackBootstrap
return _this.waitForValidatorsToFinish()
.then(function () { return !_this.hasErrors(); });
};
this.getErrors = function () {
this.getModelErrors = function () {
return _this.waitForValidatorsToFinish()
.then(function () { return _this.propertyErrors; });
};
this.getPropertyError = function (propertyRoute) {
return _this.waitForValidatorsToFinish()
.then(function () { return _this.propertyErrors[propertyRoute]; });
};
this.release = function () {
_this.modelWatcher.stopWatching();
};
Expand All @@ -336,8 +344,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, 50);
});
};
this.propertyChangedEvent = new eventjs_1.EventHandler(this);
this.validationStateChangedEvent = new eventjs_1.EventHandler(this);
this.propertyStateChangedEvent = new eventjs_1.EventHandler(this);
this.modelStateChangedEvent = new eventjs_1.EventHandler(this);
this.modelWatcher.setupWatcher(model, ruleset, refreshRate);
this.modelWatcher.onPropertyChanged.subscribe(this.onModelChanged);
this.validateModel();
Expand Down Expand Up @@ -7107,6 +7115,20 @@ return /******/ (function(modules) { // webpackBootstrap
/* 40 */
/***/ function(module, exports) {




/***/ },
/* 41 */
/***/ function(module, exports) {




/***/ },
/* 42 */
/***/ function(module, exports) {

var ValidationError = (function () {
function ValidationError(propertyName, message) {
this.propertyName = propertyName;
Expand All @@ -7118,14 +7140,21 @@ return /******/ (function(modules) { // webpackBootstrap


/***/ },
/* 41 */
/* 43 */
/***/ function(module, exports) {




/***/ },
/* 42 */
/* 44 */
/***/ function(module, exports) {




/***/ },
/* 45 */
/***/ function(module, exports) {


Expand Down
Loading

0 comments on commit c9b154b

Please sign in to comment.