UNPKG

@shopware-ag/meteor-admin-sdk

Version:

The Meteor SDK for the Shopware Administration.

69 lines 2.62 kB
import { send } from '../channel'; // eslint-disable-next-line @typescript-eslint/explicit-function-return-type export default (entityName) => ({ search: (criteria, context) => { return send('repositorySearch', { entityName, context, criteria }); }, get: (id, context, criteria) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return send('repositoryGet', { entityName, id, context, criteria }); }, save: (entity, context) => { return send('repositorySave', { entityName, entity, context }); }, // eslint-disable-next-line @typescript-eslint/no-explicit-any clone: (entityId, contextOrBehavior, behaviorOrContext) => { let context; // eslint-disable-next-line @typescript-eslint/no-explicit-any let behavior; if (isApiContext(contextOrBehavior)) { context = contextOrBehavior; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment behavior = behaviorOrContext; } else if (isApiContext(behaviorOrContext)) { context = behaviorOrContext; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment behavior = contextOrBehavior; } else { throw new Error('Invalid arguments for clone method'); } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment return send('repositoryClone', { entityName, entityId, context, behavior }); }, hasChanges: (entity) => { return send('repositoryHasChanges', { entityName, entity }); }, saveAll: (entities, context) => { return send('repositorySaveAll', { entityName, entities, context }); }, delete: (entityId, context) => { return send('repositoryDelete', { entityName, entityId, context }); }, create: (context, entityId) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return send('repositoryCreate', { entityName, entityId, context }); }, }); function isApiContext(value) { const listOfApiContextProperties = [ 'apiPath', 'apiResourcePath', 'assetsPath', 'authToken', 'basePath', 'pathInfo', 'inheritance', 'installationPath', 'languageId', 'language', 'apiVersion', 'liveVersionId', 'systemLanguageId', ]; return (!!value && typeof value === 'object' && listOfApiContextProperties.some(propertyKey => propertyKey in value)); } //# sourceMappingURL=repository.js.map