fix(core): update

This commit is contained in:
2019-05-28 23:27:55 +02:00
parent b8a7f02b97
commit cfcba1aa01
15 changed files with 2116 additions and 3060 deletions

View File

@ -1,63 +1,5 @@
import * as plugins from './smartbrowser.plugins'
import * as plugins from './smartbrowser.plugins';
/**
* the options interface of a Smartbrowser instance
*/
export interface ISmartbrowserOptions {
webroot: string
watchFiles: string[]
}
/**
* Type of status that a bsInstance can have
*/
export type bsStatus = 'idle' | 'starting' | 'running'
/**
* class smartbrowser controls a browser-sync instance for you
*/
export class Smartbrowser {
bsInstance = plugins.browserSync.create()
bsConfig: plugins.browserSync.Options = {
server: {}
}
bsStatus: bsStatus = 'idle'
bsStarted: Promise<void>
constructor (optionsArg: ISmartbrowserOptions) {
this.bsConfig.server.baseDir = optionsArg.webroot
this.bsConfig.files = optionsArg.watchFiles
}
/**
* starts the server and returns the browserSync instance in a resolved Promise
*/
async start (): Promise<plugins.browserSync.BrowserSyncInstance> {
let done = plugins.smartq.defer<plugins.browserSync.BrowserSyncInstance>()
if (this.bsStatus === 'idle') {
this.bsStatus = 'starting'
let localDone = plugins.smartq.defer<void>()
this.bsStarted = localDone.promise
this.bsInstance.init(this.bsConfig, () => {
this.bsStatus = 'running'
localDone.resolve()
done.resolve(this.bsInstance)
})
} else {
this.bsStarted.then(() => { done.resolve(this.bsInstance) })
}
return await done.promise
}
/**
* stops the smartbrowser instance
*/
async stop (): Promise<void> {
this.bsInstance.exit()
this.bsStatus = 'idle'
}
async reload (): Promise<void> {
this.bsInstance.reload()
}
}
export class SmartBrowser {
}

View File

@ -1,3 +1,3 @@
import 'typings-global'
export import browserSync = require('browser-sync')
export import smartq = require('smartq')
import 'typings-global';
export import browserSync = require('browser-sync');
export import smartq = require('smartq');