@vtex/api
Version:
VTEX I/O API client
40 lines (39 loc) • 1.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Settings = void 0;
const ramda_1 = require("ramda");
const HttpClient_1 = require("../../HttpClient");
const settings_1 = require("../../service/worker/runtime/http/middlewares/settings");
const app_1 = require("../../utils/app");
const AppClient_1 = require("./AppClient");
const LINKED_ROUTE = 'linked';
const containsLinks = (0, ramda_1.any)(app_1.isLinkedApp);
class Settings extends AppClient_1.AppClient {
constructor(context, options) {
super('vtex.settings-server@0.x', context, options);
}
getFilteredDependencies(appAtMajor, dependencies) {
return (0, settings_1.getFilteredDependencies)(appAtMajor, dependencies);
}
getDependenciesHash(dependencies) {
return (0, settings_1.getDependenciesHash)(dependencies);
}
async getSettings(dependencies, appAtMajor, params, tracingConfig) {
const filtered = this.getFilteredDependencies(appAtMajor, dependencies);
// Settings server exposes a smartCache-enabled route for when the workspace contains links.
const lastSegment = containsLinks(filtered)
? LINKED_ROUTE
: this.getDependenciesHash(filtered);
const metric = 'settings-get';
return this.http.get(`/settings/${appAtMajor}/${lastSegment}`, {
inflightKey: HttpClient_1.inflightUrlWithQuery,
metric,
params,
tracing: {
requestSpanNameSuffix: metric,
...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing,
},
});
}
}
exports.Settings = Settings;
;