guy
Version:
npm dependencies checker
92 lines (80 loc) • 4.83 kB
JavaScript
(function() {
// 'use strict'
// ############################################################################################################
// H = require './_helpers'
// debug = console.log
// { FSWatcher } = require 'chokidar'
// { rpr } = H
// FS = require 'fs'
// #-----------------------------------------------------------------------------------------------------------
// path_exists = ( path ) ->
// H.types.validate.nonempty_text path
// try FS.statSync path catch error
// return false if error.code is 'ENOENT'
// throw error
// return true
// #===========================================================================================================
// class @Watcher
// #---------------------------------------------------------------------------------------------------------
// constructor: ( cfg = null ) ->
// ### TAINT use InterType ###
// defaults =
// recursive: true
// persistent: true
// awaitWriteFinish: { stabilityThreshold: 100, }
// cfg = { defaults..., cfg..., }
// @_watcher = new FSWatcher cfg
// @_attach_handlers()
// return undefined
// #---------------------------------------------------------------------------------------------------------
// stop: -> await @_watcher.close()
// #---------------------------------------------------------------------------------------------------------
// _attach_handlers: ->
// #.......................................................................................................
// @_watcher.on 'add', ( ( path, stats ) => @on_add path ) if @on_add?
// @_watcher.on 'change', ( ( path, stats ) => @on_change path ) if @on_change?
// @_watcher.on 'unlink', ( ( path ) => @on_unlink path ) if @on_unlink?
// @_watcher.on 'addDir', ( ( path ) => @on_add_folder path ) if @on_add_folder?
// @_watcher.on 'unlinkDir', ( ( path ) => @on_unlink_folder path ) if @on_unlink_folder?
// #.......................................................................................................
// @_watcher.on 'ready', ( => @on_ready() ) if @on_ready?
// @_watcher.on 'raw', ( ( key, path, d ) => @on_raw key, path, d ) if @on_raw?
// @_watcher.on 'error', ( ( error ) => @on_error error ) if @on_error?
// #.......................................................................................................
// if @on_all?
// @_watcher.on 'all', ( key, path ) =>
// key = 'add_folder' if key is 'addDir'
// key = 'unlink_folder' if key is 'unlinkDir'
// @on_all key, path
// #.......................................................................................................
// return null
// #---------------------------------------------------------------------------------------------------------
// on_error: ( path ) -> throw error
// ###
// watcher.on 'error', ( error ) ->
// debug '^guy.watch@2^', 'error', error.message
// for k, v of error
// key = k + ': '
// debug ( CND.reverse key.padEnd 25 ), ( CND.yellow rpr v )
// if error.message.startsWith "Couldn't initialize inotify"
// reject error.message
// defer -> process.exit 1
// debug CND.reverse "error #{rpr error.message} occurred for path: #{CND.yellow rpr path}"
// ###
// #---------------------------------------------------------------------------------------------------------
// add_path: ( path, P... ) ->
// @_watcher.add path, P...
// return null
// #===========================================================================================================
// class @Reporting_watcher extends @Watcher
// on_add: ( path ) -> debug '^guy.watch@3^ add ', { path, }
// on_change: ( path ) -> debug '^guy.watch@4^ change ', { path, }
// on_unlink: ( path ) -> debug '^guy.watch@5^ unlink ', { path, }
// on_add_folder: ( path ) -> debug '^guy.watch@6^ add_folder ', { path, }
// on_unlink_folder: ( path ) -> debug '^guy.watch@7^ unlink_folder ', { path, }
// on_ready: -> debug '^guy.watch@8^ ready '
// # on_all: ( key, path ) -> debug '^guy.watch@3^ all ', { key, path, }
// # on_raw: ( P... ) -> debug '^guy.watch@9^ raw ', P
// # on_error: ( error ) -> debug '^guy.watch@10^ error ', rpr error
}).call(this);
//# sourceMappingURL=watch.js.map