3.0.2 • Published 2 months ago
enterprise-basics
Licence
MIT
Version
3.0.2
Deps
23
Size
148 kB
Vulns
6
Weekly
0
Enterprise Basics
A collection of utility functions for common enterprise operations in Azure and other services.
Installation
npm install enterprise-basics
Features
Azure App Configuration
AzureAppConfig: Class for interacting with Azure App Configuration. Provides methods to retrieve configuration values from Azure App Configuration. Supports environment-specific configuration through labels.
Azure Storage
uploadBlob: Uploads a file to Azure Blob Storage with metadata supportdeleteBlob: Deletes a blob from Azure Blob StoragegetBlob: Downloads a blob from Azure Blob Storage as a Buffer
Azure AI
generateCompletion: Generates a single-turn completion using Azure-hosted OpenAI models. Designed for one-off completions and should not be used for maintaining chat history or conversational interactions.transcribeAudio: Transcribes audio using Azure OpenAI's Whisper model. The endpoint can be obtained fromgetAppConfig('OPENAI_WHISPER_ENDPOINT', 'prod'). Supports various audio formats including flac, m4a, mp3, mp4, mpeg, mpga, oga, ogg, wav, and webm.
Database
executeSqlQuery: Executes SQL queries against Microsoft SQL Server databases
Delimited Files
createDelimitedFileBytes: Creates a byte array from data in a delimited formatimportDelimitedFile: Imports data from a delimited file
Excel
readExcelSheetData: Reads data from Excel sheetscreateExcelFileByteArray: Creates an Excel file as a byte array- Types:
ExcelRow: Type definition for Excel row dataExcelCellValue: Type definition for Excel cell values
File System
saveFileBytesToPath: Saves byte array data to a file pathreadTextFile: Reads text content from a filegetEnvValue: Retrieves environment variable values with validation
MS Graph
graphUserSearchByEmail: Searches for users in Microsoft Graph by email address
EmailClient: Class for sending emails using SMTP. Provides methods to send emails with optional attachments. SMTP configuration is set during instantiation.
// Create an instance with SMTP configuration
const emailClient = new EmailClient({
host: 'smtp.example.com',
port: 587,
auth: { user: 'user', pass: 'pass' },
});
// Send an email
await emailClient.sendEmail({
from: 'sender@example.com',
to: ['recipient@example.com'],
subject: 'Test Email',
body: 'This is a test email with attachment',
attachments: [
{
filename: 'test.pdf',
fileBytes: new Uint8Array([255, 255]),
contentType: 'application/pdf',
},
],
});
createPdfFromHtml: Converts HTML content to a PDF file and returns it as a byte array. Supports custom page formats, orientation, and margins.htmlToPdfBuffer: Converts HTML content to a PDF buffer using puppeteer. Returns the PDF content as aUint8Array.
Usage Examples
Azure Storage
import { uploadBlob, deleteBlob, getBlob } from 'enterprise-basics';
// Upload a file
await uploadBlob(connectionString, 'my-container', 'path/to/file.txt', fileObject);
// Delete a blob
await deleteBlob(connectionString, 'my-container', 'path/to/file.txt');
// Download a blob
const buffer = await getBlob(connectionString, 'my-container', 'path/to/file.txt');
Azure App Configuration
import { getAzureConfigValue } from 'enterprise-basics';
const configValue = await getAzureConfigValue('myApp.setting', 'dev');
Azure AI (Single-turn Completion)
import { generateCompletion, transcribeAudio } from 'enterprise-basics';
// Note: This is for single-turn completions only, not for chat/conversations
const completion = await generateCompletion(
'https://your-resource.openai.azure.com',
'your-api-key',
'your-deployment-name',
[
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'What is the capital of France?' },
],
{ temperature: 0.7 },
);
// Transcribe audio
const transcription = await transcribeAudio(
'https://your-resource.openai.azure.com',
'your-api-key',
'your-whisper-deployment',
audioFile,
{ language: 'en' },
);
Excel Operations
import { readExcelSheetData, createExcelFileByteArray } from 'enterprise-basics';
// Read Excel data
const data = await readExcelSheetData(filePath, sheetName);
// Create Excel file
const excelBytes = await createExcelFileByteArray(data);
File System
import { saveFileBytesToPath, readTextFile, getEnvValue } from 'enterprise-basics';
// Save file
await saveFileBytesToPath(filePath, fileBytes);
// Read text file
const content = await readTextFile(filePath);
// Get environment variable
const apiKey = await getEnvValue('API_KEY');
MS Graph
import { graphUserSearchByEmail } from 'enterprise-basics';
const user = await graphUserSearchByEmail('user@example.com');
import { sendEmail } from 'enterprise-basics';
await sendEmail(
{
from: 'sender@example.com',
to: ['recipient@example.com'],
subject: 'Test Email',
body: 'This is a test email with attachment',
attachments: [
{
filename: 'test.pdf',
fileBytes: new Uint8Array([255, 255]),
contentType: 'application/pdf',
},
],
},
{
host: 'smtp.example.com',
port: 587,
auth: { user: 'user', pass: 'pass' },
},
);
PDF Generation
import { htmlToPdfBuffer } from 'enterprise-basics';
const htmlContent = '<h1>Hello, PDF!</h1>';
try {
const pdfBytes = await htmlToPdfBuffer(htmlContent);
// Save or use the pdfBytes
console.log('PDF generated successfully');
} catch (error) {
console.error('Failed to generate PDF:', error);
}
Error Handling
All functions include proper error handling and will throw descriptive errors when:
- Input validation fails
- Required parameters are missing
- Service operations fail
- Files are not found
- Network requests fail
TypeScript Support
This package is written in TypeScript and includes type definitions for all functions and their parameters.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT