Template Upload
This commit is contained in:
86
node_modules/buble/register.js
generated
vendored
Normal file
86
node_modules/buble/register.js
generated
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
var fs = require( 'fs' );
|
||||
var path = require( 'path' );
|
||||
var crypto = require( 'crypto' );
|
||||
var homedir = require( 'os-homedir' );
|
||||
var buble = require( './' );
|
||||
|
||||
var original = require.extensions[ '.js' ];
|
||||
var nodeModulesPattern = path.sep === '/' ? /\/node_modules\// : /\\node_modules\\/;
|
||||
|
||||
var nodeVersion = /(?:0\.)?\d+/.exec( process.version )[0];
|
||||
var versions = [ '0.10', '0.12', '4', '5', '6' ];
|
||||
|
||||
if ( !~versions.indexOf( nodeVersion ) ) {
|
||||
if ( +nodeVersion > 6 ) {
|
||||
nodeVersion = 6;
|
||||
} else {
|
||||
throw new Error( 'Unsupported version (' + nodeVersion + '). Please raise an issue at https://gitlab.com/Rich-Harris/buble/issues' );
|
||||
}
|
||||
}
|
||||
|
||||
var options = {
|
||||
target: {
|
||||
node: nodeVersion
|
||||
}
|
||||
};
|
||||
|
||||
function mkdirp ( dir ) {
|
||||
var parent = path.dirname( dir );
|
||||
if ( dir === parent ) return;
|
||||
mkdirp( parent );
|
||||
|
||||
try {
|
||||
fs.mkdirSync( dir );
|
||||
} catch ( err ) {
|
||||
if ( err.code !== 'EEXIST' ) throw err;
|
||||
}
|
||||
}
|
||||
|
||||
var home = homedir();
|
||||
if ( home ) {
|
||||
var cachedir = path.join( home, '.buble-cache', nodeVersion );
|
||||
mkdirp( cachedir );
|
||||
fs.writeFileSync( path.join( home, '.buble-cache/README.txt' ), 'These files enable a faster startup when using buble/register. You can safely delete this folder at any time. See https://buble.surge.sh/guide/ for more information.' );
|
||||
}
|
||||
|
||||
require.extensions[ '.js' ] = function ( m, filename ) {
|
||||
if ( nodeModulesPattern.test( filename ) ) return original( m, filename );
|
||||
|
||||
var source = fs.readFileSync( filename, 'utf-8' );
|
||||
var hash = crypto.createHash( 'sha256' );
|
||||
hash.update( source );
|
||||
var key = hash.digest( 'hex' ) + '.json';
|
||||
var cachepath = path.join( cachedir, key );
|
||||
|
||||
var compiled;
|
||||
|
||||
if ( cachedir ) {
|
||||
try {
|
||||
compiled = JSON.parse( fs.readFileSync( cachepath, 'utf-8' ) );
|
||||
} catch ( err ) {
|
||||
// noop
|
||||
}
|
||||
}
|
||||
|
||||
if ( !compiled ) {
|
||||
try {
|
||||
compiled = buble.transform( source, options );
|
||||
|
||||
if ( cachedir ) {
|
||||
fs.writeFileSync( cachepath, JSON.stringify( compiled ) );
|
||||
}
|
||||
} catch ( err ) {
|
||||
if ( err.snippet ) {
|
||||
console.log( 'Error compiling ' + filename + ':\n---' );
|
||||
console.log( err.snippet );
|
||||
console.log( err.message );
|
||||
console.log( '' )
|
||||
process.exit( 1 );
|
||||
}
|
||||
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
m._compile( '"use strict";\n' + compiled.code, filename );
|
||||
};
|
Reference in New Issue
Block a user