Skip to content

Enhancements API Reference

Complete reference for Nevr's enhancement pipeline functions.

Pipeline Functions

enhanceWriteData()

Process data before writing to database (transforms, validation, security).

typescript
import { enhanceWriteData } from "nevr"

const processed = await enhanceWriteData(entity, data, {
  operation: "create",
  user: currentUser
})

enhanceReadData() / enhanceReadDataArray()

Process data after reading from database (decryption, omission, access policies).

typescript
import { enhanceReadData, enhanceReadDataArray } from "nevr"

const record = await enhanceReadData(entity, rawData, { user })
const records = await enhanceReadDataArray(entity, rawDataArray, { user })

initEnhancements()

Initialize enhancement system (required for encryption).

typescript
import { initEnhancements } from "nevr"

await initEnhancements({
  encryptionKey: process.env.ENCRYPTION_KEY
})

Validation Functions

FunctionDescription
validateField(field, value)Validate single field
validateData(entity, data)Validate all fields
getValidationSchema(entity)Get validation schema
FieldValidationErrorError class
FieldValidationErrorsMultiple errors class

Transform Functions

FunctionDescription
transformField(field, value)Transform single field
transformData(entity, data)Transform all fields
hasTransforms(entity)Check if entity has transforms
getTransformFields(entity)Get fields with transforms

Security Functions

FunctionDescription
hashPassword(password)Hash password (scrypt)
verifyPassword(password, hash)Verify password
encryptValue(value)Encrypt field value
decryptValue(encrypted)Decrypt field value
initEncryption(key)Initialize encryption
generateEncryptionKey()Generate new key
getPasswordFields(entity)Get password fields
getOmitFields(entity)Get omitted fields
getEncryptedFields(entity)Get encrypted fields

Cross-Field Validation

FunctionDescription
validateCrossFields(entity, data, ctx)Run cross-field validators
hasCrossFieldValidators(entity)Check for validators
getValidators(entity)Get all validators
getValidatorsForOperation(entity, op)Get by operation
CrossFieldValidationErrorError class

Field Access Policies

FunctionDescription
evaluatePolicy(policy, ctx)Evaluate single policy
canReadField(entity, field, ctx)Check read access
canWriteField(entity, field, ctx)Check write access
filterReadableFields(entity, data, ctx)Filter by read policy
filterWritableFields(entity, data, ctx)Filter by write policy
hasFieldAccessPolicies(entity)Check for policies
getFieldAccessSummary(entity)Get policy summary

Enhanced Driver

createEnhancedDriver()

Wrap a driver to automatically apply enhancements.

typescript
import { createEnhancedDriver, prisma } from "nevr"

const driver = createEnhancedDriver(prisma(db), {
  entities: [user, post],
  user: currentUser
})

Helper Functions

FunctionDescription
isEnhancedDriver(driver)Check if enhanced
getBaseDriver(driver)Get underlying driver

See Also

Released under the MIT License.