Skip to content

Commit 3104c67

Browse files
Merge pull request #6 from fadhly-permata/dev
Improves the NuGet package deployment process by adding multiple fallback methods for API key retrieval, including reading from nuget.config or prompting for manual input Updates README with a comprehensive roadmap outlining future features and improvements Bumps package version to 1.0.4 and enables XML documentation generation for better intellisense support
2 parents 55f0127 + a9c084b commit 3104c67

File tree

3 files changed

+61
-5
lines changed

3 files changed

+61
-5
lines changed

JQL.Net.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
<PropertyGroup>
33
<TargetFramework>net8.0</TargetFramework>
44
<PackageId>JQL.Net</PackageId>
5-
<Version>1.0.3</Version>
5+
<Version>1.0.4</Version>
66
<Authors>Fadhly Permata</Authors>
77
<Company>Fadhly Permata</Company>
88
<Description>JQL.Net: A lightweight SQL-inspired engine to query, join, and aggregate JSON in .NET. No database? No problem!</Description>
99
<PackageReadmeFile>README.md</PackageReadmeFile>
1010
<PackageLicenseFile>LICENSE</PackageLicenseFile>
11+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1112
<ImplicitUsings>enable</ImplicitUsings>
1213
<Nullable>enable</Nullable>
1314
<NoWarn>$(NoWarn);S1192</NoWarn>

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,45 @@ HAVING total_cost > d.budget
102102
| `HAVING` | Filter aggregated groups. |
103103
| `ORDER BY`| Sort your output. |
104104

105+
---
106+
107+
## 🗺️ Roadmap & Future Fun
108+
109+
We’re just warming up — the journey has only begun! Here’s a sneak peek at what’s bubbling in the pot for upcoming releases 🍲✨
110+
111+
### ⚡ Core Query Magic
112+
- [ ] **DISTINCT**: Say goodbye to duplicate rows, keep it clean!
113+
- [ ] **Pagination**: Add LIMIT & OFFSET so giant JSON arrays don’t scare you.
114+
- [ ] **Subqueries**: Queries inside queries… inception style 🎬
115+
- [ ] **Set Ops**: UNION & UNION ALL to mix and match results.
116+
- [ ] **Culture-Aware Sorting**: Smarter sorting that respects your locale.
117+
118+
### 🔍 Smarter Filtering
119+
- [ ] **Pattern Matching**: LIKE & REGEX for ninja-level text searches 🥷
120+
- [ ] **Ranges & Sets**: IN and BETWEEN to keep filters simple.
121+
- [ ] **Conditional Logic**: CASE WHEN … THEN … ELSE for dynamic tricks.
122+
- [ ] **Null Safety**: IS NULL & IS MISSING so you don’t trip over empty values.
123+
124+
### 🛠️ Functions Galore
125+
- [ ] **String Toolkit**: CONCAT, UPPER, LOWER, SUBSTRING — the usual suspects.
126+
- [ ] **Date & Time**: YEAR(), MONTH(), DAY() — because time matters ⏰
127+
- [ ] **Type Casting**: CAST() to keep your data in line.
128+
- [ ] **Coalesce**: Grab the first non-null value like a pro.
129+
- [ ] **Custom Functions API**: Plug in your own C# magic directly into queries.
130+
131+
### 🚀 Performance & Integrations
132+
- [ ] **Query Caching**: Faster runs with smart caching.
133+
- [ ] **Prepared Statements**: Cleaner queries with parameters (@id, etc).
134+
- [ ] **Async Execution**: ExecuteAsync for smooth non-blocking vibes.
135+
- [ ] **Schema Discovery**: DESCRIBE your JSON structure like a boss.
136+
- [ ] **Multi-Format Export**: CSV, XML, DataTable — pick your flavor 🍦
137+
- [ ] **Query Profiler**: Spot bottlenecks before they slow you down.
138+
139+
---
140+
141+
💡 *This roadmap is a living list — features may shuffle, evolve, or surprise you along the way. Stay tuned, and let’s keep pushing JSON querying to the next level!* 🚀
142+
143+
105144
---
106145

107146
## 🤝 Contributing

build-and-push.ps1

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,25 @@ dotnet pack $selectedProject --configuration Release --output $outputDir --no-bu
6868
Write-Host "`nSiap untuk terbang ke NuGet?" -ForegroundColor Yellow
6969
$confirmation = Read-Host "Kirim sekarang? (y/n)"
7070
if ($confirmation -eq 'y') {
71-
if ($null -eq $env:NUGET_API_KEY) {
72-
Write-Host "Variabel `$env:NUGET_API_KEY` belum ada di sistem kamu." -ForegroundColor Red
73-
exit 1
71+
# Perbaikan: Coba baca API Key dari file config jika env var tidak ada
72+
$apiKey = $env:NUGET_API_KEY
73+
if ([string]::IsNullOrWhiteSpace($apiKey)) {
74+
Write-Host "Variabel `$env:NUGET_API_KEY tidak ditemukan. Mari coba cara lain..." -ForegroundColor Yellow
75+
76+
# Coba baca dari file nuget.config
77+
$nugetConfigPath = Join-Path $env:USERPROFILE ".nuget\NuGet\NuGet.Config"
78+
if (Test-Path $nugetConfigPath) {
79+
$apiKey = (Get-Content $nugetConfigPath | Select-String "apikey") -replace ".*<add key=""apikey"" value=""(.*)"" />.*", '$1'
80+
}
81+
82+
if ([string]::IsNullOrWhiteSpace($apiKey)) {
83+
# Jika masih kosong, minta input manual
84+
$apiKey = Read-Host "Masukkan API Key NuGet kamu"
85+
if ([string]::IsNullOrWhiteSpace($apiKey)) {
86+
Write-Host "API Key tidak boleh kosong!" -ForegroundColor Red
87+
exit 1
88+
}
89+
}
7490
}
7591

7692
$nupkgFile = Get-ChildItem "$outputDir/*$newVersion.nupkg" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
@@ -81,7 +97,7 @@ if ($confirmation -eq 'y') {
8197
}
8298

8399
Write-Host "Mengirim paket ke NuGet..." -ForegroundColor DarkCyan
84-
dotnet nuget push $nupkgFile.FullName --api-key $env:NUGET_API_KEY --source "https://api.nuget.org/v3/index.json" --skip-duplicate
100+
dotnet nuget push $nupkgFile.FullName --api-key $apiKey --source "https://api.nuget.org/v3/index.json" --skip-duplicate
85101

86102
if ($LASTEXITCODE -eq 0) {
87103
Write-Host "`nHOREEE! Paket kamu sudah mendarat di NuGet!" -ForegroundColor Green -BackgroundColor Black

0 commit comments

Comments
 (0)