@datorama/akita
Version:
State Management Tailored-Made for JS Applications
31 lines • 2.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
export const configKey = 'akitaConfig';
/**
* @param {?} metadata
* @return {?}
*/
export function StoreConfig(metadata) {
return (/**
* @param {?} constructor
* @return {?}
*/
function (constructor) {
constructor[configKey] = { idKey: 'id' };
for (let i = 0, keys = Object.keys(metadata); i < keys.length; i++) {
/** @type {?} */
const key = keys[i];
/* name is preserved read only key */
if (key === 'name') {
constructor[configKey]['storeName'] = metadata[key];
}
else {
constructor[configKey][key] = metadata[key];
}
}
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVDb25maWcuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvc3RvcmVDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFZQSxNQUFNLE9BQU8sU0FBUyxHQUFHLGFBQWE7Ozs7O0FBRXRDLE1BQU0sVUFBVSxXQUFXLENBQUMsUUFBNEI7SUFDdEQ7Ozs7SUFBTyxVQUFTLFdBQXFCO1FBQ25DLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTs7a0JBQzVELEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ25CLHFDQUFxQztZQUNyQyxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7Z0JBQ2xCLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckQ7aUJBQU07Z0JBQ0wsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QztTQUNGO0lBQ0gsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0b3JlQ29uZmlnT3B0aW9ucyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICByZXNldHRhYmxlPzogYm9vbGVhbjtcbiAgY2FjaGU/OiB7IHR0bDogbnVtYmVyIH07XG4gIGRlZXBGcmVlemVGbj86IChvOiBhbnkpID0+IGFueTtcbiAgaWRLZXk/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBVcGRhdGFibGVTdG9yZUNvbmZpZ09wdGlvbnMgPSB7XG4gIGNhY2hlPzogeyB0dGw6IG51bWJlciB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbmZpZ0tleSA9ICdha2l0YUNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBTdG9yZUNvbmZpZyhtZXRhZGF0YTogU3RvcmVDb25maWdPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbihjb25zdHJ1Y3RvcjogRnVuY3Rpb24pIHtcbiAgICBjb25zdHJ1Y3Rvcltjb25maWdLZXldID0geyBpZEtleTogJ2lkJyB9O1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGtleXMgPSBPYmplY3Qua2V5cyhtZXRhZGF0YSk7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgLyogbmFtZSBpcyBwcmVzZXJ2ZWQgcmVhZCBvbmx5IGtleSAqL1xuICAgICAgaWYgKGtleSA9PT0gJ25hbWUnKSB7XG4gICAgICAgIGNvbnN0cnVjdG9yW2NvbmZpZ0tleV1bJ3N0b3JlTmFtZSddID0gbWV0YWRhdGFba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0cnVjdG9yW2NvbmZpZ0tleV1ba2V5XSA9IG1ldGFkYXRhW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19