Skip to content

Latest commit

 

History

History
647 lines (425 loc) · 10.8 KB

File metadata and controls

647 lines (425 loc) · 10.8 KB

Referência Completa da API

Documentação detalhada de todas as classes, métodos e tipos da Circle Text Library.

Índice

TextLibrary

Classe principal que agrupa todos os módulos da biblioteca.

Constructor

new TextLibrary(config: CircleTextProps)

Parâmetros

Nome Tipo Obrigatório Descrição
config CircleTextProps Sim Objeto de configuração

Propriedades

Nome Tipo Descrição
validator Validator Instância do validador
extractor Extractor Instância do extrator
sentiment SentimentExtractor Instância do analisador de sentimento
conversor Conversor Instância do conversor
date DateFormatter Instância do formatador de datas
rich RichText Instância do formatador de rich text
timezone Timezone Instância do gerenciador de timezone

Validator

Módulo de validação com regras configuráveis.

Métodos

username()

username(value: string, customRules?: UsernameValidationRules): ValidationResult

Valida um username.

Retorno: { isValid: boolean, errors: string[] }

password()

password(value: string, customRules?: PasswordValidationRules): ValidationResult

Valida uma senha.

Retorno: { isValid: boolean, errors: string[] }

hashtag()

hashtag(value: string, customRules?: HashtagValidationRules): ValidationResult

Valida uma hashtag.

Retorno: { isValid: boolean, errors: string[] }

url()

url(value: string, customRules?: UrlValidationRules): ValidationResult

Valida uma URL.

Retorno: { isValid: boolean, errors: string[] }

name()

name(value: string, customRules?: NameValidationRules): ValidationResult

Valida um nome de pessoa.

Retorno: { isValid: boolean, errors: string[] }

description()

description(value: string, customRules?: DescriptionValidationRules): ValidationResult

Valida uma descrição.

Retorno: { isValid: boolean, errors: string[] }

Extractor

Módulo de extração de entidades e keywords.

Métodos

setText()

setText(text: string): void

Define o texto a ser analisado.

entities()

entities(options: ExtractOptions): PartialExtractResult

Extrai entidades do texto.

Parâmetros:

  • options.mentions (boolean): Extrair menções
  • options.hashtags (boolean): Extrair hashtags
  • options.urls (boolean): Extrair URLs

Retorno: Objeto com arrays de entidades extraídas.

keywords()

keywords(): string[]

Extrai keywords do texto.

Retorno: Array de strings com as keywords.

SentimentExtractor

Módulo de análise de sentimento.

Métodos

analyze()

analyze(text: string): SentimentReturnProps

Analisa o sentimento de um texto.

Retorno:

{
  sentiment: 'positive' | 'negative' | 'neutral',
  intensity: number  // 0.0 a 1.0
}

DateFormatter

Módulo de formatação de datas.

Constructor

new DateFormatter(config?: DateFormatterConfig)

Métodos de Formatação

toRelativeTime()

toRelativeTime(date: Date): string

Converte data para texto relativo.

Retorno: String com tempo relativo ("10 minutos atrás", "2h", etc.)

Lança: Erro se data for inválida ou futura.

toFullDate()

toFullDate(date: Date): string

Formata data por extenso.

Retorno: String com data completa ("15 de janeiro de 2024")

toShortDate()

toShortDate(date: Date): string

Formata data em formato curto.

Retorno: String com data curta ("15/01/2024")

toTimeString()

toTimeString(date: Date): string

Formata apenas a hora.

Retorno: String com hora ("14:30")

toFullDateTime()

toFullDateTime(date: Date): string

Formata data e hora completa.

Retorno: String com data e hora ("15 de janeiro de 2024 às 14:30")

Métodos Utilitários

isPast()

isPast(date: Date): boolean

Verifica se data está no passado.

isFuture()

isFuture(date: Date): boolean

Verifica se data está no futuro.

isToday()

isToday(date: Date): boolean

Verifica se data é hoje.

isYesterday()

isYesterday(date: Date): boolean

Verifica se data foi ontem.

daysBetween()

daysBetween(date1: Date, date2?: Date): number

Calcula diferença em dias entre datas.

Métodos de Configuração

setStyle()

setStyle(style: DateFormatStyle): void

Define estilo de formatação ('full', 'short', 'abbreviated').

setLocale()

setLocale(locale: DateFormatLocale): void

Define locale ('pt-BR', 'en-US').

setUsePrefix()

setUsePrefix(usePrefix: boolean): void

Define uso do prefixo "há".

setUseSuffix()

setUseSuffix(useSuffix: boolean): void

Define uso do sufixo "atrás".

setCapitalize()

setCapitalize(capitalize: boolean): void

