react-native-qonversion
Version:
Qonversion provides full in-app purchases infrastructure, so you do not need to build your own server for receipt validation. Implement in-app subscriptions, validate user receipts, check subscription status, and provide access to your app features and co
70 lines • 2.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const enums_1 = require("./enums");
class UserProperties {
/**
* List of all user properties.
*/
properties;
/**
* List of user properties, set for the Qonversion defined keys.
* This is a subset of all {@link properties} list.
* See {@link QonversionApi.setUserProperty}.
*/
definedProperties;
/**
* List of user properties, set for custom keys.
* This is a subset of all {@link properties} list.
* See {@link QonversionApi.setCustomUserProperty}.
*/
customProperties;
/**
* Map of all user properties.
* This is a flattened version of the {@link properties} list as a key-value map.
*/
flatPropertiesMap;
/**
* Map of user properties, set for the Qonversion defined keys.
* This is a flattened version of the {@link definedProperties} list as a key-value map.
* See {@link QonversionApi.setUserProperty}.
*/
flatDefinedPropertiesMap;
/**
* Map of user properties, set for custom keys.
* This is a flattened version of the {@link customProperties} list as a key-value map.
* See {@link QonversionApi.setCustomUserProperty}.
*/
flatCustomPropertiesMap;
constructor(properties) {
this.properties = properties;
this.definedProperties = properties.filter(property => property.definedKey !== enums_1.UserPropertyKey.CUSTOM);
this.customProperties = properties.filter(property => property.definedKey === enums_1.UserPropertyKey.CUSTOM);
this.flatPropertiesMap = new Map();
this.flatDefinedPropertiesMap = new Map();
this.flatCustomPropertiesMap = new Map();
properties.forEach(property => {
this.flatPropertiesMap.set(property.key, property.value);
if (property.definedKey == enums_1.UserPropertyKey.CUSTOM) {
this.flatCustomPropertiesMap.set(property.key, property.value);
}
else {
this.flatDefinedPropertiesMap.set(property.definedKey, property.value);
}
});
}
/**
* Searches for a property with the given property {@link key} in all properties list.
*/
getProperty(key) {
return this.properties.find(userProperty => userProperty.key == key);
}
/**
* Searches for a property with the given Qonversion defined property {@link key}
* in defined properties list.
*/
getDefinedProperty(key) {
return this.definedProperties.find(userProperty => userProperty.definedKey == key);
}
}
exports.default = UserProperties;
//# sourceMappingURL=UserProperties.js.map