Skip to content

Commit 585d91f

Browse files
author
Vlad Balin
committed
New mixins pattern
1 parent 4a43f29 commit 585d91f

File tree

6 files changed

+10
-45
lines changed

6 files changed

+10
-45
lines changed

Diff for: dist/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/transactions.d.ts

+3-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { IOEndpoint, IONode, IOPromise } from './io-tools';
2-
import { CallbacksByEvents, eventsApi, Logger, LogLevel, Messenger, MessengerDefinition, MessengersByCid, MixinsState } from './object-plus';
2+
import { Logger, LogLevel, Messenger, MessengerDefinition, MixinsState } from './object-plus';
33
import { Traversable } from './traversable';
44
import { ChildrenErrors, Validatable, ValidationError } from './validation';
55
export interface TransactionalDefinition extends MessengerDefinition {
@@ -10,6 +10,8 @@ export declare enum ItemsBehavior {
1010
listen = 2,
1111
persistent = 4
1212
}
13+
export interface Transactional extends Messenger {
14+
}
1315
export declare abstract class Transactional implements Messenger, IONode, Validatable, Traversable {
1416
static endpoint: IOEndpoint;
1517
static __super__: object;
@@ -19,22 +21,9 @@ export declare abstract class Transactional implements Messenger, IONode, Valida
1921
static onDefine(definitions: TransactionalDefinition, BaseClass: typeof Transactional): void;
2022
static onExtend(BaseClass: typeof Transactional): void;
2123
static create(a: any, b?: any): Transactional;
22-
on: (events: string | CallbacksByEvents, callback: any, context?: any) => this;
23-
once: (events: string | CallbacksByEvents, callback: any, context?: any) => this;
24-
off: (events?: string | CallbacksByEvents, callback?: any, context?: any) => this;
25-
trigger: (name: string, a?: any, b?: any, c?: any, d?: any, e?: any) => this;
26-
stopListening: (source?: Messenger, a?: string | CallbacksByEvents, b?: Function) => this;
27-
listenTo: (source: Messenger, a: string | CallbacksByEvents, b?: Function) => this;
28-
listenToOnce: (source: Messenger, a: string | CallbacksByEvents, b?: Function) => this;
29-
_disposed: boolean;
3024
readonly __inner_state__: any;
3125
_shared?: number;
3226
dispose(): void;
33-
initialize(): void;
34-
_events: eventsApi.HandlersByEvent;
35-
_listeningTo: MessengersByCid;
36-
_localEvents: eventsApi.EventMap;
37-
cid: string;
3827
cidPrefix: string;
3928
_changeToken: {};
4029
_transaction: boolean;

Diff for: lib/transactions.js

-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/transactions.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: src/transactions.ts

+4-26
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ export enum ItemsBehavior {
2222
}
2323

2424
// Transactional object interface
25+
26+
export interface Transactional extends Messenger {}
27+
2528
@define
2629
@definitions({
2730
endpoint : mixinRules.value
@@ -53,18 +56,6 @@ export abstract class Transactional implements Messenger, IONode, Validatable, T
5356
return new (this as any)( a, b );
5457
}
5558

56-
/** Generic class factory. May be overridden for abstract classes. Not inherited. */
57-
on : ( events : string | CallbacksByEvents, callback, context? ) => this
58-
once : ( events : string | CallbacksByEvents, callback, context? ) => this
59-
off : ( events? : string | CallbacksByEvents, callback?, context? ) => this
60-
trigger : (name : string, a?, b?, c?, d?, e? ) => this
61-
62-
stopListening : ( source? : Messenger, a? : string | CallbacksByEvents, b? : Function ) => this
63-
listenTo : ( source : Messenger, a : string | CallbacksByEvents, b? : Function ) => this
64-
listenToOnce : ( source : Messenger, a : string | CallbacksByEvents, b? : Function ) => this
65-
66-
_disposed : boolean;
67-
6859
// State accessor.
6960
readonly __inner_state__ : any;
7061

@@ -81,20 +72,7 @@ export abstract class Transactional implements Messenger, IONode, Validatable, T
8172
this.stopListening();
8273
this._disposed = true;
8374
}
84-
85-
// Must be called at the end of the constructor in the subclass.
86-
initialize() : void {}
87-
88-
/** @private */
89-
_events : eventsApi.HandlersByEvent = void 0;
90-
91-
/** @private */
92-
_listeningTo : MessengersByCid
93-
94-
/** @private */
95-
_localEvents : eventsApi.EventMap
96-
97-
cid : string
75+
9876
cidPrefix : string
9977

10078
// Unique version token replaced on change

0 commit comments

Comments
 (0)