Skip to content

Commit

Permalink
Merge branch 'master' into rishabhhasown
Browse files Browse the repository at this point in the history
  • Loading branch information
derberg authored Oct 9, 2024
2 parents 33f8dc3 + 074e520 commit 0159756
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 32 deletions.
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**
4 changes: 2 additions & 2 deletions apps/generator/lib/generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -562,8 +562,8 @@ class Generator {

try {
installedPkg = getTemplateDetails(this.templateName, PACKAGE_JSON_FILENAME);
pkgPath = installedPkg && installedPkg.pkgPath;
packageVersion = installedPkg && installedPkg.version;
pkgPath = installedPkg?.pkgPath;
packageVersion = installedPkg?.version;
log.debug(logMessage.templateSource(pkgPath));
if (packageVersion) log.debug(logMessage.templateVersion(packageVersion));

Expand Down
4 changes: 2 additions & 2 deletions apps/generator/lib/logMessages.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const TEMPLATE_INSTALL_FLAG_MSG = 'because you passed --install flag';

const TEMPLATE_INSTALL_DISK_MSG = 'because the template cannot be found on disk';

const NODE_MODULES_INSTALL ='Remember that your local template must have its own node_modules installed first, \"npm install\" is not triggered by the generator.';
const NODE_MODULES_INSTALL = 'Remember that your local template must have its own node_modules installed first, "npm install" is not triggered by the generator.';

const NPM_INSTALL_TRIGGER = 'Installation of template located on disk technically means symlink creation betweed node_modules of the generator and template sources. Your local template must have its own node_modules, "npm install" is not triggered.';

Expand All @@ -19,7 +19,7 @@ function templateNotFound(templateName) {
}

function packageNotAvailable(packageDetails) {
if (packageDetails && packageDetails.pkgPath) {
if (packageDetails?.pkgPath) {
return `Unable to resolve template location at ${packageDetails.pkgPath}. Package is not available locally.`;
}

Expand Down
56 changes: 28 additions & 28 deletions apps/nunjucks-filters/src/customFilters.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ function getPayloadExamples(msg) {
}

const payload = msg.payload();
if (payload && payload.examples()) {
if (payload?.examples()) {
return payload.examples().map(example => ({ example }));
}
}
Expand Down Expand Up @@ -90,7 +90,7 @@ function getHeadersExamples(msg) {
}

const headers = msg.headers();
if (headers && headers.examples()) {
if (headers?.examples()) {
return headers.examples().map(example => ({ example }));
}
}
Expand Down Expand Up @@ -120,7 +120,7 @@ filter.oneLine = oneLine;

/**
* Generate JSDoc from message properties of the header and the payload
*
*
* @example
* docline(
* Schema {
Expand All @@ -134,52 +134,52 @@ filter.oneLine = oneLine;
* my-app-header,
* options.message.headers
* )
*
*
* Returned value will be -> * @param {integer} options.message.headers.my-app-header
*
*
* @field {object} - Property object
* @fieldName {string} - Name of documented property
* @scopePropName {string} - Name of param for JSDocs
* @returns {string} JSDoc compatible entry
*/
function docline(field, fieldName, scopePropName) {
/* eslint-disable sonarjs/cognitive-complexity */
const buildLine = (f, fName, pName) => {
const type = f.type() ? f.type() : 'string';
const description = f.description() ? ` - ${f.description().replace(/\r?\n|\r/g, '')}` : '';
let def = f.default();
const getType = (f) => f.type() || 'string';
const getDescription = (f) => f.description() ? ` - ${f.description().replace(/\r?\n|\r/g, '')}` : '';
const getDefault = (f, type) => (f.default() && type === 'string') ? `'${f.default()}'` : f.default();
const getPName = (pName) => pName ? `${pName}.` : '';

if (def && type === 'string') def = `'${def}'`;
const buildLineCore = (type, def, pName, fName) => {
return `* @param {${type}} ${pName}${fName}${def !== undefined ? `=${def}` : ''}`;
};

let line;
if (def !== undefined) {
line = ` * @param {${type}} [${pName ? `${pName}.` : ''}${fName}=${def}]`;
} else {
line = ` * @param {${type}} ${pName ? `${pName}.` : ''}${fName}`;
}
const buildLine = (f, fName, pName) => {
const type = getType(f);
const def = getDefault(f, type);
const line = buildLineCore(type, def, getPName(pName), fName);
return line + (type === 'object' ? '' : getDescription(f));
};

if (type === 'object') {
let lines = `${line}\n`;
let first = true;
for (const propName in f.properties()) {
lines = `${lines}${first ? '' : '\n'}${buildLine(f.properties()[propName], propName, `${pName ? `${pName}.` : ''}${fName}`)}`;
first = false;
}
return lines;
}
const buildObjectLines = (f, fName, pName) => {
const properties = f.properties();
const mainLine = buildLine(f, fName, pName);

return `${line}${description}`;
return `${mainLine }\n${ Object.keys(properties).map((propName) =>
buildLine(properties[propName], propName, `${getPName(pName)}${fName}`)
).join('\n')}`;
};

return buildLine(field, fieldName, scopePropName);
return getType(field) === 'object'
? buildObjectLines(field, fieldName, scopePropName)
: buildLine(field, fieldName, scopePropName);
}
filter.docline = docline;

/**
* Helper function to replace server variables in the url with actual values
* @url {string} - url string
* @serverserverVariables {Object} - Variables model map
* @returns {string}
* @returns {string}
*/
function replaceServerVariablesWithValues(url, serverVariables) {
const getVariablesNamesFromUrl = (inputUrl) => {
Expand Down

0 comments on commit 0159756

Please sign in to comment.