lapeh 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/readme.md +5 -2
- package/scripts/check-update.js +87 -0
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lapeh",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Framework API Express yang siap pakai (Standardized)",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"lapeh": "bin/index.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"dev": "nodemon src/index.ts",
|
|
10
|
+
"dev": "node scripts/check-update.js && nodemon src/index.ts",
|
|
11
11
|
"first": "node scripts/init-project.js",
|
|
12
12
|
"build": "tsc",
|
|
13
13
|
"start": "node dist/src/index.js",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"prisma",
|
|
35
35
|
"lapeh-cli"
|
|
36
36
|
],
|
|
37
|
-
"author": "",
|
|
38
|
-
"license": "
|
|
37
|
+
"author": "Roby Karti S <robyfull.dev@gmail.com>",
|
|
38
|
+
"license": "MIT",
|
|
39
39
|
"type": "commonjs",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@prisma/adapter-mariadb": "^7.2.0",
|
package/readme.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
Buat project baru cukup dengan satu perintah:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
npx lapeh
|
|
20
|
+
npx lapeh nama-project-anda
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### Apa yang terjadi otomatis?
|
|
@@ -82,7 +82,10 @@ npm run prisma:generate
|
|
|
82
82
|
# Migrasi Database (Development)
|
|
83
83
|
npm run prisma:migrate
|
|
84
84
|
|
|
85
|
-
#
|
|
85
|
+
# Membuka GUI Database (Prisma Studio)
|
|
86
|
+
npm run db:studio
|
|
87
|
+
|
|
88
|
+
# Migrasi Database Dan Seed (Development - Reset Total default option for development)
|
|
86
89
|
npm run db:reset
|
|
87
90
|
|
|
88
91
|
# Deploy ke Production
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const https = require('https');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
// --- KONFIGURASI ---
|
|
6
|
+
// Ganti URL ini dengan URL raw package.json dari repository GitHub/GitLab Anda
|
|
7
|
+
// Contoh: 'https://raw.githubusercontent.com/username/project-name/main/package.json'
|
|
8
|
+
// Jika package dipublish ke NPM, Anda bisa menggunakan registry NPM.
|
|
9
|
+
const REPO_VERSION_URL = 'https://registry.npmjs.org/lapeh/latest';
|
|
10
|
+
const TIMEOUT = 2000; // Timeout 2 detik agar tidak terlalu lama menunggu
|
|
11
|
+
|
|
12
|
+
const packageJson = require('../package.json');
|
|
13
|
+
const currentVersion = packageJson.version;
|
|
14
|
+
|
|
15
|
+
function checkForUpdates() {
|
|
16
|
+
if (!REPO_VERSION_URL) return;
|
|
17
|
+
|
|
18
|
+
const req = https.get(REPO_VERSION_URL, {
|
|
19
|
+
headers: { 'User-Agent': 'NodeJS Update Checker' },
|
|
20
|
+
timeout: TIMEOUT
|
|
21
|
+
}, (res) => {
|
|
22
|
+
let data = '';
|
|
23
|
+
|
|
24
|
+
if (res.statusCode !== 200) {
|
|
25
|
+
// Silent fail jika URL tidak bisa diakses
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
res.on('data', (chunk) => {
|
|
30
|
+
data += chunk;
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
res.on('end', () => {
|
|
34
|
+
try {
|
|
35
|
+
const remoteJson = JSON.parse(data);
|
|
36
|
+
// Jika cek ke NPM, version ada di root object atau 'version'
|
|
37
|
+
// Jika cek ke raw github, structure sama dengan package.json
|
|
38
|
+
const latestVersion = remoteJson.version || remoteJson['dist-tags']?.latest;
|
|
39
|
+
|
|
40
|
+
if (latestVersion && isNewer(latestVersion, currentVersion)) {
|
|
41
|
+
showUpdateMessage(latestVersion, currentVersion);
|
|
42
|
+
}
|
|
43
|
+
} catch (e) {
|
|
44
|
+
// Ignore parsing errors
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
req.on('error', (e) => {
|
|
50
|
+
// Ignore network errors
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
req.end();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function isNewer(latest, current) {
|
|
57
|
+
const lParts = latest.split('.').map(Number);
|
|
58
|
+
const cParts = current.split('.').map(Number);
|
|
59
|
+
|
|
60
|
+
for (let i = 0; i < 3; i++) {
|
|
61
|
+
if (lParts[i] > cParts[i]) return true;
|
|
62
|
+
if (lParts[i] < cParts[i]) return false;
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function showUpdateMessage(latest, current) {
|
|
68
|
+
const reset = "\x1b[0m";
|
|
69
|
+
const bright = "\x1b[1m";
|
|
70
|
+
const fgYellow = "\x1b[33m";
|
|
71
|
+
const fgCyan = "\x1b[36m";
|
|
72
|
+
|
|
73
|
+
console.log('\n');
|
|
74
|
+
console.log(`${fgYellow}┌─────────────────────────────────────────────────────────────┐${reset}`);
|
|
75
|
+
console.log(`${fgYellow}│ │${reset}`);
|
|
76
|
+
console.log(`${fgYellow}│ ${bright}UPDATE FRAMEWORK TERSEDIA!${reset}${fgYellow} │${reset}`);
|
|
77
|
+
console.log(`${fgYellow}│ │${reset}`);
|
|
78
|
+
console.log(`${fgYellow}│ Versi Lokal : ${fgCyan}${current}${reset}${fgYellow} │${reset}`);
|
|
79
|
+
console.log(`${fgYellow}│ Versi Terbaru : ${fgCyan}${latest}${reset}${fgYellow} │${reset}`);
|
|
80
|
+
console.log(`${fgYellow}│ │${reset}`);
|
|
81
|
+
console.log(`${fgYellow}│ Silakan cek repository untuk melihat perubahan terbaru. │${reset}`);
|
|
82
|
+
console.log(`${fgYellow}│ │${reset}`);
|
|
83
|
+
console.log(`${fgYellow}└─────────────────────────────────────────────────────────────┘${reset}`);
|
|
84
|
+
console.log('\n');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
checkForUpdates();
|