vuex-tstore
Version:
Provides a low-overhead TypeScript wrapper around Vuex that can trigger compilation errors and IntelliSense tips.
40 lines • 4.8 kB
JavaScript
import { Store } from "./store";
export { Store as TStore };
let installedVue = null;
export function install(vue) {
if (installedVue && vue === installedVue) {
console.error("[vuex-tstore] already installed. Vue.use(TStore) should be called only once.");
return;
}
installedVue = vue;
applyMixin(vue);
}
function applyMixin(vue) {
const version = Number(vue.version.split(".")[0]);
if (version >= 2) {
vue.mixin({ beforeCreate: tstoreInit });
}
else {
const _init = vue.prototype._init;
vue.prototype._init = function (options = {}) {
options.init = options.init
? [tstoreInit].concat(options.init)
: tstoreInit;
_init.call(this, options);
};
}
function tstoreInit() {
const options = this.$options;
if (options.tstore) {
this.$tstore =
typeof options.tstore === "function"
? options.tstore()
: options.tstore;
}
else if (options.parent && options.parent.$tstore) {
this.$tstore = options.parent.$tstore;
}
}
}
export default { Store, install };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE9BQU8sRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7QUFFM0IsSUFBSSxZQUFZLEdBQWUsSUFBSSxDQUFDO0FBRXBDLE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBUTtJQUM5QixJQUFJLFlBQVksSUFBSSxHQUFHLEtBQUssWUFBWSxFQUFFO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsOEVBQThFLENBQy9FLENBQUM7UUFDRixPQUFPO0tBQ1I7SUFFRCxZQUFZLEdBQUcsR0FBRyxDQUFDO0lBQ25CLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBUTtJQUMxQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRCxJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUU7UUFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQ3pDO1NBQU07UUFDTCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUNsQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxVQUFTLFVBQWUsRUFBRTtZQUM5QyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJO2dCQUN6QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQztLQUNIO0lBQ0QsU0FBUyxVQUFVO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFOUIsSUFBSyxPQUFlLENBQUMsTUFBTSxFQUFFO1lBQzFCLElBQVksQ0FBQyxPQUFPO2dCQUNuQixPQUFRLE9BQWUsQ0FBQyxNQUFNLEtBQUssVUFBVTtvQkFDM0MsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxNQUFNLEVBQUU7b0JBQzNCLENBQUMsQ0FBRSxPQUFlLENBQUMsTUFBTSxDQUFDO1NBQy9CO2FBQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFLLE9BQU8sQ0FBQyxNQUFjLENBQUMsT0FBTyxFQUFFO1lBQzNELElBQVksQ0FBQyxPQUFPLEdBQUksT0FBTyxDQUFDLE1BQWMsQ0FBQyxPQUFPLENBQUM7U0FDekQ7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVnVlIGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSBcIi4vc3RvcmVcIjtcblxuZXhwb3J0IHsgU3RvcmUgYXMgVFN0b3JlIH07XG5cbmxldCBpbnN0YWxsZWRWdWU6IFZ1ZSB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbCh2dWU6IGFueSkge1xuICBpZiAoaW5zdGFsbGVkVnVlICYmIHZ1ZSA9PT0gaW5zdGFsbGVkVnVlKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIFwiW3Z1ZXgtdHN0b3JlXSBhbHJlYWR5IGluc3RhbGxlZC4gVnVlLnVzZShUU3RvcmUpIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlLlwiXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpbnN0YWxsZWRWdWUgPSB2dWU7XG4gIGFwcGx5TWl4aW4odnVlKTtcbn1cblxuZnVuY3Rpb24gYXBwbHlNaXhpbih2dWU6IGFueSkge1xuICBjb25zdCB2ZXJzaW9uID0gTnVtYmVyKHZ1ZS52ZXJzaW9uLnNwbGl0KFwiLlwiKVswXSk7XG5cbiAgaWYgKHZlcnNpb24gPj0gMikge1xuICAgIHZ1ZS5taXhpbih7IGJlZm9yZUNyZWF0ZTogdHN0b3JlSW5pdCB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfaW5pdCA9IHZ1ZS5wcm90b3R5cGUuX2luaXQ7XG4gICAgdnVlLnByb3RvdHlwZS5faW5pdCA9IGZ1bmN0aW9uKG9wdGlvbnM6IGFueSA9IHt9KSB7XG4gICAgICBvcHRpb25zLmluaXQgPSBvcHRpb25zLmluaXRcbiAgICAgICAgPyBbdHN0b3JlSW5pdF0uY29uY2F0KG9wdGlvbnMuaW5pdClcbiAgICAgICAgOiB0c3RvcmVJbml0O1xuICAgICAgX2luaXQuY2FsbCh0aGlzLCBvcHRpb25zKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIHRzdG9yZUluaXQodGhpczogVnVlKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuJG9wdGlvbnM7XG5cbiAgICBpZiAoKG9wdGlvbnMgYXMgYW55KS50c3RvcmUpIHtcbiAgICAgICh0aGlzIGFzIGFueSkuJHRzdG9yZSA9XG4gICAgICAgIHR5cGVvZiAob3B0aW9ucyBhcyBhbnkpLnRzdG9yZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgPyAob3B0aW9ucyBhcyBhbnkpLnRzdG9yZSgpXG4gICAgICAgICAgOiAob3B0aW9ucyBhcyBhbnkpLnRzdG9yZTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMucGFyZW50ICYmIChvcHRpb25zLnBhcmVudCBhcyBhbnkpLiR0c3RvcmUpIHtcbiAgICAgICh0aGlzIGFzIGFueSkuJHRzdG9yZSA9IChvcHRpb25zLnBhcmVudCBhcyBhbnkpLiR0c3RvcmU7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHsgU3RvcmUsIGluc3RhbGwgfTtcbiJdfQ==