mirror of
https://github.com/engineer-man/piston.git
synced 2025-05-13 23:26:27 +02:00
fix: added incremental typing to piston
This commit is contained in:
parent
593f59a184
commit
2962e0cf99
14 changed files with 1039 additions and 1318 deletions
|
@ -1,72 +1,71 @@
|
|||
#!/usr/bin/env node
|
||||
require('nocamel');
|
||||
const Logger = require('logplease');
|
||||
const express = require('express');
|
||||
const expressWs = require('express-ws');
|
||||
const globals = require('./globals');
|
||||
const config = require('./config');
|
||||
const path = require('path');
|
||||
const fs = require('fs/promises');
|
||||
const fss = require('fs');
|
||||
const body_parser = require('body-parser');
|
||||
const runtime = require('./runtime');
|
||||
import { create, setLogLevel } from 'logplease';
|
||||
import express from 'express';
|
||||
import expressWs from 'express-ws';
|
||||
import * as globals from './globals';
|
||||
import config from './config';
|
||||
import { join } from 'path';
|
||||
import { readdir } from 'fs/promises';
|
||||
import { existsSync, mkdirSync, chmodSync } from 'fs';
|
||||
import { urlencoded, json } from 'body-parser';
|
||||
import { load_package } from './runtime';
|
||||
|
||||
const logger = Logger.create('index');
|
||||
const logger = create('index', {});
|
||||
const app = express();
|
||||
expressWs(app);
|
||||
|
||||
(async () => {
|
||||
logger.info('Setting loglevel to', config.log_level);
|
||||
Logger.setLogLevel(config.log_level);
|
||||
logger.info('Setting loglevel to');
|
||||
// @ts-ignore
|
||||
setLogLevel(config.log_level);
|
||||
logger.debug('Ensuring data directories exist');
|
||||
|
||||
Object.values(globals.data_directories).for_each(dir => {
|
||||
let data_path = path.join(config.data_directory, dir);
|
||||
Object.values(globals.data_directories).forEach(dir => {
|
||||
let data_path = join(config.data_directory, dir);
|
||||
|
||||
logger.debug(`Ensuring ${data_path} exists`);
|
||||
|
||||
if (!fss.exists_sync(data_path)) {
|
||||
if (!existsSync(data_path)) {
|
||||
logger.info(`${data_path} does not exist.. Creating..`);
|
||||
|
||||
try {
|
||||
fss.mkdir_sync(data_path);
|
||||
mkdirSync(data_path);
|
||||
} catch (e) {
|
||||
logger.error(`Failed to create ${data_path}: `, e.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
fss.chmodSync(path.join(config.data_directory, globals.data_directories.jobs), 0o711)
|
||||
chmodSync(join(config.data_directory, globals.data_directories.jobs), 0o711)
|
||||
|
||||
logger.info('Loading packages');
|
||||
const pkgdir = path.join(
|
||||
const pkgdir = join(
|
||||
config.data_directory,
|
||||
globals.data_directories.packages
|
||||
);
|
||||
|
||||
const pkglist = await fs.readdir(pkgdir);
|
||||
const pkglist = await readdir(pkgdir);
|
||||
|
||||
const languages = await Promise.all(
|
||||
pkglist.map(lang => {
|
||||
return fs.readdir(path.join(pkgdir, lang)).then(x => {
|
||||
return x.map(y => path.join(pkgdir, lang, y));
|
||||
});
|
||||
pkglist.map(async lang => {
|
||||
const x = await readdir(join(pkgdir, lang));
|
||||
return x.map(y => join(pkgdir, lang, y));
|
||||
})
|
||||
);
|
||||
|
||||
const installed_languages = languages
|
||||
.flat()
|
||||
.filter(pkg =>
|
||||
fss.exists_sync(path.join(pkg, globals.pkg_installed_file))
|
||||
existsSync(join(pkg, globals.pkg_installed_file))
|
||||
);
|
||||
|
||||
installed_languages.for_each(pkg => runtime.load_package(pkg));
|
||||
installed_languages.forEach(pkg => load_package(pkg));
|
||||
|
||||
logger.info('Starting API Server');
|
||||
logger.debug('Constructing Express App');
|
||||
logger.debug('Registering middleware');
|
||||
|
||||
app.use(body_parser.urlencoded({ extended: true }));
|
||||
app.use(body_parser.json());
|
||||
app.use(urlencoded({ extended: true }));
|
||||
app.use(json());
|
||||
|
||||
app.use((err, req, res, next) => {
|
||||
return res.status(400).send({
|
||||
|
@ -76,7 +75,7 @@ expressWs(app);
|
|||
|
||||
logger.debug('Registering Routes');
|
||||
|
||||
const api_v2 = require('./api/v2');
|
||||
const api_v2 = require('./api/v2').default;
|
||||
app.use('/api/v2', api_v2);
|
||||
|
||||
app.use((req, res, next) => {
|
||||
|
@ -86,7 +85,7 @@ expressWs(app);
|
|||
logger.debug('Calling app.listen');
|
||||
const [address, port] = config.bind_address.split(':');
|
||||
|
||||
app.listen(port, address, () => {
|
||||
app.listen(+port, address, () => {
|
||||
logger.info('API server started on', config.bind_address);
|
||||
});
|
||||
})();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue