cimpress-customizr
Version:
A thin client for Cimpress Customizr service
50 lines (38 loc) • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getValidLanguageOrThrow = getValidLanguageOrThrow;
exports.getValidLanguageTagOrThrow = getValidLanguageTagOrThrow;
exports.getValidTimezoneOrThrow = getValidTimezoneOrThrow;
exports.updatePreferredLanguage = updatePreferredLanguage;
var _countryLanguage = _interopRequireDefault(require("country-language"));
var _validTimezones = _interopRequireDefault(require("./validTimezones"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function getValidLanguageOrThrow(languageCode) {
var language = _countryLanguage["default"].getLanguages().find(function (a) {
return a.iso639_1 && a.iso639_1 === languageCode || a.iso639_2 && a.iso639_2 === languageCode || a.iso639_3 && a.iso639_3 === languageCode;
});
if (!language) {
throw new Error('Provided language code is not valid. Please pass a valid ISO-639 code');
}
return language;
}
function getValidTimezoneOrThrow(timezone) {
var tz = _validTimezones["default"].find(function (t) {
return t === timezone;
});
if (!tz) {
throw new Error('Provided timezone is not valid. Please pass valid IANA timezone identifier, eg. Europe/Amsterdam');
}
return tz;
}
function getValidLanguageTagOrThrow(languageTag) {
// TODO
return languageTag;
}
function updatePreferredLanguage(preferredLanguage, currentLanguages) {
return [preferredLanguage.iso639_1].concat((currentLanguages || []).filter(function (a) {
return a !== preferredLanguage.iso639_1;
}));
}