Marking almost all product fields as readonly

This commit is contained in:
Matt Bierner 2019-07-03 18:34:04 -07:00
parent e6b698b4fd
commit 0964952bcd
3 changed files with 83 additions and 83 deletions

View file

@ -25,9 +25,9 @@ export class ProductService implements IProductService {
get urlProtocol(): string { return ''; }
get extensionAllowedProposedApi(): string[] { return this.productConfiguration ? this.productConfiguration.extensionAllowedProposedApi : []; }
get extensionAllowedProposedApi(): readonly string[] { return this.productConfiguration ? this.productConfiguration.extensionAllowedProposedApi : []; }
get uiExtensions(): string[] | undefined { return this.productConfiguration ? this.productConfiguration.uiExtensions : undefined; }
get uiExtensions(): readonly string[] | undefined { return this.productConfiguration ? this.productConfiguration.uiExtensions : undefined; }
get enableTelemetry(): boolean { return false; }

View file

@ -10,103 +10,103 @@ export const IProductService = createDecorator<IProductService>('productService'
export interface IProductService {
_serviceBrand: any;
version: string;
commit?: string;
readonly version: string;
readonly commit?: string;
nameLong: string;
urlProtocol: string;
extensionAllowedProposedApi: string[];
uiExtensions?: string[];
readonly nameLong: string;
readonly urlProtocol: string;
readonly extensionAllowedProposedApi: readonly string[];
readonly uiExtensions?: readonly string[];
enableTelemetry: boolean;
extensionsGallery?: {
serviceUrl: string;
itemUrl: string;
controlUrl: string;
recommendationsUrl: string;
readonly enableTelemetry: boolean;
readonly extensionsGallery?: {
readonly serviceUrl: string;
readonly itemUrl: string;
readonly controlUrl: string;
readonly recommendationsUrl: string;
};
sendASmile?: {
reportIssueUrl: string;
requestFeatureUrl: string;
readonly sendASmile?: {
readonly reportIssueUrl: string;
readonly requestFeatureUrl: string;
};
}
export interface IProductConfiguration {
nameShort: string;
nameLong: string;
applicationName: string;
win32AppId: string;
win32x64AppId: string;
win32UserAppId: string;
win32x64UserAppId: string;
win32AppUserModelId: string;
win32MutexName: string;
darwinBundleIdentifier: string;
urlProtocol: string;
readonly applicationName: string;
readonly win32AppId: string;
readonly win32x64AppId: string;
readonly win32UserAppId: string;
readonly win32x64UserAppId: string;
readonly win32AppUserModelId: string;
readonly win32MutexName: string;
readonly darwinBundleIdentifier: string;
readonly urlProtocol: string;
dataFolderName: string;
downloadUrl: string;
updateUrl?: string;
quality?: string;
target?: string;
commit?: string;
settingsSearchBuildId?: number;
settingsSearchUrl?: string;
experimentsUrl?: string;
date: string;
extensionsGallery?: {
serviceUrl: string;
itemUrl: string;
controlUrl: string;
recommendationsUrl: string;
readonly downloadUrl: string;
readonly updateUrl?: string;
readonly quality?: string;
readonly target?: string;
readonly commit?: string;
readonly settingsSearchBuildId?: number;
readonly settingsSearchUrl?: string;
readonly experimentsUrl?: string;
readonly date: string;
readonly extensionsGallery?: {
readonly serviceUrl: string;
readonly itemUrl: string;
readonly controlUrl: string;
readonly recommendationsUrl: string;
};
extensionTips: { [id: string]: string; };
extensionImportantTips: { [id: string]: { name: string; pattern: string; }; };
exeBasedExtensionTips: { [id: string]: { friendlyName: string, windowsPath?: string, recommendations: string[] }; };
extensionKeywords: { [extension: string]: string[]; };
extensionAllowedBadgeProviders: string[];
extensionAllowedProposedApi: string[];
keymapExtensionTips: string[];
crashReporter: {
companyName: string;
productName: string;
readonly exeBasedExtensionTips: { [id: string]: { friendlyName: string, windowsPath?: string, recommendations: readonly string[] }; };
readonly extensionKeywords: { [extension: string]: readonly string[]; };
readonly extensionAllowedBadgeProviders: readonly string[];
readonly extensionAllowedProposedApi: readonly string[];
readonly keymapExtensionTips: readonly string[];
readonly crashReporter: {
readonly companyName: string;
readonly productName: string;
};
welcomePage: string;
enableTelemetry: boolean;
aiConfig: {
asimovKey: string;
readonly welcomePage: string;
readonly enableTelemetry: boolean;
readonly aiConfig: {
readonly asimovKey: string;
};
sendASmile: {
reportIssueUrl: string,
requestFeatureUrl: string
readonly sendASmile: {
readonly reportIssueUrl: string,
readonly requestFeatureUrl: string
};
documentationUrl: string;
releaseNotesUrl: string;
keyboardShortcutsUrlMac: string;
keyboardShortcutsUrlLinux: string;
keyboardShortcutsUrlWin: string;
introductoryVideosUrl: string;
tipsAndTricksUrl: string;
newsletterSignupUrl: string;
twitterUrl: string;
requestFeatureUrl: string;
reportIssueUrl: string;
licenseUrl: string;
privacyStatementUrl: string;
telemetryOptOutUrl: string;
npsSurveyUrl: string;
surveys: ISurveyData[];
checksums: { [path: string]: string; };
checksumFailMoreInfoUrl: string;
hockeyApp: {
'win32-ia32': string;
'win32-x64': string;
'linux-x64': string;
'darwin': string;
readonly documentationUrl: string;
readonly releaseNotesUrl: string;
readonly keyboardShortcutsUrlMac: string;
readonly keyboardShortcutsUrlLinux: string;
readonly keyboardShortcutsUrlWin: string;
readonly introductoryVideosUrl: string;
readonly tipsAndTricksUrl: string;
readonly newsletterSignupUrl: string;
readonly twitterUrl: string;
readonly requestFeatureUrl: string;
readonly reportIssueUrl: string;
readonly licenseUrl: string;
readonly privacyStatementUrl: string;
readonly telemetryOptOutUrl: string;
readonly npsSurveyUrl: string;
readonly surveys: readonly ISurveyData[];
readonly checksums: { [path: string]: string; };
readonly checksumFailMoreInfoUrl: string;
readonly hockeyApp: {
readonly 'win32-ia32': string;
readonly 'win32-x64': string;
readonly 'linux-x64': string;
readonly 'darwin': string;
};
logUploaderUrl: string;
portable?: string;
uiExtensions?: string[];
readonly logUploaderUrl: string;
readonly portable?: string;
readonly uiExtensions?: readonly string[];
}
export interface ISurveyData {

View file

@ -20,9 +20,9 @@ export class ProductService implements IProductService {
get urlProtocol(): string { return product.urlProtocol; }
get extensionAllowedProposedApi(): string[] { return product.extensionAllowedProposedApi; }
get extensionAllowedProposedApi(): readonly string[] { return product.extensionAllowedProposedApi; }
get uiExtensions(): string[] | undefined { return product.uiExtensions; }
get uiExtensions(): readonly string[] | undefined { return product.uiExtensions; }
get enableTelemetry(): boolean { return product.enableTelemetry; }