-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathbasic-usage-cjs.cjs
More file actions
88 lines (74 loc) · 2.79 KB
/
basic-usage-cjs.cjs
File metadata and controls
88 lines (74 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/**
* NFE.io SDK v3 - CommonJS Usage Example
* Demonstrates core functionality using require()
*/
// Import usando CommonJS syntax
const { createNfeClient, isEnvironmentSupported, getRuntimeInfo } = require('../dist/index.cjs');
async function demonstrateSDK() {
try {
// Verificar compatibilidade do ambiente
console.log('🔍 Verificando compatibilidade do ambiente...');
const supported = isEnvironmentSupported();
console.log('Ambiente suportado:', supported);
if (!supported) {
console.error('❌ Ambiente não suportado!');
return;
} else {
console.log('✅ Ambiente compatível!');
}
// Obter informações do runtime
console.log('\n📊 Informações do runtime:');
const runtimeInfo = getRuntimeInfo();
console.log(runtimeInfo);
// Configurar cliente (usando development)
console.log('\n🚀 Criando cliente NFE.io...');
const nfe = createNfeClient({
apiKey: 'sua-api-key-aqui',
environment: 'development',
timeout: 10000,
retryConfig: {
maxAttempts: 3,
baseDelay: 1000,
maxDelay: 5000
}
});
console.log('✅ Cliente criado com sucesso!');
// Demonstrar estrutura de resources
console.log('\n📚 Resources disponíveis:');
console.log('- nfe.companies: Gerenciamento de empresas');
console.log('- nfe.serviceInvoices: Notas fiscais de serviço');
console.log('- nfe.legalPeople: Pessoas jurídicas');
console.log('- nfe.naturalPeople: Pessoas físicas');
console.log('- nfe.webhooks: Gerenciamento de webhooks');
// Exemplo de validação de dados (sem fazer chamada real)
console.log('\n🔍 Exemplo de validação de dados:');
const exampleInvoiceData = {
cityServiceCode: '12345',
description: 'Desenvolvimento de software personalizado',
servicesAmount: 2500.00,
borrower: {
federalTaxNumber: '12345678901',
name: 'Empresa Cliente Ltda',
email: 'contato@cliente.com.br',
address: {
street: 'Av. Paulista, 1000',
neighborhood: 'Bela Vista',
city: { code: '3550308', name: 'São Paulo' },
state: 'SP',
postalCode: '01310-100'
}
}
};
console.log('Dados da nota fiscal:', JSON.stringify(exampleInvoiceData, null, 2));
console.log('\n📋 Fluxo típico de uma nota fiscal:');
console.log('1. Criar nota: POST /companies/{id}/serviceinvoices');
console.log('2. Receber 202 (processamento assíncrono)');
console.log('3. Fazer polling até conclusão');
console.log('4. Baixar PDF/XML quando emitida');
console.log('\n✨ Demonstração concluída com sucesso!');
} catch (error) {
console.error('❌ Erro durante demonstração:', error.message);
}
}
// Executar demonstração
demonstrateSDK();