You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	Tools: Add eslint rule "@typescript-eslint/no-inferrable-types"
This commit is contained in:
		| @@ -159,6 +159,7 @@ module.exports = { | ||||
| 				// make everything public which is not great. New code however should specify member accessibility. | ||||
| 				'@typescript-eslint/explicit-member-accessibility': ['warn'], | ||||
| 				'@typescript-eslint/type-annotation-spacing': ['error', { 'before': false, 'after': true }], | ||||
| 				'@typescript-eslint/no-inferrable-types': ['error', { 'ignoreParameters': true, 'ignoreProperties': true }], | ||||
| 				'@typescript-eslint/comma-dangle': ['error', { | ||||
| 					'arrays': 'always-multiline', | ||||
| 					'objects': 'always-multiline', | ||||
|   | ||||
| @@ -20,7 +20,7 @@ const { space } = require('styled-system'); | ||||
|  | ||||
| const logger = Logger.create('PluginState'); | ||||
|  | ||||
| const maxWidth: number = 320; | ||||
| const maxWidth = 320; | ||||
|  | ||||
| const Root = styled.div` | ||||
| 	display: flex; | ||||
|   | ||||
| @@ -102,7 +102,7 @@ interface LastOnChangeEventInfo { | ||||
| let loadedCssFiles_: string[] = []; | ||||
| let loadedJsFiles_: string[] = []; | ||||
| let dispatchDidUpdateIID_: any = null; | ||||
| let changeId_: number = 1; | ||||
| let changeId_ = 1; | ||||
|  | ||||
| const TinyMCE = (props: NoteBodyEditorProps, ref: any) => { | ||||
| 	const [editor, setEditor] = useState(null); | ||||
|   | ||||
| @@ -178,7 +178,7 @@ export default class ReportService { | ||||
|  | ||||
| 			for (let i = 0; i < disabledItems.length; i++) { | ||||
| 				const row = disabledItems[i]; | ||||
| 				let msg: string = ''; | ||||
| 				let msg = ''; | ||||
| 				if (row.location === BaseItem.SYNC_ITEM_LOCATION_LOCAL) { | ||||
| 					msg = _('%s (%s) could not be uploaded: %s', row.item.title, row.item.id, row.syncInfo.sync_disabled_reason); | ||||
| 				} else { | ||||
|   | ||||
| @@ -15,7 +15,7 @@ interface AdvancedExpression { | ||||
|  | ||||
| function parseAdvancedExpression(advancedExpression: string): AdvancedExpression { | ||||
| 	let subExpressionIndex = -1; | ||||
| 	let subExpressions: string = ''; | ||||
| 	let subExpressions = ''; | ||||
| 	let currentSubExpressionKey = ''; | ||||
| 	const subContext: any = {}; | ||||
|  | ||||
|   | ||||
| @@ -100,7 +100,7 @@ export default class MenuUtils { | ||||
| 	} | ||||
|  | ||||
| 	public commandsToMenuItems(commandNames: string[], onClick: Function, locale: string): MenuItems { | ||||
| 		const key: string = `${this.keymapService.lastSaveTime}_${commandNames.join('_')}_${locale}`; | ||||
| 		const key = `${this.keymapService.lastSaveTime}_${commandNames.join('_')}_${locale}`; | ||||
| 		if (this.menuItemCache_[key]) return this.menuItemCache_[key]; | ||||
|  | ||||
| 		const output: MenuItems = {}; | ||||
|   | ||||
| @@ -61,7 +61,7 @@ export default async function populateDatabase(db: any, options: Options = null) | ||||
| 	const createdTagIds: string[] = []; | ||||
| 	const createdFolderDepths: Record<string, number> = {}; | ||||
| 	const folderDepthToId: Record<number, string[]> = {}; | ||||
| 	let rootFolderCount: number = 0; | ||||
| 	let rootFolderCount = 0; | ||||
|  | ||||
| 	for (let i = 0; i < options.folderCount; i++) { | ||||
| 		const folder: any = { | ||||
| @@ -72,7 +72,7 @@ export default async function populateDatabase(db: any, options: Options = null) | ||||
|  | ||||
| 		if (options.rootFolderCount && rootFolderCount >= options.rootFolderCount) isRoot = false; | ||||
|  | ||||
| 		let depth: number = 0; | ||||
| 		let depth = 0; | ||||
|  | ||||
| 		if (!isRoot) { | ||||
| 			let possibleFolderIds: string[] = []; | ||||
|   | ||||
| @@ -110,7 +110,7 @@ export default class InteropService_Importer_Md extends InteropService_Importer_ | ||||
| 			if (stat && !isDir) { | ||||
| 				const supportedFileExtension = this.metadata().fileExtensions; | ||||
| 				const resolvedPath = shim.fsDriver().resolve(pathWithExtension); | ||||
| 				let id: string = ''; | ||||
| 				let id = ''; | ||||
| 				// If the link looks like a note, then import it | ||||
| 				if (supportedFileExtension.indexOf(fileExtension(trimmedLink).toLowerCase()) >= 0) { | ||||
| 					// If the note hasn't been imported yet, do so now | ||||
|   | ||||
| @@ -188,7 +188,7 @@ describe('ShareService', function() { | ||||
| 		const recipientPpk = await generateKeyPair(encryptionService(), '222222'); | ||||
| 		expect(ppk.id).not.toBe(recipientPpk.id); | ||||
|  | ||||
| 		let uploadedEmail: string = ''; | ||||
| 		let uploadedEmail = ''; | ||||
| 		let uploadedMasterKey: MasterKeyEntity = null; | ||||
|  | ||||
| 		const service = testShareFolderService({ | ||||
|   | ||||
| @@ -141,7 +141,7 @@ async function testMigrationE2EE(migrationVersion: number, maxSyncVersion: numbe | ||||
| 	await expectNotThrow(async () => await checkTestData(testData)); | ||||
| } | ||||
|  | ||||
| let previousSyncTargetName: string = ''; | ||||
| let previousSyncTargetName = ''; | ||||
|  | ||||
| describe('MigrationHandler', function() { | ||||
|  | ||||
|   | ||||
| @@ -271,7 +271,7 @@ async function commandVersion() { | ||||
| } | ||||
|  | ||||
| async function main() { | ||||
| 	const scriptName: string = 'plugin-repo-cli'; | ||||
| 	const scriptName = 'plugin-repo-cli'; | ||||
|  | ||||
| 	const commands: Record<string, Function> = { | ||||
| 		build: commandBuild, | ||||
| @@ -279,8 +279,8 @@ async function main() { | ||||
| 		updateRelease: commandUpdateRelease, | ||||
| 	}; | ||||
|  | ||||
| 	let selectedCommand: string = ''; | ||||
| 	let selectedCommandArgs: string = ''; | ||||
| 	let selectedCommand = ''; | ||||
| 	let selectedCommandArgs = ''; | ||||
|  | ||||
| 	function setSelectedCommand(name: string, args: any) { | ||||
| 		selectedCommand = name; | ||||
|   | ||||
| @@ -291,7 +291,7 @@ export default { | ||||
| 		// set KaTeX as the renderer for markdown-it-simplemath | ||||
| 		const katexInline = function(latex: string) { | ||||
| 			katexOptions.displayMode = false; | ||||
| 			let outputHtml: string = ''; | ||||
| 			let outputHtml = ''; | ||||
| 			try { | ||||
| 				outputHtml = renderToStringWithCache(latex, katexOptions); | ||||
| 			} catch (error) { | ||||
| @@ -306,7 +306,7 @@ export default { | ||||
|  | ||||
| 		const katexBlock = function(latex: string) { | ||||
| 			katexOptions.displayMode = true; | ||||
| 			let outputHtml: string = ''; | ||||
| 			let outputHtml = ''; | ||||
| 			try { | ||||
| 				outputHtml = renderToStringWithCache(latex, katexOptions); | ||||
| 			} catch (error) { | ||||
|   | ||||
| @@ -11,7 +11,7 @@ interface PackageJson { | ||||
|  | ||||
| const packageJson: PackageJson = require(`${__dirname}/packageInfo.js`); | ||||
|  | ||||
| let runningInDocker_: boolean = false; | ||||
| let runningInDocker_ = false; | ||||
|  | ||||
| export function runningInDocker(): boolean { | ||||
| 	return runningInDocker_; | ||||
|   | ||||
| @@ -22,7 +22,7 @@ export default async function(config: StorageDriverConfig | number, db: DbConnec | ||||
| 		...options, | ||||
| 	}; | ||||
|  | ||||
| 	let storageId: number = 0; | ||||
| 	let storageId = 0; | ||||
|  | ||||
| 	if (typeof config === 'number') { | ||||
| 		storageId = config; | ||||
|   | ||||
| @@ -24,7 +24,7 @@ interface ResetPasswordFields { | ||||
|  | ||||
| const subRoutes: Record<string, RouteHandler> = { | ||||
| 	forgot: async (_path: SubPath, ctx: AppContext) => { | ||||
| 		let confirmationMessage: string = ''; | ||||
| 		let confirmationMessage = ''; | ||||
|  | ||||
| 		if (ctx.method === 'POST') { | ||||
| 			const fields = await bodyFields<ForgotPasswordFields>(ctx.req); | ||||
| @@ -46,7 +46,7 @@ const subRoutes: Record<string, RouteHandler> = { | ||||
| 	}, | ||||
|  | ||||
| 	reset: async (_path: SubPath, ctx: AppContext) => { | ||||
| 		let successMessage: string = ''; | ||||
| 		let successMessage = ''; | ||||
| 		let error: Error = null; | ||||
| 		const token = ctx.query.token as string; | ||||
|  | ||||
|   | ||||
| @@ -105,7 +105,7 @@ export default class UserDeletionService extends BaseService { | ||||
| 		} | ||||
|  | ||||
| 		let error: any = null; | ||||
| 		let success: boolean = true; | ||||
| 		let success = true; | ||||
|  | ||||
| 		try { | ||||
| 			await this.models.userDeletion().start(deletion.id); | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import sqlts from '@rmp135/sql-ts'; | ||||
|  | ||||
| require('source-map-support').install(); | ||||
|  | ||||
| const dbFilePath: string = `${__dirname}/../../src/services/database/types.ts`; | ||||
| const dbFilePath = `${__dirname}/../../src/services/database/types.ts`; | ||||
|  | ||||
| const fileReplaceWithinMarker = '// AUTO-GENERATED-TYPES'; | ||||
|  | ||||
| @@ -74,7 +74,7 @@ function insertContentIntoFile(filePath: string, markerOpen: string, markerClose | ||||
| 	if (!fs.existsSync(filePath)) throw new Error(`File not found: ${filePath}`); | ||||
| 	let content: string = fs.readFileSync(filePath, 'utf-8'); | ||||
| 	// [^]* matches any character including new lines | ||||
| 	const regex: RegExp = new RegExp(`${markerOpen}[^]*?${markerClose}`); | ||||
| 	const regex = new RegExp(`${markerOpen}[^]*?${markerClose}`); | ||||
| 	if (!content.match(regex)) throw new Error(`Could not find markers: ${markerOpen}`); | ||||
| 	content = content.replace(regex, `${markerOpen}\n${contentToInsert}\n${markerClose}`); | ||||
| 	fs.writeFileSync(filePath, content); | ||||
|   | ||||
| @@ -18,7 +18,7 @@ const readProp = (line: string): string[] => { | ||||
| export const stripOffFrontMatter = (md: string): MarkdownAndFrontMatter => { | ||||
| 	if (md.indexOf('---') !== 0) return { doc: md }; | ||||
|  | ||||
| 	let state: string = 'start'; | ||||
| 	let state = 'start'; | ||||
| 	const lines = md.split('\n'); | ||||
| 	const docLines: string[] = []; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user