Skip to content

Commit

Permalink
refactor: turn top level app/www to ts
Browse files Browse the repository at this point in the history
BREAKING CHANGE: drop CONFIG_FILE support, please use env variable config items
  • Loading branch information
rocwind committed Feb 8, 2022
1 parent e3ad514 commit 76d8898
Show file tree
Hide file tree
Showing 28 changed files with 213 additions and 122 deletions.
2 changes: 1 addition & 1 deletion docs/install-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ $ code-push-server-db init --dbhost "your mysql host" --dbport "your mysql port"
## Configure code-push-server

check out the supported config items in [config.js](../src/config.js)
check out the supported config items in [config.ts](../src/core/config.ts)

save the file [process.json](../process.json) for PM2, and add your config items to `"env"`

Expand Down
97 changes: 94 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
"helmet": "5.0.2",
"jschardet": "3.0.0",
"jsonwebtoken": "8.5.1",
"kv-logger": "0.4.0",
"kv-logger": "0.4.1",
"lodash": "4.17.21",
"moment": "2.29.1",
"mysql2": "2.3.3",
Expand All @@ -72,6 +72,10 @@
},
"devDependencies": {
"@shm-open/eslint-config-bundle": "1.8.1",
"@types/body-parser": "1.19.2",
"@types/cookie-parser": "1.4.2",
"@types/lodash": "4.14.178",
"@types/validator": "13.7.1",
"concurrently": "7.0.0",
"mocha": "9.2.0",
"should": "13.2.3",
Expand Down
25 changes: 12 additions & 13 deletions src/app.js → src/app.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const helmet = require('helmet');
const _ = require('lodash');
const fs = require('fs');
const { logger } = require('kv-logger');
import express from 'express';
import path from 'path';
import cookieParser from 'cookie-parser';
import bodyParser from 'body-parser';
import helmet from 'helmet';
import _ from 'lodash';
import fs from 'fs';
import { logger } from 'kv-logger';

import { config } from './core/config';

const config = require('./core/config');
const routes = require('./routes/index');
const indexV1 = require('./routes/indexV1');
const auth = require('./routes/auth');
Expand All @@ -17,7 +18,7 @@ const users = require('./routes/users');
const apps = require('./routes/apps');
const { AppError, NotFound } = require('./core/app-error');

const app = express();
export const app = express();

app.use(
helmet({
Expand Down Expand Up @@ -58,7 +59,7 @@ if (_.get(config, 'common.storageType') === 'local') {
}
try {
logger.debug('checking storageDir fs.W_OK | fs.R_OK');
fs.accessSync(localStorageDir, fs.W_OK | fs.R_OK);
fs.accessSync(localStorageDir, fs.constants.W_OK | fs.constants.R_OK);
logger.debug('storageDir fs.W_OK | fs.R_OK is ok');
} catch (e) {
logger.error(e);
Expand Down Expand Up @@ -96,5 +97,3 @@ app.use(function (err, req, res, next) {
logger.error(err);
}
});

module.exports = app;
30 changes: 0 additions & 30 deletions src/core/config.js

This file was deleted.

25 changes: 19 additions & 6 deletions src/config.js → src/core/config.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
const os = require('os');
import os from 'os';
import { setLogTransports, ConsoleTransport, LogLevelFilter, logger } from 'kv-logger';

function toBool(str) {
function toBool(str: string): boolean {
return str === 'true' || str === '1';
}

function toNumber(str, defaultValue) {
function toNumber(str: string, defaultValue: number): number {
var num = Number(str);
if (Number.isNaN(num)) {
return defaultValue;
}
return num;
}

const config = {
export const config = {
// Config for log
log: {
// debug, info, warn, error
Expand Down Expand Up @@ -148,6 +149,18 @@ const config = {
return Math.max(options.attempt * 100, 3000);
},
},
};
} as const;

module.exports = config;
// config logger - make sure its ready before anyting else
setLogTransports([
new LogLevelFilter(
new ConsoleTransport(config.log.format as 'text' | 'json'),
config.log.level as 'error' | 'warn' | 'info' | 'debug',
),
]);

const env = process.env.NODE_ENV || 'development';
logger.info(`use config`, {
env: env,
storageType: config.common.storageType,
});
2 changes: 1 addition & 1 deletion src/core/middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ var security = require('../core/utils/security');
var models = require('../models');
var moment = require('moment');
var AppError = require('./app-error');
const { config } = require('../core/config');

var middleware = module.exports;

Expand Down Expand Up @@ -42,7 +43,6 @@ var checkAccessToken = function (accessToken) {
if (_.isEmpty(accessToken)) {
return reject(new AppError.Unauthorized());
}
var config = require('../core/config');
var tokenSecret = _.get(config, 'jwt.tokenSecret');
var jwt = require('jsonwebtoken');
try {
Expand Down
2 changes: 1 addition & 1 deletion src/core/services/account-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ var security = require('../utils/security');
var factory = require('../utils/factory');
var moment = require('moment');
var EmailManager = require('./email-manager');
var config = require('../config');
var { config } = require('../config');
var AppError = require('../app-error');

var proto = (module.exports = function () {
Expand Down
2 changes: 1 addition & 1 deletion src/core/services/client-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ var _ = require('lodash');
var common = require('../utils/common');
var factory = require('../utils/factory');
var AppError = require('../app-error');
var config = require('../config');
var { config } = require('../config');
var { logger } = require('kv-logger');
var Sequelize = require('sequelize');

Expand Down
6 changes: 2 additions & 4 deletions src/core/services/datacenter-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const CONTENTS_NAME = 'contents';
var AppError = require('../app-error');
var { logger } = require('kv-logger');
var path = require('path');
const { config } = require('../config');

var proto = (module.exports = function () {
function DataCenterManager() {}
Expand All @@ -17,10 +18,7 @@ var proto = (module.exports = function () {
});

proto.getDataDir = function () {
var dataDir = _.get(require('../config'), 'common.dataDir', {});
if (_.isEmpty(dataDir)) {
dataDir = os.tmpdir();
}
var dataDir = _.get(config, 'common.dataDir', {});
return dataDir;
};

Expand Down
2 changes: 1 addition & 1 deletion src/core/services/email-manager.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';
var _ = require('lodash');
var nodemailer = require('nodemailer');
var config = require('../config');
var { config } = require('../config');

var proto = (module.exports = function () {
function EmailManager() {}
Expand Down
1 change: 0 additions & 1 deletion src/core/services/package-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
var models = require('../../models');
var security = require('../utils/security');
var _ = require('lodash');
var qetag = require('../utils/qetag');
var formidable = require('formidable');
var yazl = require('yazl');
var fs = require('fs');
Expand Down
2 changes: 1 addition & 1 deletion src/core/utils/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const util = require('util');
const streamPipeline = util.promisify(require('stream').pipeline);
const fetch = require('node-fetch');

var config = require('../config');
const { config } = require('../config');
var AppError = require('../app-error');

var { logger } = require('kv-logger');
Expand Down
5 changes: 2 additions & 3 deletions src/core/utils/factory.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
'use strict';
const util = require('util');
const redis = require('redis');
const config = require('../config');
const _ = require('lodash');
const { config } = require('../config');

const factory = {};
module.exports = factory;

factory.getRedisClient = function () {
const client = redis.createClient(_.get(config, 'redis'));
const client = redis.createClient(config.redis);
return {
del: util.promisify(client.del).bind(client),
exists: util.promisify(client.exists).bind(client),
Expand Down
Loading

0 comments on commit 76d8898

Please sign in to comment.