@heyframe-ag/meteor-admin-sdk
Version:
The Meteor SDK for the HeyFrame Administration.
93 lines • 4 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
(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"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRepositoryAdapter = exports.RepositoryAdapter = void 0;
function isPromise(value) {
return (!!value &&
typeof value === 'object' &&
'then' in value &&
typeof value.then === 'function' &&
'catch' in value &&
typeof value.catch === 'function');
}
/**
* Repository adapter that can wrap different source implementations
* and provide a consistent interface
*/
class RepositoryAdapter {
// eslint-disable-next-line no-empty-function,no-useless-constructor
constructor(sourceRepository) {
Object.defineProperty(this, "sourceRepository", {
enumerable: true,
configurable: true,
writable: true,
value: sourceRepository
});
}
search(criteria, context) {
return __awaiter(this, void 0, void 0, function* () {
return this.sourceRepository.search(criteria, context);
});
}
get(id, context, criteria) {
return __awaiter(this, void 0, void 0, function* () {
return this.sourceRepository.get(id, context, criteria);
});
}
save(entity, context) {
return __awaiter(this, void 0, void 0, function* () {
return this.sourceRepository.save(entity, context);
});
}
clone(entityId, behavior, context) {
return __awaiter(this, void 0, void 0, function* () {
return this.sourceRepository.clone(entityId, behavior, context);
});
}
hasChanges(entity) {
return __awaiter(this, void 0, void 0, function* () {
const result = this.sourceRepository.hasChanges(entity);
return isPromise(result) ? result : Promise.resolve(result);
});
}
saveAll(entities, context) {
return __awaiter(this, void 0, void 0, function* () {
return this.sourceRepository.saveAll(entities, context);
});
}
delete(entityId, context) {
return __awaiter(this, void 0, void 0, function* () {
return this.sourceRepository.delete(entityId, context);
});
}
create(context, entityId) {
return __awaiter(this, void 0, void 0, function* () {
const result = this.sourceRepository.create(context, entityId);
return isPromise(result) ? result : Promise.resolve(result);
});
}
}
exports.RepositoryAdapter = RepositoryAdapter;
function createRepositoryAdapter(source) {
return new RepositoryAdapter(source);
}
exports.createRepositoryAdapter = createRepositoryAdapter;
});
//# sourceMappingURL=repository-adapter.js.map