lucene-filter.js

Data filter for lucene queries
git clone git://git.finwo.net/lib/lucene-filter.js
Log | Files | Refs | README | LICENSE

commit 0b1a1ac0383036b189097a967fa6acabcdf12582
Author: finwo <finwo@pm.me>
Date:   Tue, 27 Nov 2018 13:00:26 +0100

Project init

Diffstat:
A.babelrc | 3+++
A.gitignore | 4++++
A.gitlab-ci.yml | 28++++++++++++++++++++++++++++
ACODE_OF_CONDUCT.md | 5+++++
AREADME.md | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ajest.config.js | 181+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 304 insertions(+), 0 deletions(-)

diff --git a/.babelrc b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets" : ['env'] +} diff --git a/.gitignore b/.gitignore @@ -0,0 +1,4 @@ +/.idea/ +/node_modules/ +/coverage/ +/.gtm/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml @@ -0,0 +1,28 @@ +image: node:10-alpine + +cache: + paths: + - node_modules/ + +stages: + - test + - deploy + +tests: + stage: test + retry: 1 + script: + - node -v + - npm -v + - npm rebuild + - npm install + - npm test + +publish to npmjs.com: + stage: deploy + retry: 2 + only: + - master + script: + - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + - if [ $(npm view $(node -p "require('./package.json').name") version) != $(node -p "require('./package.json').version") ]; then npm publish ; fi diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md @@ -0,0 +1,5 @@ +# Contributor Code of Conduct + +This project adheres to No Code of Conduct. We are all adults. We accept anyone's contributions. Nothing else matters. + +For more information please visit the [No Code of Conduct](https://github.com/domgetter/NCoC) homepage. diff --git a/README.md b/README.md @@ -0,0 +1,83 @@ +# rpc-duplex + +[![NPM](https://nodei.co/npm/rpc-duplex.png)](https://nodei.co/npm/rpc-duplex/) + +> Streamed RPC library for both Node.JS and the browser + +## Important notes + +This implementation **DOES NOT** follow the [msgpack-rpc][msgpack-rpc] specification. It intends to provide a stable +stand-alone solution for remote-procedure-calling over websockets in both Node.JS and the browser. + +The protocol is **NOT** versioned (yet), updates may break your application until it is. No major version will be +released until the protocol is versioned & updates should not break applications. + +## Install + +```bash +npm install --save rpc-duplex +``` + +## Usage + +### Node.JS + +```js +const rpc = require('rpc-duplex'); + +// Creating a provider +const provider = rpc({}, { + capitalize( str ) { + return str.toUpperCase(); + }, + throwError( arg ) { + throw new Error(arg); + } +}); + +// Creating a consumer +const consumer = rpc(); + +// Connect consumer & provider +// Normally this goes through a network of sorts +provider.pipe(consumer).pipe(provider); + +// Use provided functions +const remote = rpc.remote(consumer); + +// Go async so you can copy-paste this code +(async () => { + + // Wait for functions to appear + while(remote.capitalize) await new Promise(r=>setTimeout(r,100)); + + // Call a remote function + let result = await remote.capitalize('foobar'); + console.log(result); // FOOBAR + + // Errors are re-thrown + try { + await remote.throwError('hello world'); + } catch(e) { + console.log(e.message); // hello world + } + +})(); +``` + +### Browser + +Browser usage is possible through the use of [browserify][browserify]. + +This package makes use of ES6 features. If you want to use this module in older browsers you'll need to use a plugin +like [esmify][esmify] to ensure it works. + +## TODO + +- version the protocol +- document the resulting protocol (like a spec) +- automatic reconnect? + +[browserify]: https://npmjs.com/package/browserify +[esmify]: https://npmjs.com/package/esmify +[msgpack-rpc]: https://github.com/msgpack-rpc/msgpack-rpc diff --git a/jest.config.js b/jest.config.js @@ -0,0 +1,181 @@ +// For a detailed explanation regarding each configuration property, visit: +// https://jestjs.io/docs/en/configuration.html + +module.exports = { + // All imported modules in your tests should be mocked automatically + // automock: false, + + // Stop running tests after the first failure + // bail: false, + + // Respect "browser" field in package.json when resolving modules + // browser: false, + + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/tmp/jest_rs", + + // Automatically clear mock calls and instances between every test + // clearMocks: false, + + // Indicates whether the coverage information should be collected while executing the test + collectCoverage: true, + + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: null, + + // The directory where Jest should output its coverage files + coverageDirectory: "coverage", + + // An array of regexp pattern strings used to skip coverage collection + coveragePathIgnorePatterns: [ + "/node_modules/" + ], + + // A list of reporter names that Jest uses when writing coverage reports + // coverageReporters: [ + // "json", + // "text", + // "lcov", + // "clover" + // ], + + // An object that configures minimum threshold enforcement for coverage results + // coverageThreshold: null, + + // Make calling deprecated APIs throw helpful error messages + // errorOnDeprecated: false, + + // Force coverage collection from ignored files usin a array of glob patterns + // forceCoverageMatch: [], + + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: '<rootDir>/jest.extend.js', + + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: null, + + // A set of global variables that need to be available in all test environments + // globals: {}, + + // An array of directory names to be searched recursively up from the requiring module's location + // moduleDirectories: [ + // "node_modules" + // ], + + // An array of file extensions your modules use + // moduleFileExtensions: [ + // "js", + // "json", + // "jsx", + // "node" + // ], + + // A map from regular expressions to module names that allow to stub out resources with a single module + // moduleNameMapper: {}, + + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + // modulePathIgnorePatterns: [], + + // Activates notifications for test results + // notify: false, + + // An enum that specifies notification mode. Requires { notify: true } + // notifyMode: "always", + + // A preset that is used as a base for Jest's configuration + // preset: null, + + // Run tests from one or more projects + // projects: null, + + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, + + // Automatically reset mock state between every test + // resetMocks: false, + + // Reset the module registry before running each individual test + // resetModules: false, + + // A path to a custom resolver + // resolver: null, + + // Automatically restore mock state between every test + // restoreMocks: false, + + // The root directory that Jest should scan for tests and modules within + // rootDir: null, + + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "<rootDir>" + // ], + + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", + + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], + + // The path to a module that runs some code to configure or set up the testing framework before each test + // setupTestFrameworkScriptFile: '<rootDir>/jest.extend.js', + + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], + + // The test environment that will be used for testing + testEnvironment: "node", + + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, + + // Adds a location field to test results + // testLocationInResults: false, + + // The glob patterns Jest uses to detect test files + // testMatch: [ + // "**/__tests__/**/*.js?(x)", + // "**/?(*.)+(spec|test).js?(x)" + // ], + + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + testPathIgnorePatterns: [ + "/node_modules/", + "<rootDir>/frontend/docroot/assets/riot/", + ], + + // The regexp pattern Jest uses to detect test files + // testRegex: "", + + // This option allows the use of a custom results processor + // testResultsProcessor: null, + + // This option allows use of a custom test runner + // testRunner: "jasmine2", + + // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href + // testURL: "http://localhost", + + // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" + // timers: "real", + + // A map from regular expressions to paths to transformers + // transform: null, + + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + transformIgnorePatterns: [ + "<rootDir>/node_modules/(?!timeago\\.js)/", + ], + + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, + + // Indicates whether each individual test should be reported during the run + // verbose: null, + + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], + + // Whether to use watchman for file crawling + // watchman: true, +};