UNPKG

koa-mongo-router

Version:
103 lines (102 loc) 4.81 kB
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;