@shopware-ag/meteor-admin-sdk
Version:
The Meteor SDK for the Shopware Administration.
33 lines • 1.62 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "vue", "./getRepository"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRepository = void 0;
const vue_1 = require("vue");
const getRepository_1 = require("./getRepository");
/**
* Reactive wrapper around getRepository that updates when dependencies change.
* Takes reactive references to entityName and/or repositoryFactory and returns
* a computed repository that updates when these inputs change.
*/
function useRepository(entityNameRef, repositoryFactoryRef) {
const injectedFactory = (0, vue_1.inject)('repositoryFactory');
return (0, vue_1.computed)(() => {
const entityName = (0, vue_1.unref)(entityNameRef);
const repositoryFactory = (0, vue_1.unref)(repositoryFactoryRef);
return (0, getRepository_1.getRepository)(entityName, repositoryFactory !== null && repositoryFactory !== void 0 ? repositoryFactory : (injectedFactory
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
? (entityName) => injectedFactory.create(entityName)
: undefined));
});
}
exports.useRepository = useRepository;
});
//# sourceMappingURL=useRepository.js.map