@parkingboss/api
Version:
The Parking Boss API
39 lines (38 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Api = void 0;
const base_1 = require("./base");
const session_1 = require("./session");
const queries_1 = require("./queries");
function optsToSettings(opts) {
const settings = {
client: opts.client,
user: null,
apiBase: opts.apiBase || "TEMP_FAKE",
};
if (!opts.apiBase) {
const watcher = base_1.apiBase();
watcher.subscribe((newBase) => (settings.apiBase = newBase));
}
return settings;
}
function Api(opts) {
const settings = optsToSettings(opts);
const api = Object.assign({ settings }, session_1.session(settings), queries_1.queries(settings));
if (!opts.skipUrlRewrite) {
self.history.replaceState(null, "", urlWithoutToken());
}
return api;
}
exports.Api = Api;
const removables = ["token", "access_token", "accessToken"];
function urlWithoutToken() {
const url = new URL(location.toString());
const hash = new URLSearchParams(url.hash.replace(/^#/, ""));
removables.forEach((key) => {
url.searchParams.delete(key);
hash.delete(key);
});
url.hash = hash.toString();
return url.toString();
}