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 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; } get enableTelemetry(): boolean { return false; }

View file

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

View file

@ -20,9 +20,9 @@ export class ProductService implements IProductService {
get urlProtocol(): string { return product.urlProtocol; } 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; } get enableTelemetry(): boolean { return product.enableTelemetry; }