create-dacosta-proj 1.0.26 → 1.0.28

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-dacosta-proj",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "bin": {
5
5
  "create-dacosta-proj": "./index.js"
6
6
  }
@@ -26,6 +26,7 @@ const targets = new Array(servers).fill().map((_, server) => {
26
26
  password: process.env[`DEPLOY_${server+1}_PASSWORD`],
27
27
  path: process.env[`DEPLOY_${server+1}_PATH`],
28
28
  src: process.env[`DEPLOY_${server+1}_PM2_SRC`],
29
+ nodejs: process.env[`DEPLOY_${server+1}_NODEJS`],
29
30
  pm2,
30
31
  };
31
32
  });
@@ -74,8 +75,15 @@ async function restartOn(server) {
74
75
  console.error(` ✗ ${name} — ${result.stderr || result.stdout}`);
75
76
  }
76
77
  } else {
78
+
79
+ if (server.nodejs) {
80
+ const node = await ssh.execCommand(withNvm(`nvm ls ${server.nodejs} > /dev/null 2>&1 || nvm install ${server.nodejs}`));
81
+ if (node.code === 0) console.log(` ✓ node ${server.nodejs}`);
82
+ else console.error(` ✗ node ${server.nodejs} — ${node.stderr || node.stdout}`);
83
+ }
84
+
77
85
  const result = await ssh.execCommand(
78
- withNvm(`${args ? `${args} ` : ''}pm2 start ${server.src} --name "${name}" --log-date-format "YYYY-MM-DD HH:mm"`),
86
+ withNvm(`${server.nodejs ? `nvm use ${server.nodejs} && ` : ''}${args ? `${args} ` : ''}pm2 start ${server.src} --name "${name}" --log-date-format "YYYY-MM-DD HH:mm" --interpreter $(which node)`),
79
87
  { cwd: server.path }
80
88
  );
81
89
  if (result.code === 0) {
@@ -14,6 +14,7 @@ DEPLOY_1_PM2_SRC=src/index.js
14
14
  DEPLOY_1_PM2_ARGS= # Optional
15
15
  # EXAMPLE 1: DEPLOY_1_PM2_ARGS=PROJECT_INSTANCE_ID=1 PROJECT_INSTANCE_TYPE=video
16
16
  # EXAMPLE 2: DEPLOY_1_PM2_ARGS=PROJECT_INSTANCE_ID=1 PROJECT_INSTANCE_TYPE=video;PROJECT_INSTANCE_ID=1 PROJECT_INSTANCE_TYPE=live
17
+ DEPLOY_1_NODEJS=22.22.3
17
18
 
18
19
  # Supabase
19
20
 
@@ -6,6 +6,7 @@ const { SimpleSupabase } = require('simple-supabase');
6
6
  const { createClient: createSupabaseClient } = require('@supabase/supabase-js');
7
7
  const { createClient: createRedisClient } = require('redis');
8
8
  const redisLock = require('@/helpers/redisLock');
9
+ const wait = require('./wait');
9
10
 
10
11
  module.exports = async () => {
11
12
 
@@ -27,7 +28,17 @@ module.exports = async () => {
27
28
  // Redis
28
29
 
29
30
  const redis = createRedisClient();
30
- await redis.connect();
31
+ try {
32
+ await redis.connect();
33
+ while (true) {
34
+ try { await redis.ping(); break; }
35
+ catch (err) {
36
+ if (!err?.message?.includes('LOADING')) throw err;
37
+ await wait(500);
38
+ }
39
+ }
40
+ }
41
+ catch (err) { console.log('Redis Failed', err); return; }
31
42
 
32
43
  global.redis = redis;
33
44
  global.redisLock = redisLock(redis);