diff --git a/.eslintrc.js b/.eslintrc.js index e965cbb..2ef403f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -29,6 +29,7 @@ module.exports = { "@typescript-eslint" ], "rules": { + "@typescript-eslint/no-explicit-any": "off", "indent": [ "error", 4 diff --git a/README.md b/README.md index 090877c..11e2df2 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ npm i @puremvc/puremvc-typescript-multicore-framework * [React Native](https://en.wikipedia.org/wiki/React_Native) ## Status -Production - [Version 2.0.1](https://github.com/PureMVC/puremvc-typescript-multicore-framework/blob/master/VERSION) +Production - [Version 2.0.2](https://github.com/PureMVC/puremvc-typescript-multicore-framework/blob/master/VERSION) ## License * PureMVC MultiCore Framework for TypeScript - Copyright © 2024 [Saad Shams](https://www.linkedin.com/in/muizz) diff --git a/VERSION b/VERSION index b685ce2..94d8bf3 100644 --- a/VERSION +++ b/VERSION @@ -4,8 +4,9 @@ Release Date: 11/03/24 Platform: TypeScript Version: 2 Revision: 0 - Minor: 1 + Minor: 2 Authors: Saad Shams -------------------------------------------------------------------------- 2.0.0 - Brand new implementation of ported code, equivalent to AS3 MultiCore Version 1.0.5. 2.0.1 - CI/CD Pipeline +2.0.2 - Updated docs and tests diff --git a/docs/assets/icons.js b/docs/assets/icons.js index e88e8ca..3dfbd32 100644 --- a/docs/assets/icons.js +++ b/docs/assets/icons.js @@ -3,7 +3,7 @@ function addIcons() { if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `""`; + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; svg.style.display = "none"; if (location.protocol === "file:") updateUseElements(); } diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg index e371b8b..a19417d 100644 --- a/docs/assets/icons.svg +++ b/docs/assets/icons.svg @@ -1 +1 @@ - \ No newline at end of file +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js index 21a5d74..99097a0 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -3,7 +3,7 @@ window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This me "use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span"));r.innerHTML='',r.appendChild(document.createElement("span")).textContent=t.text}}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/assets/search.js b/docs/assets/search.js index b20f434..3afc45a 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css index 9d619a6..178bfb0 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -4,11 +4,17 @@ --light-color-background-secondary: #eff0f1; --light-color-warning-text: #222; --light-color-background-warning: #e6e600; - --light-color-icon-background: var(--light-color-background); --light-color-accent: #c5c7c9; --light-color-active-menu-item: var(--light-color-accent); --light-color-text: #222; --light-color-text-aside: #6e6e6e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + --light-color-link: #1f70c2; --light-color-focus-outline: #3584e4; @@ -22,16 +28,17 @@ --light-color-ts-function: #572be7; --light-color-ts-class: #1f70c2; --light-color-ts-interface: #108024; - --light-color-ts-constructor: var(--light-color-ts-class); - --light-color-ts-property: var(--light-color-ts-variable); - --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-constructor: #4d7fff; + --light-color-ts-property: #ff984d; + --light-color-ts-method: #ff4db8; + --light-color-ts-reference: #ff4d82; --light-color-ts-call-signature: var(--light-color-ts-method); --light-color-ts-index-signature: var(--light-color-ts-property); --light-color-ts-constructor-signature: var(--light-color-ts-constructor); --light-color-ts-parameter: var(--light-color-ts-variable); /* type literal not included as links will never be generated to it */ --light-color-ts-type-parameter: #a55c0e; - --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-accessor: #ff4d4d; --light-color-ts-get-signature: var(--light-color-ts-accessor); --light-color-ts-set-signature: var(--light-color-ts-accessor); --light-color-ts-type-alias: #d51270; @@ -46,11 +53,17 @@ --dark-color-background-secondary: #1e2024; --dark-color-background-warning: #bebe00; --dark-color-warning-text: #222; - --dark-color-icon-background: var(--dark-color-background-secondary); --dark-color-accent: #9096a2; --dark-color-active-menu-item: #5d5d6a; --dark-color-text: #f5f5f5; --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + --dark-color-link: #00aff4; --dark-color-focus-outline: #4c97f2; @@ -64,16 +77,17 @@ --dark-color-ts-function: #a280ff; --dark-color-ts-class: #8ac4ff; --dark-color-ts-interface: #6cff87; - --dark-color-ts-constructor: var(--dark-color-ts-class); - --dark-color-ts-property: var(--dark-color-ts-variable); - --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-constructor: #4d7fff; + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; --dark-color-ts-call-signature: var(--dark-color-ts-method); --dark-color-ts-index-signature: var(--dark-color-ts-property); --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); --dark-color-ts-parameter: var(--dark-color-ts-variable); /* type literal not included as links will never be generated to it */ --dark-color-ts-type-parameter: #e07d13; - --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-accessor: #ff4d4d; --dark-color-ts-get-signature: var(--dark-color-ts-accessor); --dark-color-ts-set-signature: var(--dark-color-ts-accessor); --dark-color-ts-type-alias: #ff6492; @@ -90,15 +104,22 @@ --color-background-secondary: var(--light-color-background-secondary); --color-background-warning: var(--light-color-background-warning); --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + --color-link: var(--light-color-link); --color-focus-outline: var(--light-color-focus-outline); --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); --color-ts-module: var(--light-color-ts-module); --color-ts-namespace: var(--light-color-ts-namespace); --color-ts-enum: var(--light-color-ts-enum); @@ -110,6 +131,7 @@ --color-ts-constructor: var(--light-color-ts-constructor); --color-ts-property: var(--light-color-ts-property); --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); --color-ts-call-signature: var(--light-color-ts-call-signature); --color-ts-index-signature: var(--light-color-ts-index-signature); --color-ts-constructor-signature: var( @@ -134,15 +156,22 @@ --color-background-secondary: var(--dark-color-background-secondary); --color-background-warning: var(--dark-color-background-warning); --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + --color-link: var(--dark-color-link); --color-focus-outline: var(--dark-color-focus-outline); --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); --color-ts-module: var(--dark-color-ts-module); --color-ts-namespace: var(--dark-color-ts-namespace); --color-ts-enum: var(--dark-color-ts-enum); @@ -154,6 +183,7 @@ --color-ts-constructor: var(--dark-color-ts-constructor); --color-ts-property: var(--dark-color-ts-property); --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); --color-ts-call-signature: var(--dark-color-ts-call-signature); --color-ts-index-signature: var(--dark-color-ts-index-signature); --color-ts-constructor-signature: var( @@ -190,10 +220,16 @@ body { --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + --color-link: var(--light-color-link); --color-focus-outline: var(--light-color-focus-outline); --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); --color-ts-module: var(--light-color-ts-module); --color-ts-namespace: var(--light-color-ts-namespace); --color-ts-enum: var(--light-color-ts-enum); @@ -205,6 +241,7 @@ body { --color-ts-constructor: var(--light-color-ts-constructor); --color-ts-property: var(--light-color-ts-property); --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); --color-ts-call-signature: var(--light-color-ts-call-signature); --color-ts-index-signature: var(--light-color-ts-index-signature); --color-ts-constructor-signature: var( @@ -232,10 +269,16 @@ body { --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + --color-link: var(--dark-color-link); --color-focus-outline: var(--dark-color-focus-outline); --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); --color-ts-module: var(--dark-color-ts-module); --color-ts-namespace: var(--dark-color-ts-namespace); --color-ts-enum: var(--dark-color-ts-enum); @@ -247,6 +290,7 @@ body { --color-ts-constructor: var(--dark-color-ts-constructor); --color-ts-property: var(--dark-color-ts-property); --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); --color-ts-call-signature: var(--dark-color-ts-call-signature); --color-ts-index-signature: var(--dark-color-ts-index-signature); --color-ts-constructor-signature: var( @@ -439,7 +483,6 @@ pre { pre { position: relative; - white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 10px; @@ -860,6 +903,12 @@ a.tsd-index-link { margin-bottom: 0.75rem; } +.tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} .tsd-kind-icon { margin-right: 0.5rem; width: 1.25rem; @@ -867,10 +916,6 @@ a.tsd-index-link { min-width: 1.25rem; min-height: 1.25rem; } -.tsd-kind-icon path { - transform-origin: center; - transform: scale(1.1); -} .tsd-signature > .tsd-kind-icon { margin-right: 0.8rem; } @@ -1242,6 +1287,9 @@ img { .tsd-kind-method { color: var(--color-ts-method); } +.tsd-kind-reference { + color: var(--color-ts-reference); +} .tsd-kind-call-signature { color: var(--color-ts-call-signature); } @@ -1254,9 +1302,6 @@ img { .tsd-kind-parameter { color: var(--color-ts-parameter); } -.tsd-kind-type-literal { - color: var(--color-ts-type-literal); -} .tsd-kind-type-parameter { color: var(--color-ts-type-parameter); } @@ -1435,7 +1480,7 @@ img { } .site-menu { - margin-top: 1rem 0; + margin-top: 1rem; } .page-menu, diff --git a/docs/classes/Controller.html b/docs/classes/Controller.html index 61ad521..04f19eb 100644 --- a/docs/classes/Controller.html +++ b/docs/classes/Controller.html @@ -18,7 +18,7 @@

The simplest way is to subclass Facade, and use its initializeController method to add your registrations.

-
    +

Controller

-

Implements

Constructors

Implements

Constructors

Properties

Methods

executeCommand hasCommand initializeController @@ -45,19 +45,19 @@ directly, but instead call the static Factory method, passing the unique key for this instance Controller.getInstance(multitonKey)

-

Parameters

  • key: string

Returns Controller

Error if instance for this Multiton key has already been constructed

-

Properties

commandMap: {
    [key: string]: (() => ICommand);
}

Mapping of Notification names to Command factories

-
multitonKey: string

The Multiton Key for this Core

-
view?: IView

Local reference to View

-
MULTITON_MSG: string = "Controller instance for this Multiton key already constructed!"

Message Constants

-
instanceMap: {
    [key: string]: IController;
} = {}

Multiton Instances

-

Methods

  • If a Command has previously been registered +

    Parameters

    • key: string

    Returns Controller

    Error if instance for this Multiton key has already been constructed

    +

Properties

commandMap: {
    [key: string]: (() => ICommand);
}

Mapping of Notification names to Command factories

+
multitonKey: string

The Multiton Key for this Core

+
view?: IView

Local reference to View

+
instanceMap: {
    [key: string]: IController;
} = {}

Multiton Instances

+
MULTITON_MSG: string = "Controller instance for this Multiton key already constructed!"

Message Constants

+

Methods

  • If a Command has previously been registered to handle the given Notification, then it is executed.

    Parameters

    • notification: INotification

      The notification containing the data or command details needed for execution.

      -

    Returns void

  • Check if a Command is registered for a given Notification

    +

Returns void

  • Check if a Command is registered for a given Notification

    Parameters

    • notificationName: string

      The name of the notification to check for a registered command.

    Returns boolean

    true if a command is registered for the specified notification name; otherwise, false.

    -
  • Initialize the Multiton Controller instance.

    Called automatically by the constructor.

    Note that if you are using a subclass of View in your application, you should also subclass Controller @@ -66,7 +66,7 @@

    // ensure that the Controller is talking to my View implementation
    initializeController() {
    this.view = MyView.getInstance("ViewTestKey1", (key: string) => new View(key));
    }
    -

    Returns void

  • Register a particular Command class as the handler +

    Returns void

  • Register a particular Command class as the handler for a particular Notification.

    If an Command has already been registered to handle Notifications with this name, it is no longer @@ -75,12 +75,12 @@ first time a Command has been registered for this Notification name.

    Parameters

    • notificationName: string

      The name of the notification to associate with the command.

    • factory: (() => ICommand)

      A factory function that returns an instance of the command.

      -

    Returns void

  • Remove a previously registered Command to Notification mapping.

    +

Returns void

  • Remove a previously registered Command to Notification mapping.

    Parameters

    • notificationName: string

      The name of the notification for which the associated command should be removed.

      -

    Returns void

  • Controller Multiton Factory method.

    +

Returns void

  • Controller Multiton Factory method.

    Parameters

    • key: string

      The key used to identify the controller instance.

    • factory: ((key: string) => IController)

      A factory function that creates a new instance of the controller if one does not already exist for the specified key.

    Returns IController

    The controller instance associated with the given key.

    -
  • Remove a Controller instance

    Parameters

    • key: string

      The key used to identify the controller instance to be removed.

      -

    Returns void

+

Returns void

diff --git a/docs/classes/Facade.html b/docs/classes/Facade.html index b404506..8149ba0 100644 --- a/docs/classes/Facade.html +++ b/docs/classes/Facade.html @@ -1,17 +1,17 @@ Facade | @puremvc/puremvc-typescript-multicore-framework

A base Multiton Facade implementation.

-
    +

Facade

-

Implements

Constructors

Implements

Constructors

Properties

Methods

hasCommand hasMediator hasProxy @@ -39,23 +39,23 @@ directly, but instead call the static Factory method, passing the unique key for this instance Facade.getInstance(multitonKey)

-

Parameters

  • key: string

Returns Facade

Error if instance for this Multiton key has already been constructed

-

Properties

controller?: IController

Reference to Controller

-
model?: IModel

Reference to Model

-
multitonKey: string

The Multiton Key for this Core

-
view?: IView

Reference to View

-
MULTITON_MSG: string = "Facade instance for this Multiton key already constructed!"

Message Constants

-
instanceMap: {
    [key: string]: IFacade;
} = {}

Multiton Instances

-

Methods

  • Check if a Command is registered for a given Notification

    +

    Parameters

    • key: string

    Returns Facade

    Error if instance for this Multiton key has already been constructed

    +

Properties

controller?: IController

Reference to Controller

+
model?: IModel

Reference to Model

+
multitonKey: string

The Multiton Key for this Core

+
view?: IView

Reference to View

+
instanceMap: {
    [key: string]: IFacade;
} = {}

Multiton Instances

+
MULTITON_MSG: string = "Facade instance for this Multiton key already constructed!"

Message Constants

+

Methods

  • Check if a Command is registered for a given Notification

    Parameters

    • notificationName: string

      The name of the notification to check.

    Returns boolean

    true if a command is registered for the notification; otherwise, false.

    -
  • Check if a Mediator is registered or not

    Parameters

    • mediatorName: string

      The name of the mediator to check.

    Returns boolean

    true if a mediator is registered for the name; otherwise, false.

    -
  • Check if a Proxy is registered

    Parameters

    • proxyName: string

      The name of the proxy to check.

    Returns boolean

    true if a proxy is registered for the name; otherwise, false.

    -
  • Initialize the Controller.

    Called by the initializeFacade method. Override this method in your subclass of Facade if one or both of the following are true:

    @@ -66,11 +66,11 @@

    If you don't want to initialize a different Controller, call super.initializeController() at the beginning of your method, then register Commands.

    -

    Returns void

  • Initialize the Multiton Facade instance.

    Called automatically by the constructor. Override in your subclass to do any subclass specific initializations. Be sure to call super.initializeFacade(), though.

    -

    Returns void

  • Initialize the Model.

    Called by the initializeFacade method. Override this method in your subclass of Facade if one or both of the following are true:

    @@ -87,13 +87,13 @@ with the Model, since Proxys with mutable data will likely need to send Notifications and thus will likely want to fetch a reference to the Facade during their construction.

    -

    Returns void

  • Set the Multiton key for this facade instance.

    Not called directly, but instead from the constructor when getInstance is invoked. It is necessary to be public in order to implement Notifier.

    Parameters

    • key: string

      The unique key to identify this instance of the notifier.

      -

    Returns void

  • Initialize the View.

    +

Returns void

  • Initialize the View.

    Called by the initializeFacade method. Override this method in your subclass of Facade if one or both of the following are true:

    @@ -109,7 +109,7 @@ with the View, since Mediator instances will need to send Notifications and thus will likely want to fetch a reference to the Facade during their construction.

    -

    Returns void

  • Notify Observers.

    This method is left public mostly for backward compatibility, and to allow you to send custom notification classes using the facade.

    @@ -117,42 +117,42 @@ and pass the parameters, never having to construct the notification yourself.

    Parameters

    • notification: INotification

      The notification to be sent to observers.

      -

    Returns void

  • Register a Command with the Controller by Notification name. *

    +

Returns void

  • Register a Command with the Controller by Notification name. *

    Parameters

    • notificationName: string

      The name of the notification to associate with the command.

    • factory: (() => ICommand)

      A factory function that returns an instance of ICommand. This function is used to create the command.

      -

    Returns void

  • Register a Mediator with the View.

    +

Returns void

  • Register a Proxy with the Model by name.

    +

Returns void

  • Remove a previously registered Command to Notification mapping from the Controller.

    +

Returns void

  • Remove a previously registered Command to Notification mapping from the Controller.

    Parameters

    • notificationName: string

      The name of the notification for which the command should be removed.

      -

    Returns void

  • Remove a Mediator from the View.

    +

Returns void

  • Remove a Proxy from the Model by name.

    Parameters

    • proxyName: string

      The name of the proxy to remove.

    Returns null | IProxy

    The removed proxy instance, or null if no such proxy exists.

    -
  • Retrieve a Proxy from the Model by name.

    Parameters

    • mediatorName: string

      The name of the mediator to retrieve.

    Returns null | IMediator

    The mediator instance associated with the given name, or null if no such mediator exists.

    -
  • Retrieve a Proxy from the Model by name.

    Parameters

    • proxyName: string

      The name of the proxy to retrieve.

    Returns null | IProxy

    The proxy instance associated with the given name, or null if no such proxy exists.

    -
  • Create and send an Notification.

    Keeps us from having to construct new notification instances in our implementation code.

    Parameters

    • notificationName: string

      The name of the notification to be sent.

    • Optionalbody: any

      Optional data to be included with the notification.

    • Optionaltype: string

      Optional type of the notification.

      -

    Returns void

  • Facade Multiton Factory method

    +

Returns void

  • Facade Multiton Factory method

    Parameters

    • key: string

      The unique key associated with the instance of the facade.

    • factory: ((key: string) => IFacade)

      A factory function that creates a new instance of the facade. It takes the key as a parameter and returns an IFacade instance.

    Returns IFacade

    the Multiton instance of the Facade

    -
  • Check if a Core is registered or not

    Parameters

    • key: string

      The unique key to check for an existing facade instance.

    Returns boolean

    true if a facade instance exists for the key; otherwise, false.

    -
  • Remove a Core.

    Remove the Model, View, Controller and Facade instances for the given key.

    Parameters

    • key: string

      The unique key associated with the facade instance to be removed.

      -

    Returns void

+

Returns void

diff --git a/docs/classes/MacroCommand.html b/docs/classes/MacroCommand.html index f2c661e..fb57d9c 100644 --- a/docs/classes/MacroCommand.html +++ b/docs/classes/MacroCommand.html @@ -11,13 +11,13 @@ override the initializeMacroCommand method, calling addSubCommand once for each SubCommand to be executed.

-
    +

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

Accessors

facade @@ -32,20 +32,20 @@ method.

If your subclass does define a constructor, be sure to call super().

-

Returns MacroCommand

Properties

multitonKey: string

The Multiton Key for this app

-
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

-

Accessors

Properties

multitonKey: string

The Multiton Key for this app

+
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

+

Accessors

Methods

  • Add a SubCommand.

    +

    If the multiton key is not initialized.

    +

Methods

  • Add a SubCommand.

    The SubCommands will be called in First In/First Out (FIFO) order.

    Parameters

    • factory: (() => ICommand)

      A factory function that creates an instance of ICommand. This function will be used to generate the sub-command.

      -

    Returns void

  • Execute this MacroCommand's SubCommands.

    +

Returns void

  • Initialize the MacroCommand.

    +

Returns void

  • Initialize the MacroCommand.

    In your subclass, override this method to initialize the MacroCommand's SubCommand list with Command class references like @@ -55,7 +55,7 @@

    Note that SubCommands may be any Command implementor, MacroCommands or SimpleCommands are both acceptable.

    -

    Returns void

  • Initialize this Notifier instance.

    This is how a Notifier gets its multitonKey. Calls to sendNotification or to access the facade will fail until after this method @@ -67,10 +67,10 @@ in their constructors, since this method will not yet have been called.

    Parameters

    • key: string

      the multitonKey for this Notifier to use

      -

    Returns void

  • Create and send an Notification.

    +

Returns void

  • Create and send an Notification.

    Keeps us from having to construct new Notification instances in our implementation code.

    Parameters

    • notificationName: string

      The name of the notification to be sent.

    • Optionalbody: any

      Optional data to be included with the notification.

    • Optionaltype: string

      Optional type of the notification.

      -

    Returns void

+

Returns void

diff --git a/docs/classes/Mediator.html b/docs/classes/Mediator.html index 9c07ad0..dd47639 100644 --- a/docs/classes/Mediator.html +++ b/docs/classes/Mediator.html @@ -1,7 +1,7 @@ Mediator | @puremvc/puremvc-typescript-multicore-framework

A base Mediator implementation.

-

View

+

View

Mediator

-

Hierarchy (view full)

Implements

Constructors

Hierarchy (view full)

Implements

Constructors

Properties

_name _viewComponent? multitonKey @@ -19,29 +19,29 @@

Constructors

Properties

_name: string

the mediator name

-
_viewComponent?: any

The view component

-
multitonKey: string

The Multiton Key for this app

-
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

-
NAME: string = "Mediator"

The default name for the mediator.

-

Accessors

  • get facade(): IFacade
  • Return the Multiton Facade instance

    +

Returns Mediator

Properties

_name: string

the mediator name

+
_viewComponent?: any

The view component

+
multitonKey: string

The Multiton Key for this app

+
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

+
NAME: string = "Mediator"

The default name for the mediator.

+

Accessors

Methods

  • Handle Notifications.

    +

Returns void

Methods

  • Initialize this Notifier instance.

    +

Returns void

  • Initialize this Notifier instance.

    This is how a Notifier gets its multitonKey. Calls to sendNotification or to access the facade will fail until after this method @@ -53,15 +53,15 @@ in their constructors, since this method will not yet have been called.

    Parameters

    • key: string

      the multitonKey for this Notifier to use

      -

    Returns void

  • List the Notification names this +

Returns void

  • Create and send an Notification.

    Keeps us from having to construct new Notification instances in our implementation code.

    Parameters

    • notificationName: string

      The name of the notification to be sent.

    • Optionalbody: any

      Optional data to be included with the notification.

    • Optionaltype: string

      Optional type of the notification.

      -

    Returns void

+

Returns void

diff --git a/docs/classes/Model.html b/docs/classes/Model.html index 7058857..3b613cc 100644 --- a/docs/classes/Model.html +++ b/docs/classes/Model.html @@ -12,13 +12,13 @@ Command to create and register Proxy instances once the Facade has initialized the Core actors.

-

Proxy

+

Proxy

Model

-

Implements

Constructors

Implements

Constructors

Properties

Methods

hasProxy initializeModel registerProxy @@ -31,31 +31,31 @@ so you should not call the constructor directly, but instead call the static Multiton Factory method Model.getInstance(multitonKey)

-

Parameters

  • key: string

Returns Model

Error if instance for this Multiton key instance has already been constructed

-

Properties

multitonKey: string

The Multiton Key for this Core

-
proxyMap: {
    [key: string]: IProxy;
}

Mapping of proxyNames to IProxy instances

-
MULTITON_MSG: string = "Model instance for this Multiton key already constructed!"

Message Constants

-
instanceMap: {
    [key: string]: IModel;
} = {}

Multiton Instances

-

Methods

  • Check if a Proxy is registered

    +

    Parameters

    • key: string

    Returns Model

    Error if instance for this Multiton key instance has already been constructed

    +

Properties

multitonKey: string

The Multiton Key for this Core

+
proxyMap: {
    [key: string]: IProxy;
}

Mapping of proxyNames to IProxy instances

+
instanceMap: {
    [key: string]: IModel;
} = {}

Multiton Instances

+
MULTITON_MSG: string = "Model instance for this Multiton key already constructed!"

Message Constants

+

Methods

  • Check if a Proxy is registered

    Parameters

    • proxyName: string

      The name of the proxy to check.

    Returns boolean

    true if a proxy with the specified name is registered; otherwise, false.

    -
  • Initialize the Model instance.

    Called automatically by the constructor, this is your opportunity to initialize the Multiton instance in your subclass without overriding the constructor.

    -

    Returns void

  • Register a Proxy with the Model.

    +

    Returns void

  • Remove a Proxy from the Model.

    +

Returns void

  • Remove a Proxy from the Model.

    Parameters

    • proxyName: string

      The name of the proxy to be removed.

    Returns null | IProxy

    The removed proxy instance, or null if no proxy with the given name was found.

    -
  • Retrieve a Proxy from the Model.

    Parameters

    • proxyName: string

      The name of the proxy to retrieve.

    Returns null | IProxy

    The proxy instance associated with the given name, or null if no such proxy exists.

    -
  • Model Multiton Factory method.

    Parameters

    • key: string

      The key used to identify the model instance.

    • factory: ((key: string) => IModel)

      A factory function that creates a new instance of the model if one does not already exist for the specified key.

    Returns IModel

    The model instance associated with the given key.

    -
  • Remove a Model instance

    Parameters

    • key: string

      The key used to identify the model instance to be removed.

      -

    Returns void

+

Returns void

diff --git a/docs/classes/Notification.html b/docs/classes/Notification.html index d9a78f0..8e13012 100644 --- a/docs/classes/Notification.html +++ b/docs/classes/Notification.html @@ -21,7 +21,7 @@ parent/child relationship in order to communicate with one another using Notifications.

Notification

-

Implements

Constructors

Implements

Constructors

Accessors

body name type @@ -30,16 +30,16 @@

Parameters

  • name: string

    The name of the notification.

  • Optionalbody: any

    Optional data to be included with the notification.

  • Optionaltype: string

    Optional type of the notification.

    -

Returns Notification

Accessors

  • get body(): any
  • Get the body of the Notification instance.

    +

Returns Notification

Accessors

  • get name(): string
  • Get the name of the Notification instance.

    +

Returns void

Methods

  • Get the string representation of the Notification instance.

    +

Returns void

Methods

+
diff --git a/docs/classes/Notifier.html b/docs/classes/Notifier.html index 15015fd..96b5f37 100644 --- a/docs/classes/Notifier.html +++ b/docs/classes/Notifier.html @@ -19,7 +19,7 @@
  • on a Mediator is registered with the View
  • on a Proxy is registered with the Model.
  • -
      +

    Notifier

    -

    Hierarchy (view full)

    Implements

    Constructors

    Hierarchy (view full)

    Implements

    Constructors

    Properties

    multitonKey: string

    The Multiton Key for this app

    -
    MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

    Message Constants

    -

    Accessors

    MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

    Message Constants

    +

    Accessors

    Methods

    Methods

    • Initialize this Notifier instance.

      This is how a Notifier gets its multitonKey. Calls to sendNotification or to access the facade will fail until after this method @@ -50,10 +50,10 @@ in their constructors, since this method will not yet have been called.

      Parameters

      • key: string

        the multitonKey for this Notifier to use

        -

      Returns void

    • Create and send an Notification.

      +

    Returns void

    • Create and send an Notification.

      Keeps us from having to construct new Notification instances in our implementation code.

      Parameters

      • notificationName: string

        The name of the notification to be sent.

      • Optionalbody: any

        Optional data to be included with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/classes/Observer.html b/docs/classes/Observer.html index 7d6538a..83a2cef 100644 --- a/docs/classes/Observer.html +++ b/docs/classes/Observer.html @@ -10,7 +10,7 @@
  • Provide a method for notifying the interested object.
  • Observer

    -

    Implements

    Constructors

    Implements

    Constructors

    Accessors

    Methods

    compareNotifyContext @@ -20,18 +20,18 @@ one parameter of type Notification

    Parameters

    • Optionalnotify: null | ((notification: INotification) => void)

      The method to be called when a notification is received. Can be null.

    • Optionalcontext: any

      The context in which to call the notifyMethod. Can be null.

      -

    Returns Observer

    Accessors

    • get notifyContext(): any
    • Get the notifyContext

      +

    Returns Observer

    Accessors

    • get notifyMethod(): undefined | null | ((notification: INotification) => void)
    • Get the notification method.

      +

    Returns void

    Methods

    • Compare an object to the notification context.

      +

    Returns void

    Methods

    • Compare an object to the notification context.

      Parameters

      • object: any

        The object to compare with the observer's context.

      Returns boolean

      true if the context is the same, otherwise false.

      -
    +

    Returns void

    diff --git a/docs/classes/Proxy.html b/docs/classes/Proxy.html index dd8b369..902f97c 100644 --- a/docs/classes/Proxy.html +++ b/docs/classes/Proxy.html @@ -9,9 +9,9 @@ we adopt an asynchronous idiom; setting data (or calling a method) on the Proxy and listening for a Notification to be sent when the Proxy has retrieved the data from the service.

    -

    Model

    +

    Model

    Proxy

    -

    Hierarchy (view full)

    Implements

    Constructors

    Hierarchy (view full)

    Implements

    Constructors

    Properties

    _data? _name multitonKey @@ -27,21 +27,21 @@

    Constructors

    • Constructor

      Parameters

      • Optionalname: string

        The name of the proxy. Defaults to Proxy.NAME if not provided.

      • Optionaldata: any

        The data associated with the proxy. Can be null.

        -

      Returns Proxy

    Properties

    _data?: any

    the data object

    -
    _name: string

    the proxy name

    -
    multitonKey: string

    The Multiton Key for this app

    -
    MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

    Message Constants

    -
    NAME: string = "Proxy"

    The default name for the Proxy.

    -

    Accessors

    • get data(): any
    • Get the data object

      +

    Returns Proxy

    Properties

    _data?: any

    the data object

    +
    _name: string

    the proxy name

    +
    multitonKey: string

    The Multiton Key for this app

    +
    MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

    Message Constants

    +
    NAME: string = "Proxy"

    The default name for the Proxy.

    +

    Accessors

    • get facade(): IFacade
    • Return the Multiton Facade instance

      +

    Returns void

    Methods

    Methods

    • Initialize this Notifier instance.

      This is how a Notifier gets its multitonKey. Calls to sendNotification or to access the facade will fail until after this method @@ -53,12 +53,12 @@ in their constructors, since this method will not yet have been called.

      Parameters

      • key: string

        the multitonKey for this Notifier to use

        -

      Returns void

    • Create and send an Notification.

      +

    Returns void

    • Create and send an Notification.

      Keeps us from having to construct new Notification instances in our implementation code.

      Parameters

      • notificationName: string

        The name of the notification to be sent.

      • Optionalbody: any

        Optional data to be included with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/classes/SimpleCommand.html b/docs/classes/SimpleCommand.html index 4c8554f..a69f3a1 100644 --- a/docs/classes/SimpleCommand.html +++ b/docs/classes/SimpleCommand.html @@ -1,13 +1,13 @@ SimpleCommand | @puremvc/puremvc-typescript-multicore-framework

    A base Command implementation.

    Your subclass should override the execute method where your business logic will handle the Notification.

    -
      +

    Hierarchy (view full)

    Implements

    Constructors

    Hierarchy (view full)

    Implements

    Constructors

    Properties

    Accessors

    Constructors

    Properties

    multitonKey: string

    The Multiton Key for this app

    -
    MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

    Message Constants

    -

    Accessors

    MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

    Message Constants

    +

    Accessors

    Methods

    • Fulfill the use-case initiated by the given Notification.

      +

      If the multiton key is not initialized.

      +

    Methods

    • Fulfill the use-case initiated by the given Notification.

      In the Command Pattern, an application use-case typically begins with some user action, which results in a Notification being broadcast, which is handled by business logic in the execute method of an Command.

      Parameters

      • notification: INotification

        The notification containing the data or command details to be processed.

        -

      Returns void

    • Initialize this Notifier instance.

      +

    Returns void

    • Initialize this Notifier instance.

      This is how a Notifier gets its multitonKey. Calls to sendNotification or to access the facade will fail until after this method @@ -37,10 +37,10 @@ in their constructors, since this method will not yet have been called.

      Parameters

      • key: string

        the multitonKey for this Notifier to use

        -

      Returns void

    • Create and send an Notification.

      +

    Returns void

    • Create and send an Notification.

      Keeps us from having to construct new Notification instances in our implementation code.

      Parameters

      • notificationName: string

        The name of the notification to be sent.

      • Optionalbody: any

        Optional data to be included with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/classes/View.html b/docs/classes/View.html index ec8d4f2..feb344d 100644 --- a/docs/classes/View.html +++ b/docs/classes/View.html @@ -9,18 +9,18 @@
  • Providing a method for broadcasting a Notification.
  • Notifying the Observers of a given Notification when it broadcast.
  • -
      +

    Implements

    Constructors

    Implements

    Constructors

    Properties

    Methods

    hasMediator notifyObservers registerMediator @@ -35,21 +35,21 @@ so you should not call the constructor directly, but instead call the static Multiton Factory method View.getInstance(multitonKey)

    -

    Parameters

    • key: string

    Returns View

    Error if instance for this Multiton key has already been constructed

    -

    Properties

    mediatorMap: {
        [key: string]: IMediator;
    }

    Mapping of Mediator names to Mediator instances

    -
    multitonKey: string

    The Multiton Key for this Core

    -
    observerMap: {
        [key: string]: IObserver[];
    }

    Mapping of Notification names to Observer lists

    -
    MULTITON_MSG: string = "View instance for this Multiton key already constructed!"

    Message Constants

    -
    instanceMap: {
        [key: string]: IView;
    } = {}

    Multiton Instances

    -

    Methods

    • Check if a Mediator is registered or not

      +

      Parameters

      • key: string

      Returns View

      Error if instance for this Multiton key has already been constructed

      +

    Properties

    mediatorMap: {
        [key: string]: IMediator;
    }

    Mapping of Mediator names to Mediator instances

    +
    multitonKey: string

    The Multiton Key for this Core

    +
    observerMap: {
        [key: string]: IObserver[];
    }

    Mapping of Notification names to Observer lists

    +
    instanceMap: {
        [key: string]: IView;
    } = {}

    Multiton Instances

    +
    MULTITON_MSG: string = "View instance for this Multiton key already constructed!"

    Message Constants

    +

    Methods

    • Check if a Mediator is registered or not

      Parameters

      • mediatorName: string

        The name of the mediator to check.

      Returns boolean

      true if a mediator with the specified name is registered; otherwise, false.

      -
    • Notify the Observers for a particular Notification.

      All previously attached Observers for this Notification's list are notified and are passed a reference to the Notification in the order in which they were registered.

      Parameters

      • notification: INotification

        The notification containing the data or command details to be sent to observers.

        -

      Returns void

    • Register a Mediator instance with the View.

      +

    Returns void

    • Register a Mediator instance with the View.

      Registers the Mediator so that it can be retrieved by name, and further interrogates the Mediator for its Notification interests.

      @@ -59,23 +59,23 @@ and registering it as an Observer for all Notifications the Mediator is interested in.

      Parameters

      • mediator: IMediator

        The mediator instance to be registered.

        -

      Returns void

    • Register an Observer to be notified +

    Returns void

    • Register an Observer to be notified of Notifications with a given name.

      Parameters

      • notificationName: string

        The name of the notification to which the observer should be registered.

      • observer: IObserver

        The observer instance to be registered.

        -

      Returns void

    • Remove a Mediator from the View.

      +

    Returns void

    • Remove a Mediator from the View.

      Parameters

      • mediatorName: string

        The name of the mediator to be removed.

      Returns null | IMediator

      The removed mediator instance, or null if no mediator with the given name was found.

      -
    • Remove the observer for a given notifyContext from an observer list for a given Notification name.

      +
    • Remove the observer for a given notifyContext from an observer list for a given Notification name.

      Parameters

      • notificationName: string

        The name of the notification for which the observer should be removed.

      • notifyContext: any

        The context of the observer to be removed.

        -

      Returns void

    • Retrieve a Mediator from the View.

      +

    Returns void

    • Retrieve a Mediator from the View.

      Parameters

      • mediatorName: string

        The name of the mediator to retrieve.

      Returns null | IMediator

      The mediator instance associated with the given name, or null if no such mediator exists.

      -
    • View Multiton factory method.

      Parameters

      • key: string

        The key used to identify the view instance.

      • factory: ((key: string) => IView)

        A factory function that creates a new instance of the view if one does not already exist for the specified key.

      Returns IView

      The view instance associated with the given key.

      -
    • Remove an IView instance

      Parameters

      • key: string

        multitonKey of IView instance to remove

        -

      Returns void

    +

    Returns void

    diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 04fd93d..5dcbd15 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -@puremvc/puremvc-typescript-multicore-framework
    +@puremvc/puremvc-typescript-multicore-framework
    diff --git a/docs/index.html b/docs/index.html index b666b04..4810a35 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,30 +1,31 @@ -@puremvc/puremvc-typescript-multicore-framework

    @puremvc/puremvc-typescript-multicore-framework

    PureMVC is a lightweight framework for creating applications based upon the classic Model-View-Controller design meta-pattern. It supports modular programming through the use of Multiton Core actors instead of the Singletons.

    +@puremvc/puremvc-typescript-multicore-framework

    @puremvc/puremvc-typescript-multicore-framework

    PureMVC is a lightweight framework for creating applications based upon the classic Model-View-Controller design meta-pattern. It supports modular programming through the use of Multiton Core actors instead of the Singletons.

    -
    npm install @puremvc/puremvc-typescript-multicore-framework
    +
    npm i @puremvc/puremvc-typescript-multicore-framework
     
    -

    Production - Version 2.0.0

    +

    Production - Version 2.0.1

    • -

      PureMVC MultiCore Framework for TypeScript - Copyright © 2024 Saad Shams

      +

      PureMVC MultiCore Framework for TypeScript - Copyright © 2024 Saad Shams

    • -

      PureMVC - Copyright © 2024 Futurescale, Inc.

      +

      PureMVC - Copyright © 2024 Futurescale, Inc.

    • All rights reserved.

      @@ -34,7 +35,7 @@
      • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
      • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
      • -
      • Neither the name of Futurescale, Inc., PureMVC.org, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
      • +
      • Neither the name of Futurescale, Inc., PureMVC.org, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    diff --git a/docs/interfaces/ICommand.html b/docs/interfaces/ICommand.html index a30449f..a9ccc87 100644 --- a/docs/interfaces/ICommand.html +++ b/docs/interfaces/ICommand.html @@ -1,21 +1,21 @@ ICommand | @puremvc/puremvc-typescript-multicore-framework

    The interface definition for a PureMVC Command.

    -

    INotification

    ICommand

    -
    interface ICommand {
        execute(notification: INotification): void;
        initializeNotifier(key: string): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Methods

    interface ICommand {
        execute(notification: INotification): void;
        initializeNotifier(key: string): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Methods

    • Execute the ICommand's logic to handle a given INotification.

      Parameters

      • notification: INotification

        The notification carrying the data and type necessary for executing the command.

        -

      Returns void

    • Initialize this INotifier instance.

      +

    Returns void

    • Initialize this INotifier instance.

      This is how a Notifier get to Calls to sendNotification or to access the facade will fail until after this method has been called.

      Parameters

      • key: string

        The key used to initialize the notifier.

        -

      Returns void

    • Send a INotification.

      +

    Returns void

    • Send a INotification.

      Convenience method to prevent having to construct new notification instances in our implementation code.

      Parameters

      • notificationName: string

        The name of the notification to send.

      • Optionalbody: any

        Optional data associated with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/interfaces/IController.html b/docs/interfaces/IController.html index f234fcf..de59764 100644 --- a/docs/interfaces/IController.html +++ b/docs/interfaces/IController.html @@ -17,20 +17,20 @@

    IController

    -
    interface IController {
        executeCommand(notification: INotification): void;
        hasCommand(notificationName: string): boolean;
        registerCommand(notificationName: string, factory: (() => ICommand)): void;
        removeCommand(notificationName: string): void;
    }

    Implemented by

    Methods

    interface IController {
        executeCommand(notification: INotification): void;
        hasCommand(notificationName: string): boolean;
        registerCommand(notificationName: string, factory: (() => ICommand)): void;
        removeCommand(notificationName: string): void;
    }

    Implemented by

    Methods

    • Execute the ICommand previously registered as the handler for INotifications with the given notification name.

      Parameters

      • notification: INotification

        the INotification to execute the associated ICommand for

        -

      Returns void

    • Check if a Command is registered for a given Notification

      +

    Returns void

    • Check if a Command is registered for a given Notification

      Parameters

      • notificationName: string

        The name of the notification to check.

      Returns boolean

      true if a command is registered for the notification name, false otherwise.

      -
    • Register a particular ICommand class as the handler +

    • Register a particular ICommand class as the handler for a particular INotification.

      Parameters

      • notificationName: string

        the name of the INotification

      • factory: (() => ICommand)

        A factory that returns ICommand

        -

      Returns void

    • Remove a previously registered ICommand to INotification mapping.

      +

    Returns void

    • Remove a previously registered ICommand to INotification mapping.

      Parameters

      • notificationName: string

        the name of the INotification to remove the ICommand mapping for

        -

      Returns void

    +

    Returns void

    diff --git a/docs/interfaces/IFacade.html b/docs/interfaces/IFacade.html index 32edb13..25b77f0 100644 --- a/docs/interfaces/IFacade.html +++ b/docs/interfaces/IFacade.html @@ -6,10 +6,10 @@ the core MVC actors (Model, View, Controller) and the rest of your application.

    IFacade

    -
    interface IFacade {
        hasCommand(notificationName: string): boolean;
        hasMediator(mediatorName: string): boolean;
        hasProxy(proxyName: string): boolean;
        initializeNotifier(key: string): void;
        notifyObservers(notification: INotification): void;
        registerCommand(notificationName: string, factory: (() => ICommand)): void;
        registerMediator(mediator: IMediator): void;
        registerProxy(proxy: IProxy): void;
        removeCommand(notificationName: string): void;
        removeMediator(mediatorName: string): null | IMediator;
        removeProxy(proxyName: string): null | IProxy;
        retrieveMediator(mediatorName: string): null | IMediator;
        retrieveProxy(proxyName: string): null | IProxy;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Methods

    interface IFacade {
        hasCommand(notificationName: string): boolean;
        hasMediator(mediatorName: string): boolean;
        hasProxy(proxyName: string): boolean;
        initializeNotifier(key: string): void;
        notifyObservers(notification: INotification): void;
        registerCommand(notificationName: string, factory: (() => ICommand)): void;
        registerMediator(mediator: IMediator): void;
        registerProxy(proxy: IProxy): void;
        removeCommand(notificationName: string): void;
        removeMediator(mediatorName: string): null | IMediator;
        removeProxy(proxyName: string): null | IProxy;
        retrieveMediator(mediatorName: string): null | IMediator;
        retrieveProxy(proxyName: string): null | IProxy;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Methods

    • Check if a ICommand is registered for a given Notification

      Parameters

      • notificationName: string

        The name of the notification to check.

      Returns boolean

      true if a command is registered for the notification name, false otherwise.

      -
    • Check if a Mediator is registered or not

      Parameters

      • mediatorName: string

        The name of the mediator to check.

      Returns boolean

      true if a mediator is registered with the name, false otherwise.

      -
    • Check if a Proxy is registered

      Parameters

      • proxyName: string

        The name of the proxy to check.

      Returns boolean

      true if a proxy is registered with the name, false otherwise.

      -
    • Set the Multiton key for this facade instance.

      -

      Not called directly, but instead from the -constructor when getInstance is invoked. -It is necessary to be public in order to -implement Notifier.

      -

      Parameters

      • key: string

        The unique key to initialize the notifier with.

        -

      Returns void

    • Initialize this INotifier instance.

      +

      This is how a Notifier get to Calls to +sendNotification or to access the +facade will fail until after this method +has been called.

      +

      Parameters

      • key: string

        The key used to initialize the notifier.

        +

      Returns void

    • Notify Observers.

      This method is left public mostly for backward compatibility, and to allow you to send custom notification classes using the facade.

      @@ -43,31 +43,31 @@ and pass the parameters, never having to construct the notification yourself.

      Parameters

      • notification: INotification

        the INotification to have the View notify Observers of.

        -

      Returns void

    • Register an ICommand with the Controller

      +

    Returns void

    • Register an ICommand with the Controller

      Parameters

      • notificationName: string

        the name of the INotification to associate the ICommand with.

      • factory: (() => ICommand)

        A factory that creates an instance of the ICommand to be registered.

        -

      Returns void

    • Register an IMediator instance with the View.

      +

    Returns void

    • Register an IMediator instance with the View.

      Parameters

      • mediator: IMediator

        a reference to the IMediator instance

        -

      Returns void

    • Register an IProxy with the Model by name.

      +

    Returns void

    • Register an IProxy with the Model by name.

      Parameters

      • proxy: IProxy

        the IProxy to be registered with the Model.

        -

      Returns void

    • Remove a previously registered ICommand to INotification mapping from the Controller.

      +

    Returns void

    • Remove a previously registered ICommand to INotification mapping from the Controller.

      Parameters

      • notificationName: string

        the name of the INotification to remove the ICommand mapping for

        -

      Returns void

    • Remove a IMediator instance from the View.

      +

    Returns void

    • Remove a IMediator instance from the View.

      Parameters

      • mediatorName: string

        The name of the mediator to remove.

      Returns null | IMediator

      The removed mediator instance if found, or null if no mediator was registered with the given name.

      -
    • Remove an IProxy instance from the Model by name.

      Parameters

      • proxyName: string

        the IProxy to remove from the Model.

      Returns null | IProxy

      The removed proxy instance if found, or null if no proxy was registered with the given name.

      -
    • Retrieve an IMediator instance from the View.

      Parameters

      • mediatorName: string

        the name of the IMediator instance to retrieve

      Returns null | IMediator

      The mediator instance if found, or null if no mediator is registered with the given name.

      -
    • Retrieve a IProxy from the Model by name.

      Parameters

      • proxyName: string

        the name of the IProxy instance to be retrieved.

      Returns null | IProxy

      the IProxy previously registered by proxyName with the Model.

      -
    • Create and send an Notification.

      -

      Keeps us from having to construct new notification -instances in our implementation code.

      -

      Parameters

      • notificationName: string

        the INotification to have the View notify Observers of.

        -
      • Optionalbody: any

        Optional data to be included in the notification.

        +
    • Send a INotification.

      +

      Convenience method to prevent having to construct new +notification instances in our implementation code.

      +

      Parameters

      • notificationName: string

        The name of the notification to send.

        +
      • Optionalbody: any

        Optional data associated with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/interfaces/IMediator.html b/docs/interfaces/IMediator.html index 13df70c..a23f906 100644 --- a/docs/interfaces/IMediator.html +++ b/docs/interfaces/IMediator.html @@ -33,7 +33,7 @@ and register it as an Observer for each INotification name returned by listNotificationInterests.

    IMediator

    -
    interface IMediator {
        name: string;
        viewComponent: any;
        handleNotification(notification: INotification): void;
        initializeNotifier(key: string): void;
        listNotificationInterests(): string[];
        onRegister(): void;
        onRemove(): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Properties

    interface IMediator {
        name: string;
        viewComponent: any;
        handleNotification(notification: INotification): void;
        initializeNotifier(key: string): void;
        listNotificationInterests(): string[];
        onRegister(): void;
        onRemove(): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Properties

    name: string

    The name of the mediator.

    -
    viewComponent: any

    The view component associated with the mediator.

    -

    Methods

    viewComponent: any

    The view component associated with the mediator.

    +

    Methods

    • Initialize this INotifier instance.

      +

    Returns void

    • Initialize this INotifier instance.

      This is how a Notifier get to Calls to sendNotification or to access the facade will fail until after this method has been called.

      Parameters

      • key: string

        The key used to initialize the notifier.

        -

      Returns void

    • List INotification interests.

      +

    Returns void

    • List INotification interests.

      Returns string[]

      an Array of the INotification names this IMediator has an interest in.

      -
    • Send a INotification.

      Convenience method to prevent having to construct new notification instances in our implementation code.

      Parameters

      • notificationName: string

        The name of the notification to send.

      • Optionalbody: any

        Optional data associated with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/interfaces/IModel.html b/docs/interfaces/IModel.html index 2123a88..6f33eae 100644 --- a/docs/interfaces/IModel.html +++ b/docs/interfaces/IModel.html @@ -11,19 +11,19 @@

    IModel

    -
    interface IModel {
        hasProxy(proxyName: string): boolean;
        registerProxy(proxy: IProxy): void;
        removeProxy(proxyName: string): null | IProxy;
        retrieveProxy(proxyName: string): null | IProxy;
    }

    Implemented by

    Methods

    interface IModel {
        hasProxy(proxyName: string): boolean;
        registerProxy(proxy: IProxy): void;
        removeProxy(proxyName: string): null | IProxy;
        retrieveProxy(proxyName: string): null | IProxy;
    }

    Implemented by

    Methods

    • Check if a Proxy is registered

      Parameters

      • proxyName: string

        The name of the proxy to check.

      Returns boolean

      True if the IProxy is registered, otherwise false.

      -
    • Register an IProxy instance with the Model.

      Parameters

      • proxy: IProxy

        an object reference to be held by the Model.

        -

      Returns void

    • Remove an IProxy instance from the Model.

      +

    Returns void

    • Remove an IProxy instance from the Model.

      Parameters

      • proxyName: string

        The name of the proxy to remove.

      Returns null | IProxy

      The removed IProxy if found, otherwise null.

      -
    • Retrieve an IProxy instance from the Model.

      Parameters

      • proxyName: string

        The name of the proxy to retrieve.

      Returns null | IProxy

      The IProxy if registered, otherwise null.

      -
    +
    diff --git a/docs/interfaces/INotification.html b/docs/interfaces/INotification.html index 791e1e4..46dfd81 100644 --- a/docs/interfaces/INotification.html +++ b/docs/interfaces/INotification.html @@ -21,13 +21,13 @@ parent/child relationship in order to communicate with one another using Notifications.

    INotification

    -
    interface INotification {
        body?: any;
        name: string;
        type?: string;
        toString(): string;
    }

    Implemented by

    Properties

    interface INotification {
        body?: any;
        name: string;
        type?: string;
        toString(): string;
    }

    Implemented by

    Properties

    Methods

    Properties

    body?: any

    The body of the notification.

    -
    name: string

    The name of the notification.

    -
    type?: string

    The type of the notification.

    -

    Methods

    name: string

    The name of the notification.

    +
    type?: string

    The type of the notification.

    +

    Methods

    • Get the string representation of the INotification instance

      Returns string

      A string representation of the notification.

      -
    +
    diff --git a/docs/interfaces/INotifier.html b/docs/interfaces/INotifier.html index 0b34866..bfcbaaf 100644 --- a/docs/interfaces/INotifier.html +++ b/docs/interfaces/INotifier.html @@ -11,7 +11,7 @@ classes have frequent Facade interactions and usually require access to the facade anyway.

    INotifier

    -
    interface INotifier {
        initializeNotifier(key: string): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Methods

    interface INotifier {
        initializeNotifier(key: string): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Methods

    • Initialize this INotifier instance.

      This is how a Notifier get to Calls to @@ -19,10 +19,10 @@ facade will fail until after this method has been called.

      Parameters

      • key: string

        The key used to initialize the notifier.

        -

      Returns void

    • Send a INotification.

      +

    Returns void

    • Send a INotification.

      Convenience method to prevent having to construct new notification instances in our implementation code.

      Parameters

      • notificationName: string

        The name of the notification to send.

      • Optionalbody: any

        Optional data associated with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/interfaces/IObserver.html b/docs/interfaces/IObserver.html index 2ea019c..b6605ef 100644 --- a/docs/interfaces/IObserver.html +++ b/docs/interfaces/IObserver.html @@ -31,15 +31,15 @@ in an object implementing the INotification interface, such as a subclass of Notification.

    IObserver

    -
    interface IObserver {
        notifyContext?: any;
        notifyMethod?: null | ((notification: INotification) => void);
        compareNotifyContext(object: any): boolean;
        notifyObserver(notification: INotification): void;
    }

    Implemented by

    Properties

    interface IObserver {
        notifyContext?: any;
        notifyMethod?: null | ((notification: INotification) => void);
        compareNotifyContext(object: any): boolean;
        notifyObserver(notification: INotification): void;
    }

    Implemented by

    Properties

    notifyContext?: any

    The context in which the notification method should be called.

    -
    notifyMethod?: null | ((notification: INotification) => void)

    The method to be called when a notification is received.

    -

    Methods

    • Compare the given object to the notification context object.

      +
    notifyMethod?: null | ((notification: INotification) => void)

    The method to be called when a notification is received.

    +

    Methods

    • Compare the given object to the notification context object.

      Parameters

      • object: any

        The object to compare with the notifyContext.

      Returns boolean

      true if the object is the same as the notifyContext, otherwise false.

      -
    • Notify the interested object.

      Parameters

      • notification: INotification

        the INotification to pass to the interested object's notification method

        -

      Returns void

    +

    Returns void

    diff --git a/docs/interfaces/IProxy.html b/docs/interfaces/IProxy.html index 3414c19..9aec597 100644 --- a/docs/interfaces/IProxy.html +++ b/docs/interfaces/IProxy.html @@ -27,26 +27,26 @@

    IProxy

    -
    interface IProxy {
        data?: any;
        name: string;
        initializeNotifier(key: string): void;
        onRegister(): void;
        onRemove(): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Properties

    interface IProxy {
        data?: any;
        name: string;
        initializeNotifier(key: string): void;
        onRegister(): void;
        onRemove(): void;
        sendNotification(notificationName: string, body?: any, type?: string): void;
    }

    Hierarchy (view full)

    Implemented by

    Properties

    data?: any

    The data associated with the proxy.

    -
    name: string

    The name of the proxy.

    -

    Methods

    name: string

    The name of the proxy.

    +

    Methods

    • Initialize this INotifier instance.

      This is how a Notifier get to Calls to sendNotification or to access the facade will fail until after this method has been called.

      Parameters

      • key: string

        The key used to initialize the notifier.

        -

      Returns void

    • Send a INotification.

      +

    Returns void

    • Send a INotification.

      Convenience method to prevent having to construct new notification instances in our implementation code.

      Parameters

      • notificationName: string

        The name of the notification to send.

      • Optionalbody: any

        Optional data associated with the notification.

      • Optionaltype: string

        Optional type of the notification.

        -

      Returns void

    +

    Returns void

    diff --git a/docs/interfaces/IView.html b/docs/interfaces/IView.html index ddde39a..1aa8482 100644 --- a/docs/interfaces/IView.html +++ b/docs/interfaces/IView.html @@ -21,7 +21,7 @@

    IView

    -
    interface IView {
        hasMediator(mediatorName: string): boolean;
        notifyObservers(notification: INotification): void;
        registerMediator(mediator: IMediator): void;
        registerObserver(notificationName: string, observer: IObserver): void;
        removeMediator(mediatorName: string): null | IMediator;
        removeObserver(notificationName: string, notifyContext: any): void;
        retrieveMediator(mediatorName: string): null | IMediator;
    }

    Implemented by

    Methods

    interface IView {
        hasMediator(mediatorName: string): boolean;
        notifyObservers(notification: INotification): void;
        registerMediator(mediator: IMediator): void;
        registerObserver(notificationName: string, observer: IObserver): void;
        removeMediator(mediatorName: string): null | IMediator;
        removeObserver(notificationName: string, notifyContext: any): void;
        retrieveMediator(mediatorName: string): null | IMediator;
    }

    Implemented by

    Methods

    • Check if a IMediator is registered or not

      Parameters

      • mediatorName: string

        The name of the IMediator to check.

      Returns boolean

      true if the IMediator is registered, otherwise false.

      -
    • Notify the IObservers for a particular INotification.

      +
    • Notify the IObservers for a particular INotification.

      All previously attached IObservers for this INotification's list are notified and are passed a reference to the INotification in the order in which they were registered.

      Parameters

      • notification: INotification

        the INotification to notify IObservers of.

        -

      Returns void

    • Register an IMediator instance with the View.

      +

    Returns void

    • Register an IMediator instance with the View.

      Registers the IMediator so that it can be retrieved by name, and further interrogates the IMediator for its INotification interests.

      @@ -46,17 +46,17 @@ and registering it as an Observer for all INotifications the IMediator is interested in.

      Parameters

      • mediator: IMediator

        The IMediator to be registered.

        -

      Returns void

    • Register an IObserver to be notified +

    Returns void

    • Register an IObserver to be notified of INotifications with a given name.

      Parameters

      • notificationName: string

        The name of the notification to register the observer for.

      • observer: IObserver

        The observer to be registered.

        -

      Returns void

    • Remove an IMediator from the View.

      +

    Returns void

    • Remove an IMediator from the View.

      Parameters

      • mediatorName: string

        name of the IMediator instance to be removed.

      Returns null | IMediator

      The removed IMediator, or null if not found.

      -
    • Remove a group of observers from the observer list for a given Notification name.

      +
    • Remove a group of observers from the observer list for a given Notification name.

      Parameters

      • notificationName: string

        which observer list to remove from

      • notifyContext: any

        removed the observers with this object as their notifyContext

        -

      Returns void

    • Retrieve an IMediator from the View.

      +

    Returns void

    • Retrieve an IMediator from the View.

      Parameters

      • mediatorName: string

        the name of the IMediator instance to retrieve.

      Returns null | IMediator

      The IMediator associated with the given name, or null if not found.

      -
    +
    diff --git a/docs/modules.html b/docs/modules.html index 3d7c9b0..8e81dd1 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,4 +1,4 @@ -@puremvc/puremvc-typescript-multicore-framework

    @puremvc/puremvc-typescript-multicore-framework

    Index

    Classes

    Controller +@puremvc/puremvc-typescript-multicore-framework

    @puremvc/puremvc-typescript-multicore-framework

    Index

    Classes

    Controller Facade MacroCommand Mediator diff --git a/package.json b/package.json index 59b55f6..ddf0403 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@puremvc/puremvc-typescript-multicore-framework", - "version": "2.0.1", + "version": "2.0.2", "description": "PureMVC MultiCore Framework for TypeScript", "main": "bin/cjs/index.js", "module": "bin/esm/index.js", @@ -11,9 +11,6 @@ "import": "./bin/esm/index.js" } }, - "bin": { - "puremvc-js-multicore-framework": "bin/esm/index.js" - }, "scripts": { "build": "npm run clean && npm run build:lib", "build:lib": "npm run build:cjs && npm run build:esm", diff --git a/src/interfaces/IFacade.ts b/src/interfaces/IFacade.ts index e8c8194..9e115f8 100644 --- a/src/interfaces/IFacade.ts +++ b/src/interfaces/IFacade.ts @@ -132,30 +132,4 @@ export interface IFacade extends INotifier { * @returns {void} */ notifyObservers(notification: INotification): void; - - /** - * Create and send an `Notification`. - * - * Keeps us from having to construct new notification - * instances in our implementation code. - * - * @param {string} notificationName - the `INotification` to have the `View` notify `Observers` of. - * @param {any} [body] - Optional data to be included in the notification. - * @param {string} [type] - Optional type of the notification. - * @returns {void} - */ - sendNotification(notificationName: string, body?: any, type?: string): void; - - /** - * Set the Multiton key for this facade instance. - * - * Not called directly, but instead from the - * constructor when `getInstance` is invoked. - * It is necessary to be public in order to - * implement Notifier. - * - * @param {string} key - The unique key to initialize the notifier with. - * @returns {void} - */ - initializeNotifier(key: string): void; } diff --git a/src/patterns/mediator/Mediator.ts b/src/patterns/mediator/Mediator.ts index b1e3124..64a403d 100644 --- a/src/patterns/mediator/Mediator.ts +++ b/src/patterns/mediator/Mediator.ts @@ -29,7 +29,7 @@ export class Mediator extends Notifier implements IMediator { protected readonly _name: string; /** The view component - * @type {Object} */ + * @type {any} */ protected _viewComponent?: any; /** diff --git a/test/core/Controller.spec.ts b/test/core/Controller.spec.ts index 8dbfb7c..af368d3 100644 --- a/test/core/Controller.spec.ts +++ b/test/core/Controller.spec.ts @@ -6,8 +6,8 @@ // Your reuse is governed by the BSD-3-Clause License // -import { Controller, IController, View, INotification, Notification } from "../../src" -import {ControllerTestCommand} from "./ControllerTestCommand" +import { Controller, IController, View, INotification, Notification } from "../../src"; +import {ControllerTestCommand} from "./ControllerTestCommand"; import {ControllerTestVO} from "./ControllerTestVO"; import {ControllerTestCommand2} from "./ControllerTestCommand2"; @@ -24,7 +24,7 @@ describe("ControllerTest", () => { */ test("testGetInstance", () => { // Test Factory Method - let controller: IController = Controller.getInstance("ControllerTestKey1", (key: string) => new Controller(key)); + const controller: IController = Controller.getInstance("ControllerTestKey1", (key: string) => new Controller(key)); // test assertions expect(controller).toBeDefined(); @@ -33,24 +33,24 @@ describe("ControllerTest", () => { /** * Tests Command registration and execution. * - *

    This test gets a Multiton Controller instance + * This test gets a Multiton Controller instance * and registers the ControllerTestCommand class - * to handle 'ControllerTest' Notifications.

    + * to handle 'ControllerTest' Notifications. * - *

    It then constructs such a Notification and tells the + * It then constructs such a Notification and tells the * Controller to execute the associated Command. * Success is determined by evaluating a property * on an object passed to the Command, which will - * be modified when the Command executes.

    + * be modified when the Command executes. */ test("testRegisterAndExecuteCommand", () => { // Create the controller, register the ControllerTestCommand to handle 'ControllerTest' notes - let controller: IController = Controller.getInstance("ControllerTestKey2", (key: string) => new Controller(key)); + const controller: IController = Controller.getInstance("ControllerTestKey2", (key: string) => new Controller(key)); controller.registerCommand("ControllerTest", () => new ControllerTestCommand()); // Create a 'ControllerTest' note - let vo = new ControllerTestVO(12); - let notification: INotification = new Notification("ControllerTest", vo); + const vo = new ControllerTestVO(12); + const notification: INotification = new Notification("ControllerTest", vo); // Tell the controller to execute the Command associated with the note // the ControllerTestCommand invoked will multiply the vo.input value @@ -64,17 +64,17 @@ describe("ControllerTest", () => { /** * Tests Command registration and removal. * - *

    Tests that once a Command is registered and verified - * working, it can be removed from the Controller.

    + * Tests that once a Command is registered and verified + * working, it can be removed from the Controller. */ test("testRegisterAndRemoveCommand", () => { // Create the controller, register the ControllerTestCommand to handle 'ControllerTest' notes - let controller: IController = Controller.getInstance("ControllerTestKey3", (key: string) => new Controller(key)); + const controller: IController = Controller.getInstance("ControllerTestKey3", (key: string) => new Controller(key)); controller.registerCommand("ControllerRemoveTest", () => new ControllerTestCommand()); // Create a 'ControllerTest' note - let vo = new ControllerTestVO(12); - let notification = new Notification("ControllerRemoveTest", vo); + const vo = new ControllerTestVO(12); + const notification = new Notification("ControllerRemoveTest", vo); // Tell the controller to execute the Command associated with the note // the ControllerTestCommand invoked will multiply the vo.input value @@ -101,7 +101,7 @@ describe("ControllerTest", () => { test("testHasCommand", () => { // register the ControllerTestCommand to handle 'hasCommandTest' notes - let controller: IController = Controller.getInstance("ControllerTestKey4", (key: string) => new Controller(key)); + const controller: IController = Controller.getInstance("ControllerTestKey4", (key: string) => new Controller(key)); controller.registerCommand("hasCommandTest", () => new ControllerTestCommand()); // test that hasCommand returns true for hasCommandTest notifications @@ -117,17 +117,17 @@ describe("ControllerTest", () => { /** * Tests Removing and Reregistering a Command * - *

    Tests that when a Command is re-registered that it isn't fired twice. + * Tests that when a Command is re-registered that it isn't fired twice. * This involves, minimally, registration with the controller but * notification via the View, rather than direct execution of * the Controller's executeCommand method as is done above in * testRegisterAndRemove. The bug under test was fixed in AS3 Standard * Version 2.0.2. If you run the unit tests with 2.0.1 this - * test will fail.

    + * test will fail. */ test("testReregisterAndExecuteCommand", () => { // Fetch the controller, register the ControllerTestCommand2 to handle 'ControllerTest2' notes - let controller: IController = Controller.getInstance("ControllerTestKey5", (key: string) => new Controller(key)); + const controller: IController = Controller.getInstance("ControllerTestKey5", (key: string) => new Controller(key)); controller.registerCommand("ControllerTest2", () => new ControllerTestCommand2()); // Remove the Command from the Controller @@ -137,11 +137,11 @@ describe("ControllerTest", () => { controller.registerCommand("ControllerTest2", () => new ControllerTestCommand2()); // Create a 'ControllerTest2' note - let vo = new ControllerTestVO(12); - let note = new Notification("ControllerTest2", vo); + const vo = new ControllerTestVO(12); + const note = new Notification("ControllerTest2", vo); // retrieve a reference to the View from the same core. - let view = View.getInstance("ControllerTestKey5", (key: string) => new View((key))); + const view = View.getInstance("ControllerTestKey5", (key: string) => new View((key))); // send the Notification view.notifyObservers(note); diff --git a/test/core/ControllerTestCommand.ts b/test/core/ControllerTestCommand.ts index f3375c9..3933b88 100644 --- a/test/core/ControllerTestCommand.ts +++ b/test/core/ControllerTestCommand.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {SimpleCommand, INotification} from "../../src" +import {SimpleCommand, INotification} from "../../src"; import {ControllerTestVO} from "./ControllerTestVO"; /** @@ -26,7 +26,7 @@ export class ControllerTestCommand extends SimpleCommand { * @param notification the note carrying the ControllerTestVO */ public override execute(notification: INotification) { - let vo = notification.body as ControllerTestVO; + const vo = notification.body as ControllerTestVO; // Fabricate a result vo.result = 2 * vo.input; diff --git a/test/core/ControllerTestCommand2.ts b/test/core/ControllerTestCommand2.ts index e528960..5d9ec25 100644 --- a/test/core/ControllerTestCommand2.ts +++ b/test/core/ControllerTestCommand2.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {SimpleCommand, INotification} from "../../src" +import {SimpleCommand, INotification} from "../../src"; import {ControllerTestVO} from "./ControllerTestVO"; /** @@ -26,7 +26,7 @@ export class ControllerTestCommand2 extends SimpleCommand { * @param {Notification} notification */ public override execute(notification: INotification): void { - let vo = notification.body as ControllerTestVO; + const vo = notification.body as ControllerTestVO; // Fabricate a result vo.result = vo.result + (2 * vo.input); diff --git a/test/core/Model.spec.ts b/test/core/Model.spec.ts index fba6b3c..d992948 100644 --- a/test/core/Model.spec.ts +++ b/test/core/Model.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {IModel, Model, IProxy, Proxy} from "../../src" +import {IModel, Model, IProxy, Proxy} from "../../src"; import {ModelTestProxy} from "./ModelTestProxy"; /** @@ -28,19 +28,19 @@ describe("ModelTest", () => { /** * Tests the proxy registration and retrieval methods. * - *

    + * * Tests `registerProxy` and `retrieveProxy` in the same test. * These methods cannot currently be tested separately * in any meaningful way other than to show that the - * methods do not throw exception when called.

    + * methods do not throw exception when called. */ test("testRegisterAndRetrieveProxy", () => { // register a proxy and retrieve it. const model: IModel = Model.getInstance("ModelTestKey2", (key: string) => new Model(key)); model.registerProxy(new Proxy("colors", ["red", "green", "blue"])); - let proxy: IProxy | null = model.retrieveProxy("colors"); + const proxy: IProxy | null = model.retrieveProxy("colors"); expect(proxy).toBeDefined(); - let data = proxy?.data as string[]; + const data = proxy?.data as string[]; // test assertions expect(data).not.toBeNull(); @@ -57,18 +57,18 @@ describe("ModelTest", () => { test("testRegisterAndRemoveProxy", () => { // register a proxy, remove it, then try to retrieve it const model: IModel = Model.getInstance("ModelTestKey3", (key: string) => new Model(key)); - let proxy: IProxy = new Proxy("sizes", ["7", "13", "21"]); + const proxy: IProxy = new Proxy("sizes", ["7", "13", "21"]); model.registerProxy(proxy); // remove the proxy - let removedProxy: IProxy | null = model.removeProxy("sizes"); + const removedProxy: IProxy | null = model.removeProxy("sizes"); // assert that we removed the appropriate proxy expect(removedProxy).not.toBeNull(); expect(removedProxy?.name).toBe("sizes"); // ensure that the proxy is no longer retrievable from the model - let proxy1 = model.retrieveProxy("sizes"); + const proxy1 = model.retrieveProxy("sizes"); // test assertions expect(proxy1).toBeNull(); @@ -80,7 +80,7 @@ describe("ModelTest", () => { test("testHasProxy", () => { // register a proxy const model: IModel = Model.getInstance("ModelTestKey4", (key: string) => new Model(key)); - let proxy: IProxy = new Proxy("aces", ["clubs", "spades", "hearts", "diamonds"]); + const proxy: IProxy = new Proxy("aces", ["clubs", "spades", "hearts", "diamonds"]); model.registerProxy(proxy); // assert that the model.hasProxy method returns true @@ -103,7 +103,7 @@ describe("ModelTest", () => { const model: IModel = Model.getInstance("ModelTestKey5", (key: string) => new Model(key)); // Create and register the test proxy - let proxy: IProxy = new ModelTestProxy(); + const proxy: IProxy = new ModelTestProxy(); model.registerProxy(proxy); // assert that onRegister was called, and the proxy responded by setting its data accordingly diff --git a/test/core/ModelTestProxy.ts b/test/core/ModelTestProxy.ts index 14dc9b3..0156a32 100644 --- a/test/core/ModelTestProxy.ts +++ b/test/core/ModelTestProxy.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Proxy} from "../../src" +import {Proxy} from "../../src"; /** * @class ModelTestProxy diff --git a/test/core/View.spec.ts b/test/core/View.spec.ts index beef9d0..d2acbe2 100644 --- a/test/core/View.spec.ts +++ b/test/core/View.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {IView, View, IMediator, Mediator, INotification, Notification, IObserver, Observer} from "../../src" +import {IView, View, IMediator, Mediator, INotification, Notification, IObserver, Observer} from "../../src"; import {ViewTestNote} from "./ViewTestNote"; import {ViewTestMediator} from "./ViewTestMediator"; import {ViewTestMediator2} from "./ViewTestMediator2"; @@ -34,32 +34,32 @@ describe("ViewTest", () => { /** * Tests registration and notification of Observers. * - *

    An Observer is created to callback the viewTestMethod of + * An Observer is created to callback the viewTestMethod of * this ViewTest instance. This Observer is registered with * the View to be notified of 'ViewTestEvent' events. Such * an event is created, and a value set on its payload. Then * the View is told to notify interested observers of this - * Event.

    + * Event. * - *

    The View calls the Observer's notifyObserver method + * The View calls the Observer's notifyObserver method * which calls the viewTestMethod on this instance * of the ViewTest class. The viewTestMethod method will set * an instance variable to the value passed in on the Event * payload. We evaluate the instance variable to be sure * it is the same as that passed out as the payload of the - * original 'ViewTestEvent'.

    + * original 'ViewTestEvent'. */ test("testRegisterAndNotifyObserver", () => { // Get the Multiton View instance const view: IView = View.getInstance("ViewTestKey2", (key: string) => new View(key)); let viewTestVar: number = 0; - let handleNotification = (notification: INotification) => { + const handleNotification = (notification: INotification) => { viewTestVar = notification.body; }; // Create observer, passing in notification method and context - let observer: IObserver = new Observer(handleNotification, this); + const observer: IObserver = new Observer(handleNotification, this); // Register Observer's interest in a particular Notification with the View view.registerObserver(ViewTestNote.NAME, observer); @@ -71,7 +71,7 @@ describe("ViewTest", () => { // successful notification will result in our local // viewTestVar being set to the value we pass in // on the note body. - let note: Notification = ViewTestNote.create(10); + const note: Notification = ViewTestNote.create(10); view.notifyObservers(note); // test assertions @@ -87,11 +87,11 @@ describe("ViewTest", () => { const view: IView = View.getInstance("ViewTestKey3", (key: string) => new View(key)); // Create and register the test mediator - let viewTestMediator = new ViewTestMediator(this); + const viewTestMediator = new ViewTestMediator(this); view.registerMediator(viewTestMediator); // Retrieve the component - let mediator : IMediator | null = view.retrieveMediator(ViewTestMediator.NAME); + const mediator : IMediator | null = view.retrieveMediator(ViewTestMediator.NAME); // test assertions expect(mediator).toBe(viewTestMediator); @@ -105,7 +105,7 @@ describe("ViewTest", () => { const view: IView = View.getInstance("ViewTestKey4", (key: string) => new View(key)); // Create and register the test mediator - let mediator = new Mediator("hasMediatorTest", this); + const mediator = new Mediator("hasMediatorTest", this); view.registerMediator(mediator); // assert that the view.hasMediator method returns true @@ -127,11 +127,11 @@ describe("ViewTest", () => { const view = View.getInstance("ViewTestKey5", (key: string) => new View(key)); // Create and register the test mediator - let mediator: IMediator = new Mediator("testing", this); + const mediator: IMediator = new Mediator("testing", this); view.registerMediator(mediator); // Remove the component - let removedMediator = view.removeMediator("testing"); + const removedMediator = view.removeMediator("testing"); // assert that we have removed the appropriate mediator expect(removedMediator?.name).toBe("testing"); @@ -148,8 +148,8 @@ describe("ViewTest", () => { const view = View.getInstance("ViewTestKey6", (key: string) => new View(key)); // Create and register the test mediator - let obj = {onRegisterCalled: false, onRemoveCalled: false}; - let mediator = new ViewTestMediator4(obj); + const obj = {onRegisterCalled: false, onRemoveCalled: false}; + const mediator = new ViewTestMediator4(obj); view.registerMediator(mediator); // assert that onRegister was called, and the mediator responded by setting our boolean @@ -206,7 +206,7 @@ describe("ViewTest", () => { // Get the Multiton View instance const view = View.getInstance("ViewTestKey8", (key: string) => new View(key)); - let obj = {lastNotification: ""}; + const obj = {lastNotification: ""}; // Create and register the test mediator to be removed. view.registerMediator(new ViewTestMediator2(obj)); @@ -240,7 +240,7 @@ describe("ViewTest", () => { // Get the Multiton View instance const view = View.getInstance("ViewTestKey9", (key: string) => new View(key)); - let obj = {lastNotification: ""}; + const obj = {lastNotification: ""}; // Create and register that responds to notifications 1 and 2 view.registerMediator(new ViewTestMediator2(obj)); @@ -289,7 +289,7 @@ describe("ViewTest", () => { test("testMediatorReregistration", () => { // Get the Multiton View instance const view = View.getInstance("ViewTestKey10", (key: string) => new View(key)); - let obj = {counter: 0}; + const obj = {counter: 0}; // Create and register that responds to notification 5 view.registerMediator(new ViewTestMediator5(obj)); @@ -323,7 +323,7 @@ describe("ViewTest", () => { */ test("testModifyObserverListDuringNotification", () => { const view = View.getInstance("ViewTestKey11", (key: string) => new View(key)); - let obj = {counter: 0}; + const obj = {counter: 0}; // Create and register several mediator instances that respond to notification 6 // by removing themselves, which will cause the observer list for that notification diff --git a/test/core/ViewTestMediator.ts b/test/core/ViewTestMediator.ts index 46fe2ca..0d99aeb 100644 --- a/test/core/ViewTestMediator.ts +++ b/test/core/ViewTestMediator.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Mediator} from "../../src" +import {Mediator} from "../../src"; /** * A Mediator class used by ViewTest. diff --git a/test/core/ViewTestMediator2.ts b/test/core/ViewTestMediator2.ts index 3d3cfdd..931e8e3 100644 --- a/test/core/ViewTestMediator2.ts +++ b/test/core/ViewTestMediator2.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {INotification, Mediator} from "../../src" +import {INotification, Mediator} from "../../src"; import {ViewTestNote} from "./ViewTestNote"; /** diff --git a/test/core/ViewTestMediator3.ts b/test/core/ViewTestMediator3.ts index 11e4728..0565a76 100644 --- a/test/core/ViewTestMediator3.ts +++ b/test/core/ViewTestMediator3.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Mediator, INotification} from "../../src" +import {Mediator, INotification} from "../../src"; import {ViewTestNote} from "./ViewTestNote"; /** diff --git a/test/core/ViewTestMediator4.ts b/test/core/ViewTestMediator4.ts index 9dbb1be..28eed1b 100644 --- a/test/core/ViewTestMediator4.ts +++ b/test/core/ViewTestMediator4.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Mediator} from "../../src" +import {Mediator} from "../../src"; /** * @class ViewTestMediator4 diff --git a/test/core/ViewTestMediator5.ts b/test/core/ViewTestMediator5.ts index c2c47db..333ccf5 100644 --- a/test/core/ViewTestMediator5.ts +++ b/test/core/ViewTestMediator5.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Mediator, INotification} from "../../src" +import {Mediator, INotification} from "../../src"; import {ViewTestNote} from "./ViewTestNote"; /** diff --git a/test/core/ViewTestMediator6.ts b/test/core/ViewTestMediator6.ts index 942a8dd..b1508fb 100644 --- a/test/core/ViewTestMediator6.ts +++ b/test/core/ViewTestMediator6.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Mediator, INotification} from "../../src" +import {Mediator, INotification} from "../../src"; import {ViewTestNote} from "./ViewTestNote"; /** diff --git a/test/core/ViewTestNote.ts b/test/core/ViewTestNote.ts index 95d2943..8a188bf 100644 --- a/test/core/ViewTestNote.ts +++ b/test/core/ViewTestNote.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Notification} from "../../src" +import {Notification} from "../../src"; export class ViewTestNote extends Notification { diff --git a/test/patterns/command/MacroCommand.spec.ts b/test/patterns/command/MacroCommand.spec.ts index 9f06341..08ec41d 100644 --- a/test/patterns/command/MacroCommand.spec.ts +++ b/test/patterns/command/MacroCommand.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Notification} from "../../../src" +import {Notification} from "../../../src"; import {MacroCommandTestVO} from "./MacroCommandTestVO"; import {MacroCommandTestCommand} from "./MacroCommandTestCommand"; @@ -21,39 +21,39 @@ describe("MacroCommandTest", () => { /** * Tests operation of a `MacroCommand`. * - *

    This test creates a new `Notification`, adding a + * This test creates a new `Notification`, adding a * `MacroCommandTestVO` as the body. * It then creates a `MacroCommandTestCommand` and invokes * its `execute` method, passing in the - * `Notification`.

    + * `Notification`. * - *

    The `MacroCommandTestCommand` has defined an + * The `MacroCommandTestCommand` has defined an * `initializeMacroCommand` method, which is * called automatically by its constructor. In this method * the `MacroCommandTestCommand` adds 2 SubCommands * to itself, `MacroCommandTestSub1Command` and - * `MacroCommandTestSub2Command`.

    + * `MacroCommandTestSub2Command`. * - *

    The `MacroCommandTestVO` has 2 result properties, + * The `MacroCommandTestVO` has 2 result properties, * one is set by `MacroCommandTestSub1Command` by * multiplying the input property by 2, and the other is set * by `MacroCommandTestSub2Command` by multiplying - * the input property by itself.

    + * the input property by itself. * - *

    Success is determined by evaluating the 2 result properties + * Success is determined by evaluating the 2 result properties * on the `MacroCommandTestVO` that was passed to * the `MacroCommandTestCommand` on the Notification - * body.

    + * body. */ test("testMacroCommandExecute", () => { // Create the VO - let vo: MacroCommandTestVO = new MacroCommandTestVO(5); + const vo: MacroCommandTestVO = new MacroCommandTestVO(5); // Create the Notification - let notification = new Notification("MacroCommandTest", vo); + const notification = new Notification("MacroCommandTest", vo); // Create the SimpleCommand - let command: MacroCommandTestCommand = new MacroCommandTestCommand(); + const command: MacroCommandTestCommand = new MacroCommandTestCommand(); // Execute the SimpleCommand command.execute(notification); diff --git a/test/patterns/command/MacroCommandTestCommand.ts b/test/patterns/command/MacroCommandTestCommand.ts index 3c1a482..452b2f5 100644 --- a/test/patterns/command/MacroCommandTestCommand.ts +++ b/test/patterns/command/MacroCommandTestCommand.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {MacroCommand} from "../../../src" +import {MacroCommand} from "../../../src"; import {MacroCommandTestSub1Command} from "./MacroCommandTestSub1Command"; import {MacroCommandTestSub2Command} from "./MacroCommandTestSub2Command"; diff --git a/test/patterns/command/MacroCommandTestSub1Command.ts b/test/patterns/command/MacroCommandTestSub1Command.ts index 4788066..8b64984 100644 --- a/test/patterns/command/MacroCommandTestSub1Command.ts +++ b/test/patterns/command/MacroCommandTestSub1Command.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {SimpleCommand, INotification} from "../../../src" +import {SimpleCommand, INotification} from "../../../src"; import {MacroCommandTestVO} from "./MacroCommandTestVO"; /** @@ -27,7 +27,7 @@ export class MacroCommandTestSub1Command extends SimpleCommand { * @param {Notification} notification event the `IEvent` carrying the `MacroCommandTestVO` */ public override execute(notification: INotification) { - let vo = notification.body as MacroCommandTestVO; + const vo = notification.body as MacroCommandTestVO; // Fabricate a result vo.result1 = 2 * vo.input; diff --git a/test/patterns/command/MacroCommandTestSub2Command.ts b/test/patterns/command/MacroCommandTestSub2Command.ts index c86344f..7271712 100644 --- a/test/patterns/command/MacroCommandTestSub2Command.ts +++ b/test/patterns/command/MacroCommandTestSub2Command.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {SimpleCommand, INotification} from "../../../src" +import {SimpleCommand, INotification} from "../../../src"; import {MacroCommandTestVO} from "./MacroCommandTestVO"; /** @@ -27,7 +27,7 @@ export class MacroCommandTestSub2Command extends SimpleCommand { * @param {Notification} notification event the `IEvent` carrying the `MacroCommandTestVO` */ public override execute(notification: INotification) { - let vo: MacroCommandTestVO = notification.body as MacroCommandTestVO; + const vo: MacroCommandTestVO = notification.body as MacroCommandTestVO; // Fabricate a result vo.result2 = vo.input * vo.input; diff --git a/test/patterns/command/SimpleCommand.spec.ts b/test/patterns/command/SimpleCommand.spec.ts index c26e03c..a442e00 100644 --- a/test/patterns/command/SimpleCommand.spec.ts +++ b/test/patterns/command/SimpleCommand.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Notification} from "../../../src" +import {Notification} from "../../../src"; import {SimpleCommandTestVO} from "./SimpleCommandTestVO"; import {SimpleCommandTestCommand} from "./SimpleCommandTestCommand"; @@ -21,24 +21,24 @@ describe("SimpleCommandTest", () => { /** * Tests the `execute` method of a `SimpleCommand`. * - *

    This test creates a new `Notification`, adding a + * This test creates a new `Notification`, adding a * `SimpleCommandTestVO` as the body. * It then creates a `SimpleCommandTestCommand` and invokes - * its `execute` method, passing in the note.

    + * its `execute` method, passing in the note. * - *

    Success is determined by evaluating a property on the + * Success is determined by evaluating a property on the * object that was passed on the Notification body, which will - * be modified by the SimpleCommand

    . + * be modified by the SimpleCommand. */ test("testSimpleCommandExecute", () => { // Create the VO - let vo = new SimpleCommandTestVO(5) + const vo = new SimpleCommandTestVO(5); // Create the Notification (note) - let notification = new Notification("SimpleCommandTestNote", vo); + const notification = new Notification("SimpleCommandTestNote", vo); // Create the SimpleCommand - let command = new SimpleCommandTestCommand(); + const command = new SimpleCommandTestCommand(); // Execute the SimpleCommand command.execute(notification); diff --git a/test/patterns/command/SimpleCommandTestCommand.ts b/test/patterns/command/SimpleCommandTestCommand.ts index 4d1aab4..6268b89 100644 --- a/test/patterns/command/SimpleCommandTestCommand.ts +++ b/test/patterns/command/SimpleCommandTestCommand.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {SimpleCommand, INotification} from "../../../src" +import {SimpleCommand, INotification} from "../../../src"; import {SimpleCommandTestVO} from "./SimpleCommandTestVO"; /** @@ -23,7 +23,7 @@ export class SimpleCommandTestCommand extends SimpleCommand { * @param {Notification} notification event the `INotification` carrying the `SimpleCommandTestVO` */ execute(notification: INotification): void { - let vo: SimpleCommandTestVO = notification.body as SimpleCommandTestVO; + const vo: SimpleCommandTestVO = notification.body as SimpleCommandTestVO; // Fabricate a result vo.result = vo.input * 2; diff --git a/test/patterns/command/SimpleCommandTestVO.ts b/test/patterns/command/SimpleCommandTestVO.ts index 68b6975..d5cb924 100644 --- a/test/patterns/command/SimpleCommandTestVO.ts +++ b/test/patterns/command/SimpleCommandTestVO.ts @@ -25,7 +25,7 @@ export class SimpleCommandTestVO { * @param {number} input the number to be fed to the SimpleCommandTestCommand */ public constructor(input: number) { - this.input = input + this.input = input; } } diff --git a/test/patterns/facade/Facade.spec.ts b/test/patterns/facade/Facade.spec.ts index c4245cc..169df07 100644 --- a/test/patterns/facade/Facade.spec.ts +++ b/test/patterns/facade/Facade.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Facade, IProxy, Proxy, Mediator} from "../../../src" +import {Facade, IProxy, Proxy, Mediator} from "../../../src"; import {FacadeTestCommand} from "./FacadeTestCommand"; import {FacadeTestVO} from "./FacadeTestVO"; @@ -32,14 +32,14 @@ describe("FacadeTest", () => { /** * Tests Command registration and execution via the Facade. * - *

    This test gets a Multiton Facade instance + * This test gets a Multiton Facade instance * and registers the FacadeTestCommand class - * to handle 'FacadeTest' Notifications.

    + * to handle 'FacadeTest' Notifications. * - *

    It then sends a notification using the Facade. + * It then sends a notification using the Facade. * Success is determined by evaluating * a property on an object placed in the body of - * the Notification, which will be modified by the Command.

    + * the Notification, which will be modified by the Command. */ test("testRegisterCommandAndSendNotification", () => { // Create the Facade, register the FacadeTestCommand to @@ -50,7 +50,7 @@ describe("FacadeTest", () => { // Send notification. The Command associated with the event // (FacadeTestCommand) will be invoked, and will multiply // the vo.input value by 2 and set the result on vo.result - let vo = new FacadeTestVO(32); + const vo = new FacadeTestVO(32); facade.sendNotification("FacadeTestNote", vo); // test assertions @@ -60,14 +60,14 @@ describe("FacadeTest", () => { /** * Tests Command removal via the Facade. * - *

    This test gets a Multiton Facade instance + * This test gets a Multiton Facade instance * and registers the FacadeTestCommand class - * to handle 'FacadeTest' Notifications. Then it removes the command.

    + * to handle 'FacadeTest' Notifications. Then it removes the command. * - *

    It then sends a Notification using the Facade. + * It then sends a Notification using the Facade. * Success is determined by evaluating * a property on an object placed in the body of - * the Notification, which will NOT be modified by the Command.

    + * the Notification, which will NOT be modified by the Command. */ test("testRegisterAndRemoveCommandAndSendNotification", () => { // Create the Facade, register the FacadeTestCommand to @@ -79,7 +79,7 @@ describe("FacadeTest", () => { // Send notification. The Command associated with the event // (FacadeTestCommand) will NOT be invoked, and will NOT multiply // the vo.input value by 2 - let vo = new FacadeTestVO(32); + const vo = new FacadeTestVO(32); facade.sendNotification("FacadeTestNote", vo); // test assertions @@ -89,22 +89,22 @@ describe("FacadeTest", () => { /** * Tests the regsitering and retrieving Model proxies via the Facade. * - *

    Tests `registerProxy` and `retrieveProxy` in the same test. + * Tests `registerProxy` and `retrieveProxy` in the same test. * These methods cannot currently be tested separately * in any meaningful way other than to show that the - * methods do not throw exception when called.

    + * methods do not throw exception when called. */ test("testRegisterAndRetrieveProxy", () => { // register a proxy and retrieve it. const facade = Facade.getInstance("FacadeTestKey4", (key: string) => new Facade(key)); facade.registerProxy(new Proxy("colors", ["red", "green", "blue"])); - let proxy = facade.retrieveProxy("colors"); + const proxy = facade.retrieveProxy("colors"); // test assertions expect(proxy).toBeInstanceOf(Proxy); // retrieve data from proxy - let data = proxy?.data as string[]; + const data = proxy?.data as string[]; // test assertions expect(data).not.toBeNull(); @@ -120,17 +120,17 @@ describe("FacadeTest", () => { test("testRegisterAndRemoveProxy", () => { // register a proxy, remove it, then try to retrieve it const facade = Facade.getInstance("FacadeTestKey5", (key: string) => new Facade(key)); - let proxy: IProxy = new Proxy("sizes", ["7", "13", "21"]); + const proxy: IProxy = new Proxy("sizes", ["7", "13", "21"]); facade.registerProxy(proxy); // remove the proxy - let removedProxy: IProxy | null = facade.removeProxy("sizes"); + facade.removeProxy("sizes"); // assert that we removed the appropriate proxy expect(proxy.name).toBe("sizes"); // make sure we can no longer retrieve the proxy from the model - let proxy1 = facade.retrieveProxy("sizes"); + const proxy1 = facade.retrieveProxy("sizes"); // test assertions expect(proxy1).toBeNull(); @@ -148,7 +148,7 @@ describe("FacadeTest", () => { expect(facade.retrieveMediator(Mediator.NAME)).not.toBeNull(); // remove the mediator - let removedMediator = facade.removeMediator(Mediator.NAME); + const removedMediator = facade.removeMediator(Mediator.NAME); // assert that we have removed the appropriate mediator expect(removedMediator?.name).toBe(Mediator.NAME); @@ -215,7 +215,7 @@ describe("FacadeTest", () => { expect(Facade.hasCore("FacadeTestKey10")).toBeFalsy(); // register a Core - const facade = Facade.getInstance("FacadeTestKey10", (key: string) => new Facade(key)); + Facade.getInstance("FacadeTestKey10", (key: string) => new Facade(key)); // assert that the Facade.hasCore method returns true now that a Core is registered expect(Facade.hasCore("FacadeTestKey10")).toBeTruthy(); diff --git a/test/patterns/facade/FacadeTestCommand.ts b/test/patterns/facade/FacadeTestCommand.ts index f379239..069eeea 100644 --- a/test/patterns/facade/FacadeTestCommand.ts +++ b/test/patterns/facade/FacadeTestCommand.ts @@ -6,8 +6,8 @@ // Your reuse is governed by the BSD-3-Clause License // -import {SimpleCommand, INotification} from "../../../src" -import {FacadeTestVO} from "./FacadeTestVO" +import {SimpleCommand, INotification} from "../../../src"; +import {FacadeTestVO} from "./FacadeTestVO"; /** * A SimpleCommand subclass used by FacadeTest. @@ -26,7 +26,7 @@ export class FacadeTestCommand extends SimpleCommand { * @param {Notification} notification the Notification carrying the FacadeTestVO */ public override execute(notification: INotification): void { - let vo: FacadeTestVO = notification.body as FacadeTestVO + const vo: FacadeTestVO = notification.body as FacadeTestVO; // Fabricate a result vo.result = vo.input * 2; diff --git a/test/patterns/mediator/Mediator.spec.ts b/test/patterns/mediator/Mediator.spec.ts index a11ff0f..7febbd2 100644 --- a/test/patterns/mediator/Mediator.spec.ts +++ b/test/patterns/mediator/Mediator.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {IMediator, Mediator} from "../../../src" +import {IMediator, Mediator} from "../../../src"; /** * Test the PureMVC Mediator class. @@ -32,7 +32,7 @@ describe("MediatorTest", () => { */ test("testViewAccessor", () => { // Create a view object - let view: Object = {}; + const view: object = {}; // Create a new Proxy and use accessors to set the proxy name const mediator: IMediator = new Mediator(Mediator.NAME, view); diff --git a/test/patterns/observer/Notification.spec.ts b/test/patterns/observer/Notification.spec.ts index d66a163..24aa06c 100644 --- a/test/patterns/observer/Notification.spec.ts +++ b/test/patterns/observer/Notification.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {INotification, Notification} from "../../../src" +import {INotification, Notification} from "../../../src"; /** * Test the PureMVC Notification class. diff --git a/test/patterns/observer/Notifier.spec.ts b/test/patterns/observer/Notifier.spec.ts index e64f123..7619b4d 100644 --- a/test/patterns/observer/Notifier.spec.ts +++ b/test/patterns/observer/Notifier.spec.ts @@ -6,9 +6,9 @@ // Your reuse is governed by the BSD-3-Clause License // -import {Facade, Notifier} from "../../../src" -import {FacadeTestVO} from "../facade/FacadeTestVO" -import {FacadeTestCommand} from "../facade/FacadeTestCommand" +import {Facade, Notifier} from "../../../src"; +import {FacadeTestVO} from "../facade/FacadeTestVO"; +import {FacadeTestCommand} from "../facade/FacadeTestCommand"; /** * Test the PureMVC Notifier class. @@ -22,10 +22,10 @@ describe("NotifierTest", () => { expect(Facade.hasCore("notifierTest")).toBeTruthy(); - let vo = new FacadeTestVO(5); + const vo = new FacadeTestVO(5); facade.registerCommand("testCommand", () => new FacadeTestCommand()); - let notifier = new Notifier(); + const notifier = new Notifier(); notifier.initializeNotifier("notifierTest"); notifier.sendNotification("testCommand", vo); diff --git a/test/patterns/observer/Observer.spec.ts b/test/patterns/observer/Observer.spec.ts index 670255d..34a5e82 100644 --- a/test/patterns/observer/Observer.spec.ts +++ b/test/patterns/observer/Observer.spec.ts @@ -6,18 +6,18 @@ // Your reuse is governed by the BSD-3-Clause License // -import {INotification, Notification, Observer} from "../../../src" +import {INotification, Notification, Observer} from "../../../src"; /** * Tests PureMVC Observer class. * - *

    Since the Observer encapsulates the interested object's + * Since the Observer encapsulates the interested object's * callback information, there are no getters, only setters. - * It is, in effect write-only memory.

    + * It is, in effect write-only memory. * - *

    Therefore, the only way to test it is to set the + * Therefore, the only way to test it is to set the * notification method and context and call the notifyObserver - * method.

    + * method. */ describe("ObserverTest", () => { @@ -43,7 +43,7 @@ describe("ObserverTest", () => { // successful notification will result in our local // observerTestVar being set to the value we pass in // on the note body. - let notification: INotification = new Notification("ObserverTestNote", 10); + const notification: INotification = new Notification("ObserverTestNote", 10); observer.notifyObserver(notification); // test assertions @@ -64,7 +64,7 @@ describe("ObserverTest", () => { // successful notification will result in our local // observerTestVar being set to the value we pass in // on the note body. - let notification: INotification = new Notification("ObserverTestNote", 5); + const notification: INotification = new Notification("ObserverTestNote", 5); observer.notifyObserver(notification); // test assertions @@ -77,7 +77,7 @@ describe("ObserverTest", () => { test("testCompareNotifyContext", () => { // Create observer passing in notification method and context const observer = new Observer(observerTestMethod, this); - let negTestObject: Object = {}; + const negTestObject: object = {}; // test assertions expect(observer.compareNotifyContext(negTestObject)).toBe(false); diff --git a/test/patterns/proxy/Proxy.spec.ts b/test/patterns/proxy/Proxy.spec.ts index 6d12921..e0249bd 100644 --- a/test/patterns/proxy/Proxy.spec.ts +++ b/test/patterns/proxy/Proxy.spec.ts @@ -6,7 +6,7 @@ // Your reuse is governed by the BSD-3-Clause License // -import {IProxy, Proxy} from "../../../src" +import {IProxy, Proxy} from "../../../src"; /** * Test the PureMVC Proxy class. @@ -26,7 +26,7 @@ describe("ProxyTest", () => { // test assertions expect(proxy.name).toBe("TestProxy"); - let proxy2 = new Proxy(); + const proxy2 = new Proxy(); // test assertions expect(proxy2.name).toBe(Proxy.NAME); @@ -39,7 +39,7 @@ describe("ProxyTest", () => { // Create a new Proxy and use accessors to set the data const proxy = new Proxy("colors"); proxy.data = ["red", "green", "blue"]; - let data = proxy.data; + const data = proxy.data; // test assertions expect(data.length).toBe(3); @@ -54,7 +54,7 @@ describe("ProxyTest", () => { test("testConstructor", () => { // Create a new Proxy using the Constructor to set the name and data const proxy = new Proxy("colors", ["red", "green", "blue"]); - let data = proxy.data; + const data = proxy.data; // test assertions expect(data.length).toBe(3);