|
|
- /**
- * Debugging support for web applications.
- *
- * @author David I. Lehn <dlehn@digitalbazaar.com>
- *
- * Copyright 2008-2013 Digital Bazaar, Inc.
- */
- var forge = require('./forge');
-
- /* DEBUG API */
- module.exports = forge.debug = forge.debug || {};
-
- // Private storage for debugging.
- // Useful to expose data that is otherwise unviewable behind closures.
- // NOTE: remember that this can hold references to data and cause leaks!
- // format is "forge._debug.<modulename>.<dataname> = data"
- // Example:
- // (function() {
- // var cat = 'forge.test.Test'; // debugging category
- // var sState = {...}; // local state
- // forge.debug.set(cat, 'sState', sState);
- // })();
- forge.debug.storage = {};
-
- /**
- * Gets debug data. Omit name for all cat data Omit name and cat for
- * all data.
- *
- * @param cat name of debugging category.
- * @param name name of data to get (optional).
- * @return object with requested debug data or undefined.
- */
- forge.debug.get = function(cat, name) {
- var rval;
- if(typeof(cat) === 'undefined') {
- rval = forge.debug.storage;
- } else if(cat in forge.debug.storage) {
- if(typeof(name) === 'undefined') {
- rval = forge.debug.storage[cat];
- } else {
- rval = forge.debug.storage[cat][name];
- }
- }
- return rval;
- };
-
- /**
- * Sets debug data.
- *
- * @param cat name of debugging category.
- * @param name name of data to set.
- * @param data data to set.
- */
- forge.debug.set = function(cat, name, data) {
- if(!(cat in forge.debug.storage)) {
- forge.debug.storage[cat] = {};
- }
- forge.debug.storage[cat][name] = data;
- };
-
- /**
- * Clears debug data. Omit name for all cat data. Omit name and cat for
- * all data.
- *
- * @param cat name of debugging category.
- * @param name name of data to clear or omit to clear entire category.
- */
- forge.debug.clear = function(cat, name) {
- if(typeof(cat) === 'undefined') {
- forge.debug.storage = {};
- } else if(cat in forge.debug.storage) {
- if(typeof(name) === 'undefined') {
- delete forge.debug.storage[cat];
- } else {
- delete forge.debug.storage[cat][name];
- }
- }
- };
|