mirror of
https://github.com/AikidoSec/safe-chain.git
synced 2026-05-26 20:20:49 +00:00
Type check safe-chain package
This commit is contained in:
parent
d5dc801c00
commit
c88b1a624f
60 changed files with 1179 additions and 33 deletions
|
|
@ -2,6 +2,29 @@ import { resolvePackageVersion } from "../../../api/npmApi.js";
|
|||
import { parsePackagesFromInstallArgs } from "../parsing/parsePackagesFromInstallArgs.js";
|
||||
import { hasDryRunArg } from "../utils/npmCommands.js";
|
||||
|
||||
/**
|
||||
* @typedef {Object} ScanResult
|
||||
* @property {string} name
|
||||
* @property {string} version
|
||||
* @property {string} type
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef {Object} ScannerOptions
|
||||
* @property {boolean} [ignoreDryRun]
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef CommandArgumentScanner
|
||||
* @property {(args: string[]) => Promise<ScanResult[]>} scan
|
||||
* @property {(args: string[]) => boolean} shouldScan
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {ScannerOptions} [opts]
|
||||
*
|
||||
* @returns {CommandArgumentScanner}
|
||||
*/
|
||||
export function commandArgumentScanner(opts) {
|
||||
const ignoreDryRun = opts?.ignoreDryRun ?? false;
|
||||
|
||||
|
|
@ -10,14 +33,28 @@ export function commandArgumentScanner(opts) {
|
|||
shouldScan: (args) => shouldScanDependencies(args, ignoreDryRun),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string[]} args
|
||||
* @returns {Promise<ScanResult[]>}
|
||||
*/
|
||||
function scanDependencies(args) {
|
||||
return checkChangesFromArgs(args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string[]} args
|
||||
* @param {boolean} ignoreDryRun
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function shouldScanDependencies(args, ignoreDryRun) {
|
||||
return ignoreDryRun || !hasDryRunArg(args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string[]} args
|
||||
* @returns {Promise<ScanResult[]>}
|
||||
*/
|
||||
export async function checkChangesFromArgs(args) {
|
||||
const changes = [];
|
||||
const packageUpdates = parsePackagesFromInstallArgs(args);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
/**
|
||||
* @returns {import("./commandArgumentScanner.js").CommandArgumentScanner}
|
||||
*/
|
||||
export function nullScanner() {
|
||||
return {
|
||||
scan: () => [],
|
||||
scan: async () => [],
|
||||
shouldScan: () => false,
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue