-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexpjs.js
More file actions
1 lines (1 loc) · 924 Bytes
/
expjs.js
File metadata and controls
1 lines (1 loc) · 924 Bytes
1
"use strict";function Expander(n){function r(n){return"[object Array]"===Object.prototype.toString.call(n)}function t(n){return"string"==typeof n}function e(n){return"object"==typeof n}function o(n,o){if(r(n))f(n,o);else if(t(n))a(n,o);else{if(!e(n))throw"unknown argument type: "+typeof n;flatObj(n,o)}}function a(n,r){var t=n.split(/[,;:\s]/);1==t.length?r[t[0]]=null:t.length>1&&f(t,r)}function f(n,r){for(var t=0,e=n.length;e>t;++t){var a=n[t];o(a,r)}}function i(n){var r={};return o(n,r),r}function u(n,r){var t=[];for(var e in n)if(n.hasOwnProperty(e)){var o=c[e];if(o){var a=o.split(/[,;:\s]/);if(r)for(var f=0,l=a.length;l>f;++f)t=t.concat(u(i(a[f]),!0));else t=t.concat(a)}else t.push(e)}return t}var c=n;for(var l in c){var s=c[l];c[l]=u(i(s),!0).join(" ")}return function(){var n=arguments.length;if(0==n)return"";for(var r={},t=0;n>t;++t){var e=arguments[t];o(e,r)}return u(r).join(" ")}}module.exports=Expander;