0.1.0 • Published 4 years ago
@brillout/wildcard-intercept v0.1.0
Wildcard Intercept
Library for Wildcard API to intercept calls.
// ./example/endpoints.js
const {endpoints} = require('@wildcard-api/server');
const intercept = require('@brillout/wildcard-intercept'); // npm install @brillout/wildcard-intercept
endpoints.hello = intercept(function(name) {
return 'Hi '+name+'!';
}, myListener);
endpoints.mirror = intercept(function(msg) {
return msg.split('').reverse().join('');
}, myListener);
function myListener({endpointName, endpointArgs, endpointResult, endpointError, context}) {
console.log({endpointName, endpointArgs, endpointResult, endpointError, context});
}
// ./example/client.js
const {endpoints} = require('@wildcard-api/client');
const wildcard = require('@wildcard-api/client');
wildcard.serverUrl = 'http://localhost:3000';
(async function() {
let greeting = await endpoints.hello('Johnson');
console.log(greeting);
greeting = await endpoints.mirror(greeting);
console.log(greeting);
})();
Client console.log
result:
Hi Johnson!
!nosnhoJ iH
Server console.log
result:
{
endpointName: 'hello',
endpointArgs: [ 'Johnson' ],
endpointResult: 'Hi Johnson!',
endpointError: undefined,
context: {
headers: {
'content-type': 'application/json',
'accept-encoding': 'gzip,deflate',
'user-agent': 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)',
connection: 'close',
accept: '*/*',
'content-length': '0',
host: 'localhost:3000'
}
}
}
{
endpointName: 'mirror',
endpointArgs: [ 'Hi Johnson!' ],
endpointResult: '!nosnhoJ iH',
endpointError: undefined,
context: {
headers: {
'content-type': 'application/json',
'accept-encoding': 'gzip,deflate',
'user-agent': 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)',
connection: 'close',
accept: '*/*',
'content-length': '0',
host: 'localhost:3000'
}
}
}
The source code of @brillout/wildcard-intercept
is only 42 LOC; you may want to implement your own interceptor!
0.1.0
4 years ago