<commit_before>import * as path from 'path';
import * as browserSync from 'browser-sync';
import * as fallback from 'connect-history-api-fallback';
import * as chokidar from 'chokidar';
import * as chalk from 'chalk';
import { Observable } from 'rxjs';
import { clean } from './clean';
import { generateDev } from './generate_html';
import { copyPublic } from './copy';
import { Build } from './build';
import { compileSass } from './css';

export class Server {
  private options: any;
  private builder: Build;

  constructor() {
    this.options = {
      port: 4200,
      server: path.resolve(__dirname, '../../dist'),
      files: ['./dist/**/*'],
      middleware: [
        fallback({
          index: '/index.html'
        })
      ]
    };

    this.builder = new Build();
  }

  startServer() {
    browserSync(this.options);
  }

  get watch(): Observable<any> {
    return new Observable(observer => {
      const sassSrc = path.resolve(__dirname, '../../src/styles/app.sass');
      const cssDest = path.resolve(__dirname, '../../dist/css/app.css');

      const watcher = chokidar.watch(path.resolve(__dirname, '../../src'), {
        persistent: true
      });

      const publicWatcher = chokidar.watch(path.resolve(__dirname, '../../public'), {<commit_msg>chore: remove uneccessary browsersync notifications<commit_after>import * as path from 'path';
import * as browserSync from 'browser-sync';
import * as fallback from 'connect-history-api-fallback';
import * as chokidar from 'chokidar';
import * as chalk from 'chalk';
import { Observable } from 'rxjs';
import { clean } from './clean';
import { generateDev } from './generate_html';
import { copyPublic } from './copy';
import { Build } from './build';
import { compileSass } from './css';

export class Server {
  private options: any;
  private builder: Build;

  constructor() {
    this.options = {
      port: 4200,
      server: path.resolve(__dirname, '../../dist'),
      files: ['./dist/**/*'],
      notify: false,
      middleware: [
        fallback({
          index: '/index.html'
        })
      ]
    };

    this.builder = new Build();
  }

  startServer() {
    browserSync(this.options);
  }

  get watch(): Observable<any> {
    return new Observable(observer => {
      const sassSrc = path.resolve(__dirname, '../../src/styles/app.sass');
      const cssDest = path.resolve(__dirname, '../../dist/css/app.css');

      const watcher = chokidar.watch(path.resolve(__dirname, '../../src'), {
        persistent: true
      });

      const publicWatcher = chokidar.watch(path.resolve(__dirname, '../../public'), {
{'fraction_non_alphanumeric': 0.16749712533537753, 'fraction_numerical': 0.0030663089306247606, 'mean_word_length': 2.777134587554269, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5178290', 'n_tokens_mistral': 780, 'n_tokens_neox': 769, 'n_words': 206}