Skip to content

Commit

Permalink
Moving the linting fixes from init to new PR
Browse files Browse the repository at this point in the history
  • Loading branch information
RandyLevensalor committed Jun 28, 2024
1 parent 1735035 commit 6909037
Show file tree
Hide file tree
Showing 3 changed files with 164 additions and 0 deletions.
40 changes: 40 additions & 0 deletions lint_function/camara-language-avoid-telco.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// CAMARA Project - support function for Spectral linter
// 31.01.2024 - initial version

const replacements = [
{ original: 'UE', recommended: 'device' },
{ original: 'MSISDN', recommended: 'phone number' },
{ original: 'mobile network', recommended: 'network' }
];

export default async function (input) {
const errors = [];
const suggestions = [];

// Iterate over properties of the input object
for (const path in input) {
const value = input[path];

// Check if the value is a string
if (typeof value === 'string') {
for (const replacement of replacements) {
const original = replacement.original;
const recommended = replacement.recommended;

// Use a regular expression to match 'original' as a standalone word
const regex = new RegExp(`\\b${original}\\b`, 'g');

// Check if 'original' exists in the value
if (regex.test(value)) {
errors.push(replacement);
suggestions.push(` Telco-specific terminology found in input: Consider replacing '${original}' with '${recommended}'.`);
}
}
}
}

// Check if any word from 'replacements' is in the suggestions
if (errors.length > 0) {
console.log(`Hint camara-language-avoid-telco ` + suggestions.join(', '));
}
};
98 changes: 98 additions & 0 deletions lint_function/camara-reserved-words.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
// CAMARA Project - support function for Spectral linter
// 31.01.2024 - initial version

const reservedWords = [
'abstract',
'apiclient',
'apiexception',
'apiresponse',
'assert',
'boolean',
'break',
'byte',
'case',
'catch',
'char',
'class',
'configuration',
'const',
'continue',
'do',
'double',
'else',
'extends',
'file',
'final',
'finally',
'float',
'for',
'goto',
'if',
'implements',
'import',
'instanceof',
'int',
'interface',
'list',
'localdate',
'localreturntype',
'localtime',
'localvaraccept',
'localvaraccepts',
'localvarauthnames',
'localvarcollectionqueryparams',
'localvarcontenttype',
'localvarcontenttypes',
'localvarcookieparams',
'localvarformparams',
'localvarheaderparams',
'localvarpath',
'localvarpostbody',
'localvarqueryparams',
'long',
'native',
'new',
'null',
'object',
'offsetdatetime',
'package',
'private',
'protected',
'public',
'return',
'short',
'static',
'strictfp',
'stringutil',
'super',
'switch',
'synchronized',
'this',
'throw',
'throws',
'transient',
'try',
'void',
'volatile',
'while'
];
// Reserved word 'enum' and 'default' are removed from above reserved word array as they are common in openAPI keyword
export default async function lintReservedWords(input) {
// Iterate over properties of the input object
for (const path in input) {
if (typeof path === 'string') {

for (const word of reservedWords) {
const regex = new RegExp(`\\b${word}\\b`, 'g'); // Use a regular expression to match 'word' as a standalone word

if (regex.test(path)) {
const warningRuleName = 'camara-reserved-words';
const description = `Reserved words found in input: Consider avoiding the use of reserved word '${word}'`;
// const location = `${path}`;

console.log(`warning ${warningRuleName} ${description} ${path}`);
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// CAMARA Project - support function for Spectral linter
// 31.01.2024 - initial version

const sensitiveData = ['MSISDN','IMSI','phoneNumber'];

export default async function (input) {

// Iterate over properties of the input object
for (const path in input) {

if (typeof path === 'string') {
for (const word of sensitiveData ) {
const regex = new RegExp(`\\b${word}\\b`, 'g'); // Use a regular expression to match 'word' as a standalone word

if (regex.test(path)) {

const warningRuleName = 'camara-security-no-secrets-in-path-or-query-parameters';
const description = `sensitiveData Data found in path: Consider avoiding the use of sensitiveData data '${word}'`;
const location = `paths.${path}`;
console.log(`warning ${warningRuleName} ${description} ${location}`);

}
}
}
}
}

0 comments on commit 6909037

Please sign in to comment.