snyk-go-parser
Version:
Generate a dep tree given a collection of manifests
42 lines • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseGoModVersionDirective = exports.parseGoModRelativeManifestReplaces = exports.parseGoModGraph = exports.parseGoVendorConfig = exports.parseGoPkgConfig = void 0;
exports.buildGoPkgDepTree = buildGoPkgDepTree;
exports.buildGoVendorDepTree = buildGoVendorDepTree;
const parsers_1 = require("./parsers");
Object.defineProperty(exports, "parseGoPkgConfig", { enumerable: true, get: function () { return parsers_1.parseGoPkgConfig; } });
Object.defineProperty(exports, "parseGoVendorConfig", { enumerable: true, get: function () { return parsers_1.parseGoVendorConfig; } });
Object.defineProperty(exports, "parseGoModGraph", { enumerable: true, get: function () { return parsers_1.parseGoModGraph; } });
Object.defineProperty(exports, "parseGoModRelativeManifestReplaces", { enumerable: true, get: function () { return parsers_1.parseGoModRelativeManifestReplaces; } });
Object.defineProperty(exports, "parseGoModVersionDirective", { enumerable: true, get: function () { return parsers_1.parseGoModVersionDirective; } });
const types_1 = require("./types");
// TODO(kyegupov): make all build* functions sync
// TODO(kyegupov): pin down the types for "options"
// Build dep tree from the manifest/lock files only.
// This does not scan the source code for imports, so it's not accurate;
// in particular, it cannot build the proper dependency graph (only a flat list).
async function buildGoPkgDepTree(manifestFileContents, lockFileContents, options) {
return buildGoDepTree(await (0, parsers_1.parseGoPkgConfig)(manifestFileContents, lockFileContents));
}
// Build dep tree from the manifest/lock files only.
// This does not scan the source code for imports, so it's not accurate;
// in particular, it cannot build the proper dependency graph (only a flat list).
async function buildGoVendorDepTree(manifestFileContents) {
return buildGoDepTree(await (0, parsers_1.parseGoVendorConfig)(manifestFileContents));
}
function buildGoDepTree(goProjectConfig) {
const depTree = {
name: goProjectConfig.packageName || 'root',
version: types_1.DEFAULT_INITIAL_VERSION,
dependencies: {},
};
const dependencies = depTree.dependencies;
for (const dep of Object.keys(goProjectConfig.lockedVersions)) {
dependencies[dep] = {
name: dep,
version: goProjectConfig.lockedVersions[dep].version,
};
}
return depTree;
}
//# sourceMappingURL=index.js.map