mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-13 21:24:58 +08:00
149b389508
* Switch to using Typescript instead of Babel * Switch all es6 / jsx file extensions to ts / tsx * Convert Utils to a TS module from module.exports style module * Move everything from module.exports to typescript exports * Define .d.ts files for mailspring-exports and component kit… Yes it seems this is the best option :( * Load up on those @types * Synthesize TS types from PropTypes for standard components * Add types to Model classes and move constructor constants to instance vars * 9800 => 7700 TS errors * 7700 => 5600 TS errors * 5600 => 5330 TS errors * 5330 => 4866 TS errors * 4866 => 4426 TS errors * 4426 => 2411 TS errors * 2411 > 1598 TS errors * 1598 > 769 TS errors * 769 > 129 TS errors * 129 > 22 TS errors * Fix runtime errors * More runtime error fixes * Remove support for custom .es6 file extension * Remove a few odd remaining references to Nylas * Don’t ship Typescript support in the compiled app for now * Fix issues in compiled app - module resolution in TS is case sensitive? * README updates * Fix a few more TS errors * Make “No Signature” option clickable + selectable * Remove flicker when saving file and reloading keymaps * Fix mail rule item height in preferences * Fix missing spacing in thread sharing popover * Fix scrollbar ticks being nested incorrectly * Add Japanese as a manually reviewed language * Prevent the thread list from “sticking” * Re-use Sheet when switching root tabs, prevent sidebar from resetting * Ensure specs run * Update package configuration to avoid shpping types * Turn eslint back on - we will opt-in to the TS rules one by one
63 lines
2.1 KiB
JavaScript
63 lines
2.1 KiB
JavaScript
/* eslint global-require: 0 */
|
|
/* eslint import/no-dynamic-require: 0 */
|
|
const path = require('path');
|
|
|
|
module.exports = grunt => {
|
|
if (!grunt.option('platform')) {
|
|
grunt.option('platform', process.platform);
|
|
}
|
|
|
|
/**
|
|
* The main appDir is that of the root nylas-mail-all repo. This Gruntfile
|
|
* is designed to be run from the npm-build-client task whose repo root is
|
|
* the main nylas-mail-all package.
|
|
*/
|
|
const appDir = path.resolve(path.join('app'));
|
|
const buildDir = path.join(appDir, 'build');
|
|
const tasksDir = path.join(buildDir, 'tasks');
|
|
const taskHelpers = require(path.join(tasksDir, 'task-helpers'))(grunt);
|
|
|
|
// This allows all subsequent paths to the relative to the root of the repo
|
|
grunt.config.init({
|
|
taskHelpers: taskHelpers,
|
|
rootDir: path.resolve('./'),
|
|
buildDir: buildDir,
|
|
appDir: appDir,
|
|
classDocsOutputDir: path.join(buildDir, 'docs_src', 'classes'),
|
|
outputDir: path.join(appDir, 'dist'),
|
|
appJSON: grunt.file.readJSON(path.join(appDir, 'package.json')),
|
|
'source:es6': [
|
|
'internal_packages/**/*.ts',
|
|
'internal_packages/**/*.tsx',
|
|
'internal_packages/**/*.jsx',
|
|
'src/**/*.ts',
|
|
'src/**/*.tsx',
|
|
'src/**/*.jsx',
|
|
|
|
'!src/**/node_modules/**/*.ts',
|
|
'!src/**/node_modules/**/*.tsx',
|
|
'!src/**/node_modules/**/*.jsx',
|
|
'!internal_packages/**/node_modules/**/*.ts',
|
|
'!internal_packages/**/node_modules/**/*.tsx',
|
|
'!internal_packages/**/node_modules/**/*.jsx',
|
|
],
|
|
});
|
|
|
|
grunt.loadTasks(tasksDir);
|
|
grunt.file.setBase(appDir);
|
|
|
|
grunt.registerTask('docs', ['docs-build', 'docs-render']);
|
|
|
|
grunt.registerTask('lint', ['eslint', 'lesslint', 'csslint']);
|
|
|
|
if (grunt.option('platform') === 'win32') {
|
|
grunt.registerTask('build-client', [
|
|
'package',
|
|
// The Windows electron-winstaller task must be run outside of grunt
|
|
]);
|
|
} else if (grunt.option('platform') === 'darwin') {
|
|
grunt.registerTask('build-client', ['package', 'create-mac-zip', 'create-mac-dmg']);
|
|
} else if (grunt.option('platform') === 'linux') {
|
|
grunt.registerTask('build-client', ['package', 'create-deb-installer', 'create-rpm-installer']);
|
|
}
|
|
};
|