Skip to content

Require extension that allows for caching/precompiling

License

Notifications You must be signed in to change notification settings

avajs/require-precompiled

Repository files navigation

require-precompiled

Modifies require() so you can load precompiled module sources.

Install

$ npm install --save require-precompiled

Usage

const installPrecompiler = require('require-precompiled');
const cache = require('my-cache-implementation');

installPrecompiler(filename => {
	if (cache.hasEntryFor(filename)) {
		return cache.getPrecompiledCode(filename);
	}
	// fall through to underlying extension chain
	return null;
});

// any module required from this point on will be checked against the cache
const foo = require('some-module');

API

function installPrecompiler(
	loadSource: (filename: string) => string | null,
	ext = '.js',
): void

The loadSource() function should return a source string when a precompiled source is available. Return null to fall back to Node.js' default behavior.

By default the precompiler is installed for .js files. You can specify alternative extensions by providing the second argument:

installPrecompiler(filename => {
	// ...
}, '.cjs')

License

MIT © James Talmage