Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
} else if (data == null) {
data = task.message;
}
if (data != null) {
data = stripAnsi(
data
.trim()
.split('\n')
.filter(Boolean)
.pop(),
);
const out = indentString(`${figures.arrowRight} ${data}`, level, ' ');
output.push(
// $FlowFixMe
` ${chalk.gray(cliTruncate(out, process.stdout.columns - 3))}`,
);
}
}
if (
(task.pending || task.error != null || !task.collapse) &&
task.subtasks != null &&
task.subtasks.length > 0
) {
output = output.concat(renderTasks(task.subtasks, spinners, level + 1));
}
}
return output.join('\n');
};
defaultActions.separator(),
defaultActions.copyLink(),
defaultActions.separator(),
options.showInspectElement && defaultActions.inspect(),
defaultActions.separator(),
];
// Filter out leading/trailing separators
// FIXME: https://github.com/electron/electron/issues/5869
menuTemplate = removeUnusedMenuItems(menuTemplate);
for (const menuItem of menuTemplate) {
// Replace placeholders in menu item labels
if (typeof menuItem.label === 'string' && menuItem.label.includes('{selection}')) {
const selectionString = typeof props.selectionText === 'string' ? props.selectionText.trim() : '';
menuItem.label = menuItem.label.replace('{selection}', cliTruncate(selectionString, 25));
}
}
if (menuTemplate.length > 0) {
const menu = (electron.remote ? electron.remote.Menu : electron.Menu).buildFromTemplate(menuTemplate);
/*
When `electron.remote`` is not available this runs in the browser process.
We can safely use `win`` in this case as it refers to the window the
context-menu should open in.
When this is being called from a webView, we can't use win as this
would refere to the webView which is not allowed to render a popup menu.
*/
menu.popup(electron.remote ? electron.remote.getCurrentWindow() : win);
}
});
data = task.skipped;
}
} else if (data === undefined) {
data = task.message;
}
if (data !== undefined) {
data = stripAnsi(
data
.trim()
.split('\n')
.filter(utils.notNull)[0],
);
const out = indentString(`${figures.arrowRight} ${data}`, level, { indent: ' ' });
mutableOutput.push(` ${chalk.gray(cliTruncate(out, (process.stdout.columns as number) - 3))}`);
}
}
if (
(task.pending || task.error !== undefined || !task.collapse) &&
task.subtasks !== undefined &&
task.subtasks.length > 0
) {
mutableOutput = mutableOutput.concat(renderTasks(task.subtasks, spinners, level + 1));
}
});
if (String(textWrap).startsWith('truncate')) {
let position;
if (textWrap === 'truncate' || textWrap === 'truncate-end') {
position = 'end';
}
if (textWrap === 'truncate-middle') {
position = 'middle';
}
if (textWrap === 'truncate-start') {
position = 'start';
}
return cliTruncate(text, maxWidth, {position});
}
return text;
};
truncate(
message: string,
columns?: number,
options?: { position?: 'start' | 'middle' | 'end' },
): string {
return cliTruncate(message, columns || this.size().columns, options);
}
export function trunc(size, str) {
return truncate(str, size, { position: 'middle' });
}
.map(l => {
const lineWidth = Math.min(stringWidth(l), width)
const paddingRight = Math.max(width - lineWidth - 2, 0)
return `${chalk.grey(chars.vertical)}${chalk.reset(cliTruncate(l, width - 2))}${' '.repeat(
paddingRight,
)}${chalk.grey(chars.vertical)}`
})
.join('\n')
.map(l => {
const lineWidth = Math.min(stringWidth(l || ''), width)
const paddingRight = Math.max(width - lineWidth - 2, 0)
return `${chalk.grey(chars.vertical)}${chalk.reset(cliTruncate(l, width - 2))}${' '.repeat(
paddingRight,
)}${chalk.grey(chars.vertical)}`
})
.join('\n')