MCPcopy
hub / github.com/meteor/meteor / getDevBundleForRelease

Function getDevBundleForRelease

tools/cli/dev-bundle.js:67–141  ·  view source on GitHub ↗
(release)

Source from the content-addressed store, hash-verified

65}
66
67function getDevBundleForRelease(release) {
68 var parts = release.split("@");
69 if (parts.length < 2) {
70 return null;
71 }
72
73 var track = parts[0];
74 var version = parts.slice(1).join("@");
75
76 var packageMetadataDir = find(
77 rootDir,
78 makeStatTest("isDirectory"),
79 ".meteor", "package-metadata"
80 );
81
82 if (! packageMetadataDir) {
83 return null;
84 }
85
86 var meteorToolDir = path.resolve(
87 packageMetadataDir,
88 "..", "packages", "meteor-tool"
89 );
90
91 var meteorToolStat = statOrNull(meteorToolDir, "isDirectory");
92 if (! meteorToolStat) {
93 return null;
94 }
95
96 var dbPath = path.join(
97 packageMetadataDir,
98 "v2.0.1",
99 "packages.data.db"
100 );
101
102 var dbStat = statOrNull(dbPath, "isFile");
103 if (! dbStat) {
104 return null;
105 }
106
107 var sqlite3 = require("sqlite3");
108 var db = new sqlite3.Database(dbPath);
109
110 return new Promise(function (resolve, reject) {
111 db.get(
112 "SELECT content FROM releaseVersions WHERE track=? AND version=?",
113 [track, version],
114 function (error, data) {
115 error ? reject(error) : resolve(data);
116 }
117 );
118
119 }).then(function (data) {
120 if (data) {
121 var tool = JSON.parse(data.content).tool;
122 var devBundleDir = path.join(
123 meteorToolDir,
124 tool.split("@").slice(1).join("@"),

Callers 1

getDevBundleDirFunction · 0.85

Calls 9

makeStatTestFunction · 0.85
getHostArchFunction · 0.85
findFunction · 0.70
statOrNullFunction · 0.70
parseMethod · 0.65
resolveFunction · 0.50
resolveMethod · 0.45
getMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…