@iota-big3/sdk-types
v2.0.0
Published
TypeScript type definitions for iota-big3 SDK
Maintainers
Readme
@iota-big3/sdk-types
TypeScript type definitions and runtime utilities for the IOTA Big3 SDK ecosystem.
Installation
npm install @iota-big3/sdk-typesFeatures
Type Definitions
- Common Types: Express, Redis, Auth, Caching interfaces
- Error Classes: Comprehensive error hierarchy with proper inheritance
- Compliance Types: FERPA, HIPAA, GDPR validation types
- Utility Types: Advanced TypeScript utility types
Runtime Utilities (New!)
- Type Guards: Runtime type checking for compile-time types
- Factory Functions: Create properly typed objects
- Validators: Validate configuration and compliance
Usage
Type Guards
import { isAuthUser, isApiError, isValidJsonValue } from "@iota-big3/sdk-types";
// Check if an object is a valid AuthUser
const user = await getUser();
if (isAuthUser(user)) {
console.log(user.id); // TypeScript knows this is safe
}
// Validate JSON values
const data = JSON.parse(response);
if (isValidJsonValue(data)) {
// Safe to use as JsonValue
}Factory Functions
import {
createApiResponse,
createAuthUser,
createComplianceViolation,
} from "@iota-big3/sdk-types";
// Create a typed API response
const response = createApiResponse({
data: { id: "123", name: "Test" },
// meta is auto-generated with timestamp, version, requestId
});
// Create an AuthUser
const user = createAuthUser({
id: "user-123",
email: "[email protected]",
roles: ["admin"],
});
// Create a compliance violation
const violation = createComplianceViolation({
rule: "FERPA_CONSENT",
severity: "high",
message: "Missing parental consent for student data access",
});Validators
import {
validateSDKConfig,
validateEnvironment,
validateComplianceFramework,
} from "@iota-big3/sdk-types";
// Validate SDK configuration
const configResult = validateSDKConfig(config);
if (!configResult.valid) {
console.error("Invalid config:", configResult.errors);
}
// Validate environment
if (validateEnvironment(process.env.NODE_ENV)) {
// TypeScript knows this is 'development' | 'staging' | 'production'
}
// Validate compliance framework
if (validateComplianceFramework("FERPA")) {
// Valid framework
}Integration with Other SDKs
While sdk-types doesn't require infrastructure services, it provides the type contracts that enable integration between other SDKs:
// Other SDKs use these types for consistency
import { AuthUser, ApiResponse, DomainEvent } from "@iota-big3/sdk-types";
export class MySDK {
async getUser(id: string): Promise<ApiResponse<AuthUser>> {
// Implementation
}
emit(event: DomainEvent): void {
// Implementation
}
}Documentation
See https://docs.iota-big3.com for full documentation.
License
MIT
