audit-resolve-core
Version:
Core modules for audit-resolve.json file and logic of its processing
67 lines (59 loc) • 1.65 kB
JavaScript
const auditFile = require('./auditFile')
const RESOLUTIONS = require('./resolutions/RESOLUTIONS')
const decision2resolution = require('./resolutions/decision2resolution')
/**
*
*
* @param {Array<{id: string, path:string}>} items
* @param { resolution: string, reason?:string, expiresAt:number }
* @returns void
*/
function saveResolution (items, { resolution, reason, expiresAt }) {
// default expiry rules
if (!expiresAt && resolution === RESOLUTIONS.IGNORE && auditFile.getRules().ignoreConfig.ignoreExpiresInDays) {
expiresAt = auditFile.getRules().ignoreConfig.ignoreExpiresInDays * 24 * 60 * 60 * 1000
}
items.map(item => auditFile.set(
{ id: item.id, path: item.path },
{ resolution, reason, expiresAt }
))
return auditFile.flush()
}
/**
*
* @param {string} identifierOrItem.id
* @param {string} identifierOrItem.path
* @returns { resolution: string, reason?:string, expiresAt:number }
*/
function get (identifierOrItem) {
return auditFile.get(identifierOrItem)
}
/**
*
* @param {string} identifierOrItem.id
* @param {string} identifierOrItem.path
* @returns {string} resolution
*/
function getResolution ({ id, path }) {
const data = auditFile.get({ id, path })
return decision2resolution(data)
}
/**
*
*
* @param {string} identifierOrItem.id
* @param {string} identifierOrItem.path
* @param {string} resolution.resolution
* @param [string] resolution.reason
* @param [number] resolution.expiresAt
* @returns
*/
function set (identifierOrItem, resolution) {
return auditFile.set(identifierOrItem, resolution)
}
module.exports = {
saveResolution,
getResolution,
get,
set
}