Repository URL to install this package:
|
Version:
1.2.1 ▾
|
"use strict";
// https://github.com/keithamus/proxy-fluent-api
// https://bugzilla.mozilla.org/show_bug.cgi?id=683218
function proxyFluentApi(executor, context = null) {
var parts = [];
var proxy = new Proxy(function () {
var returnVal = executor.call(context, parts);
parts = [];
return returnVal;
}, {
has() {
return true;
},
get(object, prop) {
parts.push(prop);
return proxy;
}
});
return proxy;
}
const example = proxyFluentApi(parts => parts.join('--'));
example.a.b.c.d() == 'a--b--c--d';
example.e.f.g.h() == 'e--f--g--h';
function urlBuilder(domain) {
return proxyFluentApi(parts => `${domain}${parts.join('/')}`);
}
const google = urlBuilder('https://google.com/');
google.search.products.bacon.and.eggs() == 'https://google.com/search/products/bacon/and/eggs';