Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Based on work by Nicholas Zakas
JavaScript
Branch: master
Failed to load latest commit information.
CoreModules Started raising notifications when module groupings are started and s…
TestHelpers Changed Core.Address test implementation to handle the new baseUrl fe…
Tests Fixed tests for new Core.Address html5 push state functionality
Core.Address.js Massive update
Core.Ajax.js Core.Ajax update
Core.Communication.js Massive update
Core.Controls.js Changed require in modules to be amd defines
Core.DataBinding.js Massive update
Core.DomManipulation.js Fixed modal show function (depends on bootstrap modal)
Core.Error.js Changed require in modules to be amd defines
Core.ModuleGrouping.js Core.ModuleGrouping cancels pending ajax requests when module groupin…
Core.Navigation.js Massive update
Core.Observable.js Changed require in modules to be amd defines
Core.OpenPostRequestPage.js Added a handler to download files and open new windows with attached …
Core.PageData.js Removed white space
Core.Singleton.js Massive update
Core.Storage.js Massive update
Core.UrlUtilities.js Massive update
Core.js Changed require in modules to be amd defines
README.md Update README.md
Sandbox.js Sandbox changes for new functions
StackTrace.js first commit
TestModules.js first commit
Util.Timer.js Formatting changes

README.md

Scalable Javascript Architecture

What is this for?

Basically this is an architectural framework that allows modularisation of javascript code. It also encapsulates your base library of choice in order to provide an abstraction, this allows (in certain scenarios) less dependence on the library.

How do I use it?

The library lets you define modules:

Core.register("ModuleA", function (sandbox) {
   return {
      activate: function () {
      },
      destroy: function () {
      }
   };
});

Start modules:

Core.start("ModuleA");

or

Core.startAll();

Stop modules:

Core.stop("ModuleA");

or

Core.stopAll();

Define module groupings:

Core.register("ModuleA", function (sandbox) {
   return {
      activate: function () {
      },
      destroy: function () {
      }
   };
});
Core.register("ModuleB", function (sandbox) {
   return {
      activate: function () {
      },
      destroy: function () {
      }
   };
});
Core.ModuleGrouping.registerGroup({
   name: "MyModuleGrouping",
   startsModules: ["ModuleA, ModuleB"]
});

Start and stop module groupings:

Core.ModuleGrouping.start("MyModuleGrouping");

Define module groupings that depend on other module groupings:

Core.register("ModuleC", function (sandbox) {
   return {
      activate: function () {
      },
      destroy: function () {
      }
   };
});
Core.ModuleGrouping.registerGroup({
   name: "MyNextModuleGrouping",
   dependsOnModuleGroupings: ["MyModuleGrouping"],
   startsModules: ["ModuleC"]
});
Something went wrong with that request. Please try again.