first commit

This commit is contained in:
2024-05-23 15:34:45 +08:00
commit 57ef9aedd2
655 changed files with 96823 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
var camshaftReference = require('camshaft-reference').getVersion('latest');
var PARAM_TYPES = {
NODE: 'node',
NUMBER: 'number',
STRING: 'string',
ENUM: 'enum'
};
var SOURCE_ANALYSIS_TYPE = 'source';
var ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP = {};
ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP[SOURCE_ANALYSIS_TYPE] = [];
var ANALYSIS_TYPE_TO_PARAM_NAMES_MAP = {};
var analysesReference = camshaftReference.analyses;
if (!analysesReference) {
throw new Error('Error loading the reference for Camshaft analyses');
}
// Populate the analysis source and param names maps.
for (var analysisType in analysesReference) {
var analysisParams = analysesReference[analysisType].params;
for (var paramName in analysisParams) {
ANALYSIS_TYPE_TO_PARAM_NAMES_MAP[analysisType] = ANALYSIS_TYPE_TO_PARAM_NAMES_MAP[analysisType] || [];
ANALYSIS_TYPE_TO_PARAM_NAMES_MAP[analysisType].push(paramName);
ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP[analysisType] = ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP[analysisType] || [];
var paramType = analysisParams[paramName].type;
if (paramType === PARAM_TYPES.NODE) {
ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP[analysisType].push(paramName);
}
}
}
module.exports = {
getSourceNamesForAnalysisType: function (analysisType) {
var sourceNames = ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP[analysisType];
if (!sourceNames) {
throw new Error('source names for analysis of type ' + analysisType + " couldn't be found");
}
return sourceNames;
},
getParamNamesForAnalysisType: function (analysisType) {
var paramNames = ANALYSIS_TYPE_TO_PARAM_NAMES_MAP[analysisType];
if (!paramNames) {
throw new Error('param names for analysis of type ' + analysisType + " couldn't be found");
}
return paramNames;
}
};