commit e2b49354d31ebfced5a57c25ee50281724ad68fa
parent 27607c32f1938eb68a67db01c6771205e9f492e5
Author: finwo <finwo@pm.me>
Date: Tue, 27 Nov 2018 14:13:18 +0100
Major oops on the readme
Diffstat:
4 files changed, 68 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
@@ -1,8 +1,10 @@
-# rpc-duplex
+# lucene-filter
-[](https://nodei.co/npm/rpc-duplex/)
+> Data filter for lucene queries
-> Streamed RPC library for both Node.JS and the browser
+[](https://nodei.co/npm/lucene-filter/)
+
+<!-- # rpc-duplex
## Important notes
@@ -81,3 +83,4 @@ like [esmify][esmify] to ensure it works.
[browserify]: https://npmjs.com/package/browserify
[esmify]: https://npmjs.com/package/esmify
[msgpack-rpc]: https://github.com/msgpack-rpc/msgpack-rpc
+-->
diff --git a/src/has-module.js b/src/has-module.js
@@ -0,0 +1,15 @@
+module.exports = function hasModule( name ) {
+ if ( require.resolve ) {
+ try {
+ return !!require.resolve(name);
+ } catch(e) {
+ return false;
+ }
+ }
+ try {
+ require(name);
+ return true;
+ } catch(e) {
+ return false;
+ }
+};
diff --git a/src/has-module.test.js b/src/has-module.test.js
@@ -0,0 +1,41 @@
+import expect from 'expect';
+
+// Setup environment
+if ( 'object' !== typeof process ) process = {};
+if (!process.env) process.env = {};
+process.env.TEST = true;
+
+// Load extends
+expect.extend(require('jest-isa'));
+
+// Load our module
+let hasModule = require('./has-module');
+
+test('Ensure hasModule is a function', async () => {
+ expect(hasModule).toBeDefined(); // Basics
+ expect(hasModule).isA(Function);
+});
+
+test('Verify some packages', async () => {
+ expect(hasModule('./has-module')).toBe(true);
+ expect(hasModule('./index')).toBe(true);
+ expect(hasModule('jest-isa')).toBe(true);
+ expect(hasModule('non-existent-module')).toBe(false);
+ expect(hasModule('pizza-courier')).toBe(false);
+});
+
+// TODO: fix this one
+// test('Verify some packages without require.resolve', async () => {
+//
+// // Reload module
+// process.env.NO_RESOLVE = true;
+// console.log(process.env);
+// delete require.cache[require.resolve('./has-module')];
+// hasModule = require('./has-module');
+//
+// expect(hasModule('./has-module')).toBe(true);
+// expect(hasModule('./index')).toBe(true);
+// expect(hasModule('jest-isa')).toBe(true);
+// expect(hasModule('non-existent-module')).toBe(false);
+// expect(hasModule('pizza-courier')).toBe(false);
+// });
diff --git a/src/index.js b/src/index.js
@@ -1,4 +1,9 @@
-const parser = require('lucene');
+const hasModule = require('./has-module'),
+ parser = (function() {
+ if (hasModule('lucene')) return require('lucene');
+ if (hasModule('lucene-query-parser')) return require('lucene-query-parser');
+ throw new Error("Neither 'lucene' nor 'lucene-query-parser' are installed");
+ })();
const lucene = module.exports = function compiler(query) {