42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const {createWrapper} = require('./wrapper');
 | 
						|
 | 
						|
let name = `@parcel/watcher-${process.platform}-${process.arch}`;
 | 
						|
if (process.platform === 'linux') {
 | 
						|
  const { MUSL, family } = require('detect-libc');
 | 
						|
  if (family === MUSL) {
 | 
						|
    name += '-musl';
 | 
						|
  } else {
 | 
						|
    name += '-glibc';
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
let binding;
 | 
						|
try {
 | 
						|
  binding = require(name);
 | 
						|
} catch (err) {
 | 
						|
  handleError(err);
 | 
						|
  try {
 | 
						|
    binding = require('./build/Release/watcher.node');
 | 
						|
  } catch (err) {
 | 
						|
    handleError(err);
 | 
						|
    try {
 | 
						|
      binding = require('./build/Debug/watcher.node');
 | 
						|
    } catch (err) {
 | 
						|
      handleError(err);
 | 
						|
      throw new Error(`No prebuild or local build of @parcel/watcher found. Tried ${name}. Please ensure it is installed (don't use --no-optional when installing with npm). Otherwise it is possible we don't support your platform yet. If this is the case, please report an issue to https://github.com/parcel-bundler/watcher.`);
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
function handleError(err) {
 | 
						|
  if (err?.code !== 'MODULE_NOT_FOUND') {
 | 
						|
    throw err;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
const wrapper = createWrapper(binding);
 | 
						|
exports.writeSnapshot = wrapper.writeSnapshot;
 | 
						|
exports.getEventsSince = wrapper.getEventsSince;
 | 
						|
exports.subscribe = wrapper.subscribe;
 | 
						|
exports.unsubscribe = wrapper.unsubscribe;
 |