serverpreconfigured 1.2.0 → 2.0.0
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/.sequelizercproj +6 -0
- package/dist/settings/database/database.d.ts +1 -1
- package/dist/settings/env.d.ts +1 -1
- package/dist/settings/env.js +14 -1
- package/install.js +100 -0
- package/package.json +11 -2
- package/spc_envfile.json +5 -0
- package/src/settings/env.ts +10 -1
package/.sequelizercproj
ADDED
package/dist/settings/env.d.ts
CHANGED
package/dist/settings/env.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const custom_env_path = path_1.default.join(process.cwd(), "spc_envfile.json");
|
|
9
|
+
var custom_env = {};
|
|
10
|
+
try {
|
|
11
|
+
custom_env = JSON.parse(fs_1.default.readFileSync(custom_env_path).toString());
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
custom_env = {};
|
|
15
|
+
}
|
|
3
16
|
const ENV = {
|
|
4
17
|
NODE_ENV: process.env.SERVER_ENV == 'development' ? 'development' : 'production',
|
|
5
18
|
ALLOW_CORS: process.env.ALLOW_CORS == 'ALLOW' ? true : false,
|
|
@@ -7,7 +20,7 @@ const ENV = {
|
|
|
7
20
|
DATABASE: {
|
|
8
21
|
dialect: process.env.DATABASE_DIALECT ? process.env.DATABASE_DIALECT : 'postgres',
|
|
9
22
|
host: process.env.DATABASE_HOST ? process.env.DATABASE_HOST : 'localhost',
|
|
10
|
-
database:
|
|
23
|
+
database: (custom_env.DATABASE && custom_env.DATABASE.DATABASE) || (process.env.DATABASE_DATABASE || 'postgres'),
|
|
11
24
|
username: process.env.DATABASE_USERNAME ? process.env.DATABASE_USERNAME : 'postgres',
|
|
12
25
|
password: process.env.DATABASE_PASSWORD ? process.env.DATABASE_PASSWORD : '',
|
|
13
26
|
},
|
package/install.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const LIB_SEQUELIZE_FILENAME=".sequelizercproj";
|
|
3
|
+
const PROJECT_SEQUELIZE_FILENAME=".sequelizerc";
|
|
4
|
+
const MIGRATIONS_PATH="migrations";
|
|
5
|
+
const LIB_DIR=__dirname;
|
|
6
|
+
const PROJECT_DIR=process.cwd();
|
|
7
|
+
const CUSTOMENV_FILENAME="spc_envfile.json";
|
|
8
|
+
const fs=require("fs");
|
|
9
|
+
const path=require("path");
|
|
10
|
+
const color=require('colors-cli');
|
|
11
|
+
const PRINTWARNING=color.yellow;
|
|
12
|
+
const PRINTERROR=color.red;
|
|
13
|
+
const PRINTOK=color.green;
|
|
14
|
+
(async()=>{
|
|
15
|
+
try{
|
|
16
|
+
console.log(PRINTWARNING("START UPDATING MIGRATIONS FILE"));
|
|
17
|
+
await updateMigrations();
|
|
18
|
+
console.log(PRINTOK("MIGRATIONS FILE UPDATED"))
|
|
19
|
+
}catch(e){
|
|
20
|
+
console.log(PRINTERROR("UPDATE MIGRATIONS FILE ERROR"));
|
|
21
|
+
console.log(e);
|
|
22
|
+
}
|
|
23
|
+
try{
|
|
24
|
+
console.log(PRINTWARNING("START COPY SEQUELIZERC FILE IF NOT EXISTS"));
|
|
25
|
+
await copySequelizeRcFile();
|
|
26
|
+
console.log(PRINTOK("COPY SEQUELIZERCFILE OK"));
|
|
27
|
+
}catch(e){
|
|
28
|
+
console.log(PRINTERROR("COPY SEQUELIZERCFILE ERROR"));
|
|
29
|
+
console.log(e);
|
|
30
|
+
}
|
|
31
|
+
try{
|
|
32
|
+
console.log(PRINTWARNING("COPY CUSTOM ENV FILE IF NOT EXISTS"));
|
|
33
|
+
await copyCustomEnvFile();
|
|
34
|
+
console.log(PRINTOK("COPY CUSTOM ENV FILE OK"));
|
|
35
|
+
}catch(e){
|
|
36
|
+
console.log(PRINTERROR("COPY CUSTOM ENV FILE ERROR"));
|
|
37
|
+
console.log(e);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
})()
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
async function updateMigrations(){
|
|
44
|
+
try{
|
|
45
|
+
await createPath();
|
|
46
|
+
await copyFiles();
|
|
47
|
+
}catch(e){
|
|
48
|
+
throw e;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async function createPath(){
|
|
52
|
+
try{
|
|
53
|
+
if(fs.existsSync(getProjectMigrationDirPath())){
|
|
54
|
+
return true;
|
|
55
|
+
}else{
|
|
56
|
+
fs.mkdirSync(getProjectMigrationDirPath());
|
|
57
|
+
}
|
|
58
|
+
}catch(e){
|
|
59
|
+
throw e;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function copyFiles(){
|
|
63
|
+
const files=fs.readdirSync(getLibMigrationDirPath());
|
|
64
|
+
for(let file of files){
|
|
65
|
+
const projectFileName=path.join(getProjectMigrationDirPath(),file);
|
|
66
|
+
if(fs.existsSync(projectFileName))
|
|
67
|
+
continue;
|
|
68
|
+
const libFileName=path.join(getLibMigrationDirPath(),file);
|
|
69
|
+
fs.copyFileSync(libFileName,projectFileName);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function getProjectMigrationDirPath(){
|
|
73
|
+
return path.join(PROJECT_DIR,MIGRATIONS_PATH);
|
|
74
|
+
}
|
|
75
|
+
function getLibMigrationDirPath(){
|
|
76
|
+
return path.join(LIB_DIR,MIGRATIONS_PATH);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async function copySequelizeRcFile(){
|
|
80
|
+
try{
|
|
81
|
+
const proj_seq=path.join(PROJECT_DIR,PROJECT_SEQUELIZE_FILENAME);
|
|
82
|
+
if(fs.existsSync(proj_seq))
|
|
83
|
+
return;
|
|
84
|
+
const lib_seq=path.join(LIB_DIR,LIB_SEQUELIZE_FILENAME);
|
|
85
|
+
fs.copyFileSync(lib_seq,proj_seq);
|
|
86
|
+
}catch(e){
|
|
87
|
+
throw e;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async function copyCustomEnvFile(){
|
|
91
|
+
try{
|
|
92
|
+
const proj_env_custom_filename=path.join(PROJECT_DIR,CUSTOMENV_FILENAME);
|
|
93
|
+
if(fs.existsSync(proj_env_custom_filename))
|
|
94
|
+
return;
|
|
95
|
+
const lib_env_custom_filename=path.join(LIB_DIR,CUSTOMENV_FILENAME);
|
|
96
|
+
fs.copyFileSync(lib_env_custom_filename,proj_env_custom_filename);
|
|
97
|
+
}catch(e){
|
|
98
|
+
throw e;
|
|
99
|
+
}
|
|
100
|
+
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serverpreconfigured",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "\"Pre-configured server with authentication system and database integration\"",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
|
-
"keywords": [
|
|
6
|
+
"keywords": [
|
|
7
|
+
"server",
|
|
8
|
+
"pre configured",
|
|
9
|
+
"database",
|
|
10
|
+
"authentication"
|
|
11
|
+
],
|
|
7
12
|
"type": "commonjs",
|
|
13
|
+
"bin": {
|
|
14
|
+
"serverpreconfigured": "./install.js"
|
|
15
|
+
},
|
|
8
16
|
"scripts": {
|
|
9
17
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
10
18
|
"start": "node ./dist/server.js",
|
|
@@ -18,6 +26,7 @@
|
|
|
18
26
|
"@types/express-session": "^1.17.4",
|
|
19
27
|
"argon2": "^0.28.5",
|
|
20
28
|
"body-parser": "^1.19.2",
|
|
29
|
+
"colors-cli": "^1.0.28",
|
|
21
30
|
"cors": "^2.8.5",
|
|
22
31
|
"express": "^4.17.3",
|
|
23
32
|
"express-session": "^1.17.2",
|
package/spc_envfile.json
ADDED
package/src/settings/env.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
const custom_env_path=path.join(process.cwd(),"spc_envfile.json");
|
|
4
|
+
var custom_env:any={};
|
|
5
|
+
try{
|
|
6
|
+
custom_env=JSON.parse(fs.readFileSync(custom_env_path).toString());
|
|
7
|
+
}catch(e){
|
|
8
|
+
custom_env={};
|
|
9
|
+
}
|
|
1
10
|
const ENV={
|
|
2
11
|
NODE_ENV:process.env.SERVER_ENV=='development'?'development':'production',
|
|
3
12
|
ALLOW_CORS:process.env.ALLOW_CORS=='ALLOW'?true:false,
|
|
@@ -5,7 +14,7 @@ const ENV={
|
|
|
5
14
|
DATABASE:{
|
|
6
15
|
dialect:process.env.DATABASE_DIALECT?process.env.DATABASE_DIALECT:'postgres',
|
|
7
16
|
host:process.env.DATABASE_HOST?process.env.DATABASE_HOST:'localhost',
|
|
8
|
-
database:
|
|
17
|
+
database:(custom_env.DATABASE&&custom_env.DATABASE.DATABASE)||(process.env.DATABASE_DATABASE||'postgres'),
|
|
9
18
|
username:process.env.DATABASE_USERNAME?process.env.DATABASE_USERNAME:'postgres',
|
|
10
19
|
password:process.env.DATABASE_PASSWORD?process.env.DATABASE_PASSWORD:'',
|
|
11
20
|
},
|