snyk-poetry-lockfile-parser
Version:
Generate a dep graph given poetry.lock and pyproject.toml files
26 lines • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createManifestFileParser = void 0;
const toml = require("@iarna/toml");
const error_catalog_nodejs_public_1 = require("@snyk/error-catalog-nodejs-public");
const v1Parser_1 = require("./parsers/v1Parser");
const v2Parser_1 = require("./parsers/v2Parser");
const createManifestFileParser = (manifestFileContents, includeDevDependencies) => {
var _a;
let manifest;
try {
manifest = toml.parse(manifestFileContents);
}
catch (error) {
throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.UnparseableManifestError('The pyproject.toml file is not parsable.', { error });
}
if (manifest.project) {
return new v2Parser_1.V2Parser(manifest, includeDevDependencies);
}
if ((_a = manifest.tool) === null || _a === void 0 ? void 0 : _a.poetry) {
return new v1Parser_1.V1Parser(manifest, includeDevDependencies);
}
throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.UnparseableManifestError('The pyproject.toml is not a valid poetry file.');
};
exports.createManifestFileParser = createManifestFileParser;
//# sourceMappingURL=utils.js.map