UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

31 lines 1.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.envFingerprint = envFingerprint; exports.fingerprint = fingerprint; const object_hash_1 = __importDefault(require("object-hash")); const environment_1 = require("../../dataflow/environments/environment"); /** * Calculate a fingerprint for the given R environment information * @see {@link fingerprint} */ function envFingerprint(env) { return (0, object_hash_1.default)(env, { algorithm: 'md5', excludeKeys: key => key === 'id' || key === 'value', respectFunctionProperties: false, respectFunctionNames: false, ignoreUnknown: true, replacer: (v) => (0, environment_1.isDefaultBuiltInEnvironment)(v) ? undefined : v }); } /** * Calculate a fingerprint for the given node id and environment fingerprint * @see {@link envFingerprint} */ function fingerprint(id, envFingerprint, onlyForSideEffects) { return `${id}-${envFingerprint}-${onlyForSideEffects ? '0' : '1'}`; } //# sourceMappingURL=fingerprint.js.map