generator-code
Version:
Yeoman generator for Visual Studio Code extensions.
59 lines (50 loc) • 1.35 kB
JavaScript
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------*/
var nameRegex = /^[a-z0-9][a-z0-9\-]*$/i;
/**
* @param {string} publisher
*/
export function validatePublisher(publisher) {
if (!publisher) {
return "Missing publisher name";
}
if (!nameRegex.test(publisher)) {
return "Invalid publisher name";
}
return true;
}
/**
* @param {string} id
*/
export function validateExtensionId(id) {
if (!id) {
return "Missing extension identifier";
}
if (!nameRegex.test(id)) {
return "Invalid extension identifier";
}
return true;
}
/**
* @param {string | any[]} name
*/
export function validateNonEmpty(name) {
return name && name.length > 0;
}
const illegalRe = /[\/\?<>\\:\*\|"]/g;
const controlRe = /[\x00-\x1f\x80-\x9f]/g;
const reservedRe = /^\.+$/;
const windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
const windowsTrailingRe = /[\. ]+$/;
/**
* @param {string} input
*/
export function sanitizeFilename(input) {
return input
.replace(illegalRe, '')
.replace(controlRe, '')
.replace(reservedRe, '')
.replace(windowsReservedRe, '')
.replace(windowsTrailingRe, '');
};