Define capitalização da primeira letra.

setUseApproximateTime()

setUseApproximateTime(useApproximateTime: boolean): void

Define uso de tempo aproximado.

setRecentTimeThreshold()

setRecentTimeThreshold(threshold: number): void

Define threshold em segundos para tempo recente.

setRecentTimeLabel()

setRecentTimeLabel(label: string): void

Define label customizado para tempo recente.

Getters

getStyle()

getStyle(): DateFormatStyle

Retorna estilo atual.

getLocale()

getLocale(): DateFormatLocale

Retorna locale atual.

Conversor

Módulo de conversão e formatação de números e textos.

Métodos

sliceWithDots()

sliceWithDots(options: { text: string, size?: number }): string

Corta texto adicionando sufixo.

Retorno: Texto cortado com sufixo.

capitalizeFirstLetter()

capitalizeFirstLetter(text: string): string

Capitaliza primeira letra.

Retorno: Texto com primeira letra maiúscula.

invertStr()

invertStr(text: string): string

Inverte uma string.

Retorno: String invertida.

formatNumWithDots()

formatNumWithDots(num: number): string

Formata número com separadores de milhares.

Retorno: String com número formatado ("1.000.000").

convertNumToShort()

convertNumToShort(num: number): string

Converte número para formato curto.

Retorno: String com número abreviado ("1.5 M", "500 K").

RichText

Módulo de formatação de texto enriquecido.

Métodos

setText()

setText(text: string, entityMappings?: EntityMapping): void

Define texto e mapeamento de IDs de entidades.

getEnrichedText()

getEnrichedText(): string

Retorna texto em formato enriquecido.

formatToNormal()

formatToNormal(): string

Converte texto enriquecido para normal.

formatToUI()

formatToUI(): RichTextUIFormat

Formata para renderização em UI.

Retorno:

{
  text: string,
  entities: Array<{
    type: 'text' | 'mention' | 'hashtag' | 'url',
    text: string,
    id?: string,
    start: number,
    end: number
  }>
}

extractEntities()

extractEntities(): {
  mentions: Array<{ text: string, id?: string }>,
  hashtags: Array<{ text: string, id?: string }>,
  urls: Array<{ text: string }>
}

Extrai entidades do texto enriquecido.

Timezone

Módulo de gerenciamento de fusos horários.

Constructor

new Timezone(timezoneCode?: TimezoneCode)

Métodos

UTCToLocal()

UTCToLocal(utcDate: Date): Date

Converte data UTC para timezone local.

localToUTC()

localToUTC(localDate: Date): Date

Converte data local para UTC.

getOffset()

getOffset(): number

Retorna offset em horas.

getCode()

getCode(): TimezoneCode

Retorna código do timezone.

setLocalTimezone()

setLocalTimezone(code: TimezoneCode): void

Define timezone local.

getCodeFromOffset()

getCodeFromOffset(offset: number): TimezoneCode

Retorna código do timezone a partir do offset.

getOffsetFromCode()

getOffsetFromCode(code: TimezoneCode): number

Retorna offset a partir do código.

Tipos TypeScript

CircleTextProps

interface CircleTextProps {
    validationRules: ValidationConfig
    extractorConfig?: ExtractorConfig
    sentimentConfig?: SentimentExtractorConfig
    conversorConfig?: ConversorConfig
    dateFormatterConfig?: DateFormatterConfig
    richTextConfig?: RichTextConfig
}

ValidationResult

interface ValidationResult {
    isValid: boolean
    errors: string[]
}

ExtractOptions

interface ExtractOptions {
    mentions?: boolean
    hashtags?: boolean
    urls?: boolean
}

PartialExtractResult

interface PartialExtractResult {
    mentions?: string[]
    hashtags?: string[]
    urls?: string[]
}

SentimentReturnProps

interface SentimentReturnProps {
    sentiment: "positive" | "negative" | "neutral"
    intensity: number
}

DateFormatterConfig

interface DateFormatterConfig {
    style?: "full" | "short" | "abbreviated"
    locale?: "pt-BR" | "en-US"
    usePrefix?: boolean
    useSuffix?: boolean
    capitalize?: boolean
    useApproximateTime?: boolean
    recentTimeThreshold?: number
    recentTimeLabel?: string
}

TimezoneCode

enum TimezoneCode {
    UTC = "UTC",
    BRT = "BRT",
    BRST = "BRST",
    EST = "EST",
    EDT = "EDT",
    CST = "CST",
    CDT = "CDT",
    MST = "MST",
    MDT = "MDT",
    PST = "PST",
    PDT = "PDT",
    AKST = "AKST",
    AKDT = "AKDT",
    HST = "HST"
}

Próximos Passos