kitchensink
Version:
Dispatch's awesome components and style guide
1 lines • 2.17 kB
JavaScript
makeInstaller=function(n){function r(n){return e(n)&&(l(g,n),i(j)&&j(g.r)),g.r}function t(n,r){return w.call(n,r)&&n[r]}function e(n){return n&&"object"==typeof n}function i(n){return"function"==typeof n}function u(n){return"string"==typeof n}function o(n){function r(r){var t=a(v(n,r));if(t===b){var e=new Error("Cannot find module '"+r+"'");if(!i(x))throw e;t=x(r,n.m.id,e)}return t}return r.ready=function(r){return c(v(n,r))},k&&Object.keys(k).forEach(function(n){i(k[n])&&(r[n]=k[n].bind(r))}),r}function f(n,r,t){var i=this;i.p=r=r||null,i.m=new y(r&&t?r.m.id+"/"+t:"",r&&r.m),i.q=r&&r.q,i.r=e(n)?o(i):r&&r.r,l(i,n),i.rc=s(i)&&{}}function c(n){var r=!!n,t=n&&n.c;if(t&&!n.inReady){if(n.inReady=!0,u(t))r=c(v(n,t));else if(i(t)){var e=t.d;if(e){var o=n.p.rc;r=e.every(function(r){return o[r]=o[r]||c(v(n.p,r))})}}n.inReady=!1}return r}function a(n){var r=n&&n.c;if(i(r)){var t=n.m;return w.call(t,"exports")||r(n.r,t.exports={},t,n.m.id,n.p.m.id||"/"),t.exports}return b}function s(n){return n&&e(n.c)}function l(n,r){if(Array.isArray(r)){var o=[];r.forEach(function(n){u(n)?o.push(n):i(n)&&(r=n)}),i(r)?r.d=o:r=null}else i(r)?r.d=r.d||[]:u(r)||e(r)||(r=null);if(r){var c=n.c=n.c||(e(r)?{}:r);e(r)&&s(n)&&Object.keys(r).forEach(function(e){var i=t(c,e);i?l(i,r[e]):c[e]=new f(r[e],n,e)})}}function p(n,r,e){for(;n&&!s(n);)n=n.p;if(!n||!r||"."===r)return n;if(".."===r)return n.p;var i=t(n.c,r);if(e&&(!i||s(i)))for(var u=0;u<m.length;++u){var o=t(n.c,r+m[u]);if(o)return o}return i}function d(n,r){var t=r.split("/");return t.every(function(r,e){return n=p(n,r,e===t.length-1)}),n}function v(n,r,t){for(n="/"===r.charAt(0)?d(g,r):"."===r.charAt(0)?d(n,r):h(n,r);s(n);){if(t=t||[],t.indexOf(n)<0){t.push(n);var e=a(p(n,"package.json"));if(e&&u(e.main)&&(n=d(n,e.main)||v(n,e.main,t)))continue}n=p(n,"index.js")}return n&&u(n.c)&&(n=v(n,n.c,t)),n}function h(n,r){return s(n)&&d(n,"node_modules/"+r)||n.p&&h(n.p,r)}n=n||{};var m=n.extensions||[".js",".json"],y=n.Module||function(n,r){this.id=n,this.parent=r},j=n.onInstall,x=n.fallback,k=n.requireMethods,b={},w=b.hasOwnProperty,g=new f({});return r},"object"==typeof exports&&(exports.makeInstaller=makeInstaller);