UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

108 lines 5.25 kB
"use strict"; 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