UNPKG

eslint-plugin-sonarjs

Version:
58 lines (57 loc) • 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.denoManifestResolver = exports.parseInlineNPMImport = void 0; const index_js_1 = require("../index.js"); const helpers_js_1 = require("./helpers.js"); const parse_js_1 = require("../parse.js"); const parsed_dependency_files_js_1 = require("../parsed-dependency-files.js"); const npm_import_js_1 = require("./npm-import.js"); var npm_import_js_2 = require("./npm-import.js"); Object.defineProperty(exports, "parseInlineNPMImport", { enumerable: true, get: function () { return npm_import_js_2.parseInlineNPMImport; } }); exports.denoManifestResolver = { resolve(dir, topDir, fileSystem) { // if both `deno.json` and `deno.jsonc` are present, prefer `deno.json` and ignore `deno.jsonc` const denoJson = (0, helpers_js_1.getManifestFileInDir)(index_js_1.DENO_JSON, dir, topDir, fileSystem); const denoJsonc = (0, helpers_js_1.getManifestFileInDir)(index_js_1.DENO_JSONC, dir, topDir, fileSystem); const denoModuleType = 'module'; const effectiveDenoJson = denoJson ?? denoJsonc; if (effectiveDenoJson) { const manifest = (0, parsed_dependency_files_js_1.parseDenoManifest)(effectiveDenoJson) ?? {}; return [ { type: 'deno', manifest, dependencies: buildDependencies(manifest), moduleType: denoModuleType, }, ]; } return []; }, }; function buildDependencies(manifest) { const dependencies = new Map(); if (manifest.imports && typeof manifest.imports === 'object') { for (const [alias, target] of Object.entries(manifest.imports)) { if (typeof target !== 'string') { continue; } const parsedSpecifier = (0, npm_import_js_1.parseInlineNPMImport)(target); if (parsedSpecifier) { (0, parse_js_1.addDependency)(dependencies, { dependency: parsedSpecifier.packageName, isGlob: false, version: parsedSpecifier.version, alias, }); } } } if (Array.isArray(manifest.workspace)) { (0, parse_js_1.addDependenciesArray)(dependencies, manifest.workspace); } else if (manifest.workspace?.members) { (0, parse_js_1.addDependenciesArray)(dependencies, manifest.workspace.members); } return dependencies; }