mirror of
				https://github.com/zulip/zulip-desktop.git
				synced 2025-11-04 05:53:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
const gulp = require('gulp');
 | 
						|
const electron = require('electron-connect').server.create({
 | 
						|
	verbose: true
 | 
						|
});
 | 
						|
const tape = require('gulp-tape');
 | 
						|
const tapColorize = require('tap-colorize');
 | 
						|
const ts = require('gulp-typescript');
 | 
						|
const tsProject = ts.createProject('tsconfig.json');
 | 
						|
 | 
						|
const glob = require('glob');
 | 
						|
const {execSync} = require('child_process');
 | 
						|
 | 
						|
const baseFilePattern = 'app/+(main|renderer)/**/*';
 | 
						|
const globOptions = {cwd: __dirname};
 | 
						|
const jsFiles = glob.sync(baseFilePattern + '.js', globOptions);
 | 
						|
const tsFiles = glob.sync(baseFilePattern + '.ts', globOptions);
 | 
						|
if (jsFiles.length !== tsFiles.length) {
 | 
						|
	const npx = process.platform === 'win32' ? 'npx.cmd' : 'npx';
 | 
						|
	console.log('Compiling typescript files...');
 | 
						|
	execSync(`${npx} tsc`);
 | 
						|
}
 | 
						|
 | 
						|
gulp.task('compile', () => tsProject.src()
 | 
						|
	.pipe(tsProject())
 | 
						|
	.js.pipe(gulp.dest('app')));
 | 
						|
 | 
						|
gulp.task('dev', () => {
 | 
						|
	// Start browser process
 | 
						|
	electron.start(['--electron-connect']);
 | 
						|
	// Restart browser process
 | 
						|
	gulp.watch('app/main/*.ts', gulp.series('compile', 'restart:browser'));
 | 
						|
	// Reload renderer process
 | 
						|
	gulp.watch('app/renderer/css/*.css', gulp.series('reload:renderer'));
 | 
						|
	gulp.watch('app/renderer/*.html', gulp.series('reload:renderer'));
 | 
						|
	gulp.watch('app/renderer/js/**/*.ts', gulp.series('compile', 'reload:renderer'));
 | 
						|
});
 | 
						|
 | 
						|
gulp.task('restart:browser', done => {
 | 
						|
	electron.stop();
 | 
						|
	electron.restart(['--electron-connect']);
 | 
						|
	done();
 | 
						|
});
 | 
						|
 | 
						|
gulp.task('reload:renderer', done => {
 | 
						|
	// Reload renderer process
 | 
						|
	electron.reload();
 | 
						|
	done();
 | 
						|
});
 | 
						|
 | 
						|
gulp.task('test-e2e', () => gulp.src('tests/*.js')
 | 
						|
	.pipe(tape({
 | 
						|
		reporter: tapColorize()
 | 
						|
	})));
 | 
						|
 | 
						|
gulp.task('default', gulp.parallel('dev', 'test-e2e'));
 |