@syncable/server
Version:
26 lines • 1.06 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const lodash_1 = tslib_1.__importDefault(require("lodash"));
function filterReadableSyncables(context, adapter, syncables, toSanitizeFields = false, onSanitize) {
return lodash_1.default.compact(syncables.map(syncable => {
let object = adapter.instantiateBySyncable(syncable);
if (!object.testAccessRights(['read'], context)) {
return undefined;
}
if (toSanitizeFields) {
let sanitizedFieldNames = object.getSanitizedFieldNames(context);
if (onSanitize) {
onSanitize(syncable, sanitizedFieldNames);
}
syncable = {
_sanitizedFieldNames: sanitizedFieldNames,
...syncable,
};
return lodash_1.default.omit(syncable, sanitizedFieldNames);
}
return syncable;
}));
}
exports.filterReadableSyncables = filterReadableSyncables;
//# sourceMappingURL=access-control.js.map
;