@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
108 lines • 5.25 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CultureLoader = void 0;
const culture_cache_1 = require("../caches/culture-cache");
const constants_1 = require("../constants");
const culture_load_option_1 = require("../contracts/querying/culture-load-option");
const entity_load_configuration_1 = require("../contracts/querying/entity-load-configuration");
const filters_1 = require("../contracts/querying/filters");
const member_load_option_1 = require("../contracts/querying/member-load-option");
const property_load_option_1 = require("../contracts/querying/property-load-option");
const query_1 = require("../contracts/querying/query");
const relation_load_option_1 = require("../contracts/querying/relation-load-option");
const error_messages_1 = __importDefault(require("../error-messages"));
const internal_error_1 = require("../errors/internal-error");
const guard_1 = __importDefault(require("../guard"));
class CultureLoader {
constructor(client) {
guard_1.default.notNull(client);
this._client = client;
this._cultureCache = new culture_cache_1.CultureCache();
}
getDefaultCultureAsync() {
return __awaiter(this, void 0, void 0, function* () {
const cultures = yield this.getAllCulturesAsync();
return CultureLoader.extractDefaultCulture(cultures);
});
}
getDefaultCultureCachedAsync() {
return __awaiter(this, void 0, void 0, function* () {
const cultures = yield this.getAllCulturesCachedAsync();
return CultureLoader.extractDefaultCulture(cultures);
});
}
getAllCulturesAsync() {
return __awaiter(this, void 0, void 0, function* () {
const cultures = yield this.queryCultureAsync();
this._cultureCache.loadCache(cultures);
return cultures;
});
}
getAllCulturesCachedAsync() {
return __awaiter(this, void 0, void 0, function* () {
let cultures = this._cultureCache.getCachedCultures();
if (cultures == null) {
cultures = yield this.getAllCulturesAsync();
}
return cultures;
});
}
//#region Private methods
queryCultureAsync() {
return __awaiter(this, void 0, void 0, function* () {
const result = yield this._client.querying.singleAsync(CultureLoader._query, CultureLoader._loadConfig);
if (result == null) {
throw new internal_error_1.InternalError(error_messages_1.default.CultureLoader.CouldNotFindCultures);
}
const token = yield result.getPropertyValueAsync(constants_1.DEFINITIONS["Setting"].value, member_load_option_1.MemberLoadOption.LazyLoading);
if (token == null) {
throw new internal_error_1.InternalError(error_messages_1.default.CultureLoader.CouldNotFindCultures);
}
const cultures = token instanceof Array
? token
: typeof token === "string"
? JSON.parse(token)
: [];
return cultures;
});
}
static extractDefaultCulture(cultures) {
if (cultures == null || cultures.length === 0) {
return null;
}
return cultures[0];
}
}
exports.CultureLoader = CultureLoader;
CultureLoader._loadConfig = new entity_load_configuration_1.EntityLoadConfiguration(culture_load_option_1.CultureLoadOption.None, new property_load_option_1.PropertyLoadOption(constants_1.DEFINITIONS["Setting"].value), relation_load_option_1.RelationLoadOption.None);
CultureLoader._query = new query_1.Query({
filter: new filters_1.CompositeQueryFilter({
combineMethod: filters_1.CompositeFilterOperator.And,
children: [
new filters_1.DefinitionQueryFilter({
name: constants_1.DEFINITIONS["Setting"].definitionName,
operator: filters_1.ComparisonOperator.Equals,
}),
new filters_1.PropertyQueryFilter({
operator: filters_1.ComparisonOperator.Equals,
dataType: filters_1.FilterDataType.String,
property: constants_1.DEFINITIONS["Setting"].name,
value: constants_1.DEFINITIONS["Setting"].CultureSetting.name,
}),
],
}),
take: 1,
});
//# sourceMappingURL=culture-loader.js.map