corrade-nucleus-nucleons
/script-kiddie/002_script_kiddie/script-kiddie/node_modules/sigmund/sigmund.js |
@@ -0,0 +1,39 @@ |
module.exports = sigmund |
function sigmund (subject, maxSessions) { |
maxSessions = maxSessions || 10; |
var notes = []; |
var analysis = ''; |
var RE = RegExp; |
|
function psychoAnalyze (subject, session) { |
if (session > maxSessions) return; |
|
if (typeof subject === 'function' || |
typeof subject === 'undefined') { |
return; |
} |
|
if (typeof subject !== 'object' || !subject || |
(subject instanceof RE)) { |
analysis += subject; |
return; |
} |
|
if (notes.indexOf(subject) !== -1 || session === maxSessions) return; |
|
notes.push(subject); |
analysis += '{'; |
Object.keys(subject).forEach(function (issue, _, __) { |
// pseudo-private values. skip those. |
if (issue.charAt(0) === '_') return; |
var to = typeof subject[issue]; |
if (to === 'function' || to === 'undefined') return; |
analysis += issue; |
psychoAnalyze(subject[issue], session + 1); |
}); |
} |
psychoAnalyze(subject, 0); |
return analysis; |
} |
|
// vim: set softtabstop=4 shiftwidth=4: |