Skip to content

alumna/liven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5b982dd · Dec 6, 2023

History

27 Commits
Dec 6, 2023
Dec 6, 2023
Dec 6, 2023
Dec 6, 2023
Dec 6, 2023
Jul 22, 2020
Jul 22, 2020
Jul 22, 2020
Jun 5, 2019
Dec 6, 2023
Dec 6, 2023
Jul 22, 2020
Jun 5, 2019
Dec 6, 2023

Repository files navigation

liven
Optimized and lightweight live reload library on 64kB, without dependencies on runtime version

Features

  • Runtime version with no dependencies
  • Extremely lightweight - 64kB!
  • Alternative to browser-sync and livereload
  • Excellent option to be used inside other libraries
  • 100% tested and working on Linux, Mac and Windows!

This module is delivered as an ES Module:

Install

$ npm install @alumna/liven

Usage

import liven from '@alumna/liven';

const instance = await liven({

	// (OPTIONAL)
	// The current project's directory '.' will be used if `dir` isn't passed
	dir: './public_html/',

	// (OPTIONAL)
	// Port to use on the http server
	// If it isn't available, the first available port between 3000 and 3100 will be used 
	port: 3000,

	// (OPTIONAL)
	// Run as a SPA, mapping non-existent URL's to [base]index.html
	// Default to "false"
	spa: false,

	// (OPTIONAL)
	// Function (as string) to be runned on the browser when receiving a socket signal
	// Defaults to: 'function( data ){ location.reload( true ) };', that simply reloads the page
	// `data` is an object: { path, isDir, isFile, isNew, add_or_update }
	script: 'function( data ){ location.reload( true ) };',

	// (OPTIONAL)
	// Mask paths to a different directory when requested
	alias: {
		'images'    : 'optimized'
	},
	
	// (OPTIONAL)
	// Function to be called on each event, before the refresh signal
	// The function must return "true" to allow the refresh, of "false" to don't allow
	on_event: ({ path, isDir, isFile, isNew, add_or_update }) => {...},
	
});

// You can programatically force a refresh as well
instance.refresh({ path, isDir, isFile, add_or_update, isNew })


// Create a memory-file on the server
// It overwrites the file on the same path, if it exists, on future requests
// -
// "content" can be a string or a buffer
// -
// Path must be a fullpath or initiate without a slash ('/') when relative
// Will generate a refresh unless "on_event" function returns "false" for the path
// -
// It will be instantly available in all modes, including:
// SPA, index.html served on dir URL's, updating 404 files, etc
await instance.memory( path, content )

// Clear a memory-file on the server
// -
// If a file exists on the same path on disk,
// its original content will be served again on future requests
// -
// As on 'memory' feature:
// Path must be a fullpath or initiate without a slash ('/') when relative
// Will generate a refresh unless "on_event" function returns "false" for the path
// -
// The effect will be instantly available in all modes
await instance.clear( path )


// And get the port used
console.log( instance.port ) // 3000

About

Optimized and lightweight live reload library on 64kB

Resources

License

Stars

Watchers

Forks

Packages

No packages published