koa-mongo-router
Version:
KOA REST API Router for MongoDB
103 lines (102 loc) • 4.81 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCollectionPutItemTransform = exports.getDatabasePutItemTransform = exports.getGlobalPutItemTransform = exports.putItemTransform = exports.getCollectionGetItemTransform = exports.getDatabaseGetItemTransform = exports.getGlobalGetItemTransform = exports.getItemTransform = void 0;
function getItemTransform(routerOptions, databaseName, collectionName) {
const globalGetItemTransform = getGlobalGetItemTransform(routerOptions);
const databaseGetItemTransform = getDatabaseGetItemTransform(routerOptions, databaseName);
const collectionGetItemTransform = getCollectionGetItemTransform(routerOptions, databaseName, collectionName);
if (globalGetItemTransform == undefined &&
databaseGetItemTransform == undefined &&
collectionGetItemTransform == undefined) {
return undefined;
}
return async (item) => {
if (globalGetItemTransform != undefined) {
item = await globalGetItemTransform(item);
}
if (databaseGetItemTransform != undefined) {
item = await databaseGetItemTransform(item);
}
if (collectionGetItemTransform != undefined) {
item = await collectionGetItemTransform(item);
}
return item;
};
}
exports.getItemTransform = getItemTransform;
function getGlobalGetItemTransform(routerOptions) {
if (routerOptions != undefined) {
return routerOptions.getItemTransform;
}
}
exports.getGlobalGetItemTransform = getGlobalGetItemTransform;
function getDatabaseGetItemTransform(routerOptions, databaseName) {
if (routerOptions != undefined && routerOptions.databases != undefined) {
const databaseOptions = routerOptions.databases[databaseName];
if (databaseOptions != undefined) {
return databaseOptions.getItemTransform;
}
}
}
exports.getDatabaseGetItemTransform = getDatabaseGetItemTransform;
function getCollectionGetItemTransform(routerOptions, databaseName, collectionName) {
if (routerOptions != undefined && routerOptions.databases != undefined) {
const databaseOptions = routerOptions.databases[databaseName];
if (databaseOptions != undefined && databaseOptions.collections != undefined) {
const collectionOptions = databaseOptions.collections[collectionName];
if (collectionOptions != undefined) {
return collectionOptions.getItemTransform;
}
}
}
}
exports.getCollectionGetItemTransform = getCollectionGetItemTransform;
function putItemTransform(routerOptions, databaseName, collectionName) {
const globalPutItemTransform = getGlobalPutItemTransform(routerOptions);
const databasePutItemTransform = getDatabasePutItemTransform(routerOptions, databaseName);
const collectionPutItemTransform = getCollectionPutItemTransform(routerOptions, databaseName, collectionName);
if (globalPutItemTransform == undefined &&
databasePutItemTransform == undefined &&
collectionPutItemTransform == undefined) {
return undefined;
}
return async (item) => {
if (collectionPutItemTransform != undefined) {
item = await collectionPutItemTransform(item);
}
if (databasePutItemTransform != undefined) {
item = await databasePutItemTransform(item);
}
if (globalPutItemTransform != undefined) {
item = await globalPutItemTransform(item);
}
return item;
};
}
exports.putItemTransform = putItemTransform;
function getGlobalPutItemTransform(routerOptions) {
if (routerOptions != undefined) {
return routerOptions.putItemTransform;
}
}
exports.getGlobalPutItemTransform = getGlobalPutItemTransform;
function getDatabasePutItemTransform(routerOptions, databaseName) {
if (routerOptions != undefined && routerOptions.databases != undefined) {
const databaseOptions = routerOptions.databases[databaseName];
if (databaseOptions != undefined) {
return databaseOptions.putItemTransform;
}
}
}
exports.getDatabasePutItemTransform = getDatabasePutItemTransform;
function getCollectionPutItemTransform(routerOptions, databaseName, collectionName) {
if (routerOptions != undefined && routerOptions.databases != undefined) {
const databaseOptions = routerOptions.databases[databaseName];
if (databaseOptions != undefined && databaseOptions.collections != undefined) {
const collectionOptions = databaseOptions.collections[collectionName];
if (collectionOptions != undefined) {
return collectionOptions.putItemTransform;
}
}
}
}
exports.getCollectionPutItemTransform = getCollectionPutItemTransform;