@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
24 lines • 1.07 kB
JavaScript
;
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");
const built_in_1 = require("../../dataflow/environments/built-in");
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) => (v === environment_1.BuiltInEnvironment || v === built_in_1.EmptyBuiltInMemory) ? undefined : v
});
}
function fingerprint(id, envFingerprint, onlyForSideEffects) {
return `${id}-${envFingerprint}-${onlyForSideEffects ? '0' : '1'}`;
}
//# sourceMappingURL=fingerprint.js.map