Comparing version 0.5.2 to 0.5.3
@@ -46,3 +46,3 @@ makeInstaller = function (options) { | ||
// module tree. | ||
var root = new File("/"); | ||
var root = new File("/", new File("global")); | ||
var rootRequire = makeRequire(root); | ||
@@ -146,8 +146,3 @@ | ||
// .exports property when/if the file is evaluated. | ||
file.m = new Module( | ||
// If this file was created with `name`, join it with `parent.m.id` | ||
// to generate a module identifier. | ||
(parent ? parent.m.id.replace(/\/*$/, "/") : "") + name, | ||
parent && parent.m | ||
); | ||
file.m = new Module(name, parent && parent.m); | ||
} | ||
@@ -234,6 +229,15 @@ | ||
Object.keys(contents).forEach(function (key) { | ||
var child = getOwn(file.c, key); | ||
if (! child) { | ||
child = file.c[key] = new File(key, file); | ||
child.o = options; | ||
if (key === "..") { | ||
child = file.p; | ||
} else { | ||
var child = getOwn(file.c, key); | ||
if (! child) { | ||
child = file.c[key] = new File( | ||
file.m.id.replace(/\/*$/, "/") + key, | ||
file | ||
); | ||
child.o = options; | ||
} | ||
} | ||
@@ -240,0 +244,0 @@ |
@@ -1,1 +0,1 @@ | ||
makeInstaller=function(n){function r(n,r){return t(n)&&(l(E,n,r),o(x)&&x(g)),g}function e(n,r){return b.call(n,r)&&n[r]}function t(n){return n&&"object"==typeof n}function o(n){return"function"==typeof n}function i(n){return"string"==typeof n}function u(n){function r(r){var e=v(n,r);if(e)return a(e);var t=new Error("Cannot find module '"+r+"'");if(o(w))return w(r,n.m.id,t);throw t}return r.resolve=function(r){var e=v(n,r);if(e)return e.m.id;throw new Error("Cannot find module '"+r+"'")},r.ready=function(r){return f(v(n,r))},k&&Object.keys(k).forEach(function(n){o(k[n])&&(r[n]=k[n].bind(r))}),r}function c(n,r){var e=this;e.p=r=r||null,e.m=new y((r?r.m.id.replace(/\/*$/,"/"):"")+n,r&&r.m)}function f(n){return n&&(n.ready||(n.ready=!0,n.ready=i(n.c)?f(v(n,n.c)):o(n.c)&&n.c.d.every(function(r,e){return f(v(n,r))?(delete n.c.d[e],!0):void 0})))}function a(n){var r=n&&n.c,e=n.m;return b.call(e,"exports")||r(n.r=n.r||u(n),e.exports={},e,n.m.id,n.p.m.id),e.exports}function s(n){return n&&t(n.c)}function l(n,r,u){if(Array.isArray(r)){var f=[];r.forEach(function(n){i(n)?f.push(n):o(n)&&(r=n)}),o(r)?r.d=f:r=null}else o(r)?r.d=r.d||[]:i(r)||t(r)||(r=null);r&&(n.c=n.c||(t(r)?{}:r),t(r)&&s(n)&&Object.keys(r).forEach(function(t){var o=e(n.c,t);o||(o=n.c[t]=new c(t,n),o.o=u),l(o,r[t],u)}))}function d(n,r,t){for(;n&&!s(n);)n=n.p;if(!n||!r||"."===r)return n;if(".."===r)return n.p;var o=e(n.c,r);if(t&&(!o||s(o)))for(var i=0;i<t.length;++i){var u=e(n.c,r+t[i]);if(u)return u}return o}function p(n,r){var e=r.split("/"),t=n.o&&n.o.extensions||m;return e.every(function(r,o){return n=o<e.length-1?d(n,r):d(n,r,t)}),n}function v(n,r,e){for(n="/"===r.charAt(0)?p(E,r):"."===r.charAt(0)?p(n,r):h(n,r);s(n);){if(e=e||[],e.indexOf(n)<0){e.push(n);var t=d(n,"package.json"),o=t&&a(t).main;if(i(o)&&(n=p(n,o)||v(n,o,e)))continue}n=d(n,"index.js")}return n&&i(n.c)&&(n=v(n,n.c,e)),n}function h(n,r){if(o(j)&&(r=j(r,n.m.id)),i(r)){for(var e;n&&!e;n=n.p)e=s(n)&&p(n,"node_modules/"+r);return e}}n=n||{};var m=n.extensions||[".js",".json"],y=n.Module||function(n,r){this.id=n,this.parent=r},x=n.onInstall,j=n.override,w=n.fallback,k=n.requireMethods,b={}.hasOwnProperty,E=new c("/"),g=u(E);return r},"object"==typeof exports&&(exports.makeInstaller=makeInstaller); | ||
makeInstaller=function(n){function r(n,r){return t(n)&&(s(g,n,r),o(w)&&w(E)),E}function e(n,r){return k.call(n,r)&&n[r]}function t(n){return n&&"object"==typeof n}function o(n){return"function"==typeof n}function i(n){return"string"==typeof n}function u(n){function r(r){var e=v(n,r);if(e)return a(e);var t=new Error("Cannot find module '"+r+"'");if(o(j))return j(r,n.m.id,t);throw t}return r.resolve=function(r){var e=v(n,r);if(e)return e.m.id;throw new Error("Cannot find module '"+r+"'")},r.ready=function(r){return f(v(n,r))},b&&Object.keys(b).forEach(function(n){o(b[n])&&(r[n]=b[n].bind(r))}),r}function c(n,r){var e=this;e.p=r=r||null,e.m=new y(n,r&&r.m)}function f(n){return n&&(n.ready||(n.ready=!0,n.ready=i(n.c)?f(v(n,n.c)):o(n.c)&&n.c.d.every(function(r,e){return f(v(n,r))?(delete n.c.d[e],!0):void 0})))}function a(n){var r=n&&n.c,e=n.m;return k.call(e,"exports")||r(n.r=n.r||u(n),e.exports={},e,n.m.id,n.p.m.id),e.exports}function l(n){return n&&t(n.c)}function s(n,r,u){if(Array.isArray(r)){var f=[];r.forEach(function(n){i(n)?f.push(n):o(n)&&(r=n)}),o(r)?r.d=f:r=null}else o(r)?r.d=r.d||[]:i(r)||t(r)||(r=null);r&&(n.c=n.c||(t(r)?{}:r),t(r)&&l(n)&&Object.keys(r).forEach(function(t){if(".."===t)o=n.p;else{var o=e(n.c,t);o||(o=n.c[t]=new c(n.m.id.replace(/\/*$/,"/")+t,n),o.o=u)}s(o,r[t],u)}))}function d(n,r,t){for(;n&&!l(n);)n=n.p;if(!n||!r||"."===r)return n;if(".."===r)return n.p;var o=e(n.c,r);if(t&&(!o||l(o)))for(var i=0;i<t.length;++i){var u=e(n.c,r+t[i]);if(u)return u}return o}function p(n,r){var e=r.split("/"),t=n.o&&n.o.extensions||m;return e.every(function(r,o){return n=o<e.length-1?d(n,r):d(n,r,t)}),n}function v(n,r,e){for(n="/"===r.charAt(0)?p(g,r):"."===r.charAt(0)?p(n,r):h(n,r);l(n);){if(e=e||[],e.indexOf(n)<0){e.push(n);var t=d(n,"package.json"),o=t&&a(t).main;if(i(o)&&(n=p(n,o)||v(n,o,e)))continue}n=d(n,"index.js")}return n&&i(n.c)&&(n=v(n,n.c,e)),n}function h(n,r){if(o(x)&&(r=x(r,n.m.id)),i(r)){for(var e;n&&!e;n=n.p)e=l(n)&&p(n,"node_modules/"+r);return e}}n=n||{};var m=n.extensions||[".js",".json"],y=n.Module||function(n,r){this.id=n,this.parent=r},w=n.onInstall,x=n.override,j=n.fallback,b=n.requireMethods,k={}.hasOwnProperty,g=new c("/",new c("global")),E=u(g);return r},"object"==typeof exports&&(exports.makeInstaller=makeInstaller); |
@@ -18,3 +18,3 @@ { | ||
], | ||
"version": "0.5.2", | ||
"version": "0.5.3", | ||
"license": "MIT", | ||
@@ -21,0 +21,0 @@ "homepage": "http://github.com/benjamn/install", |
424324
1150