123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- "use strict";
- define( function() {
- var exports = Object.create( Object.prototype, {
-
-
-
-
-
-
-
-
-
-
-
-
-
- factory: {
- get: function() {
- return merge( {}, factory );
- }
- },
-
-
-
-
-
-
-
-
-
- instance: {
- set: function( value ) {
- instance = typeof value == "object" && value != null ? value : {};
- update();
- },
- get: function() {
- return instance;
- }
- },
-
-
-
-
-
-
- active: {
- get: function() {
- return active;
- }
- },
-
-
- environment: {
- set: function( value ) {
- environment = factory[value] ? value : "default";
- update();
- },
- get: function() {
- return environment;
- }
- },
-
-
-
-
-
-
-
-
- changed: {
- value: function( callback, context ) {
- callbacks.push( { callback: callback, context: context || this } );
- },
- },
- } );
-
-
- function update() {
-
- Object.keys( active ).forEach( function( key ) {
- delete active[key];
- } );
-
- merge( active, factory.default, factory[environment] || {}, instance );
-
- callbacks.forEach( function( callback ) {
- callback.callback.call( callback.context, active );
- }, this );
- }
-
- function merge( target /* [, source1 [, source2 ... ] ] */ ) {
- for ( var index = 1; index < arguments.length; index++ ) {
- var source = arguments[index];
- Object.keys( source ).forEach( function( key ) {
- target[key] = source[key];
- } );
- }
- return target;
- }
-
-
- var factory = {
-
- default: {
- "log-level": "warn",
- "random-seed": +new Date,
- "randomize-ids": false,
- "humanize-ids": false,
- "preserve-script-closures": false,
- "load-timeout": 10,
- },
-
- production: {
- "load-timeout": 60,
- },
-
- development: {
- "log-level": "info",
- "randomize-ids": true,
- "humanize-ids": true,
- "load-timeout": 30,
- },
-
- testing: {
- "random-seed": window.location.href,
- },
- };
-
-
- var instance = {};
-
-
- var active = {};
-
-
- var environment = require.toUrl( "dummy" ).indexOf( "../lib/" ) === 0 ?
- "testing" : "development";
-
-
- var callbacks = [];
-
- exports.instance = exports.instance;
-
- return exports;
- } );
|