aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch
blob: ed2473897626d19c4c904a8a89f735db7872f0bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Bugfix for --no-registry in nodejs-v0.12.2

diff -u -r node-v0.12.2_def/deps/npm/lib/cache/caching-client.js node-v0.12.2/deps/npm/lib/cache/caching-client.js
--- node-v0.12.2_def/deps/npm/lib/cache/caching-client.js	2015-04-01 01:13:01.000000000 +0300
+++ node-v0.12.2/deps/npm/lib/cache/caching-client.js	2015-05-18 00:47:10.738599686 +0300
@@ -67,6 +67,22 @@
   var cacheBase = cacheFile(npm.config.get("cache"))(uri)
   var cachePath = path.join(cacheBase, ".cache.json")
 
+  if (parsed.host === "noregistry") (function() {
+    var stat = null
+    var file = npm.config.get("cache") + parsed.pathname + "/.cache.json"
+    try {
+      stat = fs.statSync(cachePath)
+    } catch (ex) {}
+    if (!stat) try {
+      stat = fs.statSync(file) 
+      cachePath = file
+    } catch (ex) {
+      stat = "Registry not defined and registry files not found: \"" +
+             cachePath + "\", \"" + file + "\"."
+      throw new Error(stat)
+    }
+  })()
+
   // If the GET is part of a write operation (PUT or DELETE), then
   // skip past the cache entirely, but still save the results.
   if (uri.match(/\?write=true$/)) {
@@ -83,12 +99,17 @@
         }
         catch (ex) {
           data = null
+          if (parsed.host === "noregistry")
+            throw new Error("File \"" + cachePath+"\"" + " corrupted.")
         }
 
         params.stat = stat
         params.data = data
 
-        get_.call(client, uri, cachePath, params, cb)
+        if (parsed.host === "noregistry")
+          cb(null, data, JSON.stringify(data), { statusCode : 304 })
+        else
+          get_.call(client, uri, cachePath, params, cb)
       })
     }
     else {
diff -u -r node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js node-v0.12.2/deps/npm/lib/utils/map-to-registry.js
--- node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js	2015-04-01 01:13:01.000000000 +0300
+++ node-v0.12.2/deps/npm/lib/utils/map-to-registry.js	2015-05-18 01:15:10.030569613 +0300
@@ -45,6 +45,8 @@
 
   log.silly("mapToRegistry", "registry", registry)
 
+  if (!registry) return cb(null, "http://noregistry/" + name, {})
+
   var auth = config.getCredentialsByURI(registry)
 
   // normalize registry URL so resolution doesn't drop a piece of registry URL