alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
57 lines (50 loc) • 1.65 kB
text/typescript
import { $module } from "alepha";
import { $sms } from "./primitives/$sms.ts";
import { LocalSmsProvider } from "./providers/LocalSmsProvider.ts";
import { MemorySmsProvider } from "./providers/MemorySmsProvider.ts";
import { SmsProvider } from "./providers/SmsProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
export * from "./errors/SmsError.ts";
export * from "./primitives/$sms.ts";
export * from "./providers/LocalSmsProvider.ts";
export * from "./providers/MemorySmsProvider.ts";
export * from "./providers/SmsProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
declare module "alepha" {
interface Hooks {
"sms:sending": {
to: string | string[];
template: string;
variables: Record<string, unknown>;
provider: SmsProvider;
abort(): void;
};
"sms:sent": {
to: string | string[];
template: string;
provider: SmsProvider;
};
}
}
// ---------------------------------------------------------------------------------------------------------------------
/**
* SMS delivery with multiple provider support.
*
* **Features:**
* - Send SMS with templates
* - Multiple recipients
* - Provider abstraction
*
* @module alepha.sms
*/
export const AlephaSms = $module({
name: "alepha.sms",
primitives: [$sms],
services: [SmsProvider, MemorySmsProvider, LocalSmsProvider],
register: (alepha) =>
alepha.with({
optional: true,
provide: SmsProvider,
use: MemorySmsProvider,
}),
});