diff --git a/src/cli.ts b/src/cli.ts index 46513106..11352edc 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -12,10 +12,11 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ +import {Logger} from '@openstapps/logger'; import * as commander from 'commander'; import {existsSync, readFileSync, writeFileSync} from 'fs'; import {join, resolve} from 'path'; -import {getProjectReflection, logger, mkdirPromisified, readFilePromisified} from './common'; +import {getProjectReflection, mkdirPromisified, readFilePromisified} from './common'; import {pack} from './pack'; import {gatherRouteInformation, generateDocumentationForRoute, getNodeMetaInformationMap} from './routes'; import {Converter, getValidatableTypesFromReflection} from './schema'; @@ -23,8 +24,8 @@ import {validateFiles, writeReport} from './validate'; // handle unhandled promise rejections process.on('unhandledRejection', (error: Error) => { - logger.error(error.message); - logger.info(error.stack); + Logger.error(error.message); + Logger.info(error.stack); process.exit(1); }); @@ -55,7 +56,7 @@ commander // write documentation to file writeFileSync(mdPath, output); - logger.ok(`Route documentation written to ${mdPath}.`); + Logger.ok(`Route documentation written to ${mdPath}.`); }); commander @@ -74,13 +75,13 @@ commander // get validatable types const validatableTypes = getValidatableTypesFromReflection(projectReflection); - logger.info(`Found ${validatableTypes.length} type(s) to generate schemas for.`); + Logger.info(`Found ${validatableTypes.length} type(s) to generate schemas for.`); await mkdirPromisified(schemaPath, { recursive: true, }); - logger.info(`Trying to find a package.json for ${srcPath}.`); + Logger.info(`Trying to find a package.json for ${srcPath}.`); let path = srcPath; // TODO: this check should be less ugly! @@ -90,13 +91,13 @@ commander const corePackageJsonPath = join(path, 'package.json'); - logger.info(`Using ${corePackageJsonPath} to determine version for schemas.`); + Logger.info(`Using ${corePackageJsonPath} to determine version for schemas.`); const buffer = await readFilePromisified(corePackageJsonPath); const corePackageJson = JSON.parse(buffer.toString()); const coreVersion = corePackageJson.version; - logger.log(`Using ${coreVersion} as version for schemas.`); + Logger.log(`Using ${coreVersion} as version for schemas.`); // generate and write JSONSchema files for validatable types validatableTypes.forEach((type) => { @@ -109,10 +110,10 @@ commander // write schema to file writeFileSync(file, stringifiedSchema); - logger.info(`Generated schema for ${type} and saved to ${file}.`); + Logger.info(`Generated schema for ${type} and saved to ${file}.`); }); - logger.ok(`Generated schemas for ${validatableTypes.length} type(s).`); + Logger.ok(`Generated schemas for ${validatableTypes.length} type(s).`); }); commander @@ -135,9 +136,9 @@ commander } if (!unexpected) { - logger.ok('Successfully finished validation.'); + Logger.ok('Successfully finished validation.'); } else { - logger.error('Unexpected errors occurred during validation'); + Logger.error('Unexpected errors occurred during validation'); process.exit(1); } }); diff --git a/src/common.ts b/src/common.ts index aa3fd42c..532a0e67 100644 --- a/src/common.ts +++ b/src/common.ts @@ -22,8 +22,6 @@ import {Definition} from 'ts-json-schema-generator'; import {Application, ProjectReflection} from 'typedoc'; import {promisify} from 'util'; -export const logger = new Logger(); - export const globPromisified = promisify(glob); export const mkdirPromisified = promisify(mkdir); export const readFilePromisified = promisify(readFile); @@ -116,7 +114,7 @@ export interface ExpectableValidationErrors { * @param srcPath Path to get reflection from */ export function getProjectReflection(srcPath: PathLike): ProjectReflection { - logger.info(`Generating project reflection for ${srcPath.toString()}.`); + Logger.info(`Generating project reflection for ${srcPath.toString()}.`); const tsconfigPath = getTsconfigPath(srcPath.toString()); @@ -178,7 +176,7 @@ export function getTsconfigPath(startPath: string): string { tsconfigPath = tsconfigPathParts.join(sep); } - logger.info(`Using 'tsconfig.json' from ${tsconfigPath}.`); + Logger.info(`Using 'tsconfig.json' from ${tsconfigPath}.`); return tsconfigPath; } diff --git a/src/pack.ts b/src/pack.ts index 92709573..8149bd2b 100644 --- a/src/pack.ts +++ b/src/pack.ts @@ -12,11 +12,12 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ +import {Logger} from '@openstapps/logger'; import * as del from 'del'; import {existsSync} from 'fs'; import {basename, dirname, join} from 'path'; import {cwd} from 'process'; -import {globPromisified, logger, readFilePromisified, unlinkPromisified, writeFilePromisified} from './common'; +import {globPromisified, readFilePromisified, unlinkPromisified, writeFilePromisified} from './common'; const PACK_IDENTIFIER = '/* PACKED BY @openstapps/pack */'; @@ -60,7 +61,7 @@ async function packCliJs(): Promise { return; } - logger.info('Adjusting JavaScript CLI...'); + Logger.info('Adjusting JavaScript CLI...'); const buffer = await readFilePromisified(path); const content = buffer.toString(); @@ -137,7 +138,7 @@ async function getAllTypeDefinitions(): Promise { * Pack a list of type definitions into one file */ async function packTypeDefinitions(): Promise { - logger.info('Packing TypeScript definition files...'); + Logger.info('Packing TypeScript definition files...'); const path = join(cwd(), 'lib', 'index.d.ts'); @@ -251,7 +252,7 @@ async function getAllJavaScriptModules(): Promise { async function packJavaScriptFiles(): Promise { const path = join(cwd(), 'lib', 'index.js'); - logger.info('Packing JavaScript files...'); + Logger.info('Packing JavaScript files...'); await deleteFileIfExistingAndPacked(path); @@ -293,7 +294,7 @@ async function packJavaScriptFiles(): Promise { return whiteSpace + 'const ' + importedName + ' = require(\'../src/' + modulePath + '\');'; } - logger.warn('Import ' + importedName + ' could not be found in module.directory ' + modulePath); + Logger.warn('Import ' + importedName + ' could not be found in module.directory ' + modulePath); } return line; @@ -350,7 +351,7 @@ async function deleteFileIfExistingAndPacked(path: string): Promise { // check if packed by this script if (content.indexOf(PACK_IDENTIFIER) === 0) { - logger.log('Found `' + path + '` which is packed by this script. Deleting it...'); + Logger.log('Found `' + path + '` which is packed by this script. Deleting it...'); return await unlinkPromisified(path); } } catch (err) { @@ -427,7 +428,7 @@ function topologicalSort(modules: JavaScriptModule[]): JavaScriptModule[] { * Pack */ export async function pack() { - logger.log(`Packing project in ${process.cwd()}...`); + Logger.log(`Packing project in ${process.cwd()}...`); // run all tasks in parallel const promises: Array> = [ @@ -439,7 +440,7 @@ export async function pack() { await Promise.all(promises); // clean up afterwards - logger.info('Deleting extraneous files...'); + Logger.info('Deleting extraneous files...'); await del([ // delete all transpiled files diff --git a/src/routes.ts b/src/routes.ts index d86648cc..e9e50756 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -13,8 +13,9 @@ * this program. If not, see . */ import {asyncPool} from '@krlwlfrt/async-pool'; +import {Logger} from '@openstapps/logger'; import {ProjectReflection} from 'typedoc'; -import {logger, NodesWithMetaInformation, NodeWithMetaInformation, RouteWithMetaInformation} from './common'; +import {NodesWithMetaInformation, NodeWithMetaInformation, RouteWithMetaInformation} from './common'; /** * Gather relevant information of routes @@ -38,11 +39,11 @@ export async function gatherRouteInformation(reflection: ProjectReflection): Pro if (node.extendedTypes.some((extendedType) => { return (extendedType as any).name === 'SCAbstractRoute'; })) { - logger.info(`Found ${node.name} in ${module.originalName}.`); + Logger.info(`Found ${node.name} in ${module.originalName}.`); if (module.originalName.match(/\.d\.ts$/)) { module.originalName = module.originalName.substr(0, module.originalName.length - 5); - logger.info(`Using compiled version of module in ${module.originalName}.`); + Logger.info(`Using compiled version of module in ${module.originalName}.`); } const importedModule = await import(module.originalName); diff --git a/src/validate.ts b/src/validate.ts index fe48ba3b..d6a03b24 100644 --- a/src/validate.ts +++ b/src/validate.ts @@ -13,6 +13,7 @@ * this program. If not, see . */ import {asyncPool} from '@krlwlfrt/async-pool'; +import {Logger} from '@openstapps/logger'; import {PathLike} from 'fs'; import {Schema, Validator as JSONSchemaValidator, ValidatorResult} from 'jsonschema'; import * as mustache from 'mustache'; @@ -20,7 +21,6 @@ import {basename, join, resolve} from 'path'; import { ExpectableValidationErrors, globPromisified, - logger, readFilePromisified, writeFilePromisified, } from './common'; @@ -58,7 +58,7 @@ export class Validator { throw new Error(`No schema files in ${schemaDir.toString()}!`); } - logger.log(`Adding schemas from ${schemaDir} to validator.`); + Logger.log(`Adding schemas from ${schemaDir} to validator.`); // Iterate over schema files await asyncPool(2, schemaFiles, async (file) => { @@ -72,7 +72,7 @@ export class Validator { // add schema to map this.schemas[basename(file, '.json')] = schema; - logger.info(`Added ${file} to validator.`); + Logger.info(`Added ${file} to validator.`); }); return schemaFiles; @@ -117,7 +117,7 @@ export async function validateFiles(schemaDir: string, resourcesDir: string): Pr throw new Error(`No test files in ${resourcesDir}!`); } - logger.log(`Found ${testFiles.length} file(s) to test.`); + Logger.log(`Found ${testFiles.length} file(s) to test.`); // map of errors per file const errors: ExpectableValidationErrors = {}; @@ -156,7 +156,7 @@ export async function validateFiles(schemaDir: string, resourcesDir: string): Pr expected = true; } else { unexpectedErrors++; - logger.error(`Unexpected error ${error.name} in ${testFile}`); + Logger.error(`Unexpected error ${error.name} in ${testFile}`); } // add error to list of errors @@ -169,7 +169,7 @@ export async function validateFiles(schemaDir: string, resourcesDir: string): Pr if (expectedErrors.length > 0) { expectedErrors.forEach((error) => { - logger.error(`Extraneous expected error '${error}' in ${testFile}.`); + Logger.error(`Extraneous expected error '${error}' in ${testFile}.`); errors[testFileName].push({ argument: false, expected: false, @@ -181,7 +181,7 @@ export async function validateFiles(schemaDir: string, resourcesDir: string): Pr }); }); } else if (unexpectedErrors === 0) { - logger.info(`Successfully validated ${testFile}.`); + Logger.info(`Successfully validated ${testFile}.`); } }); @@ -231,5 +231,5 @@ export async function writeReport(reportPath: PathLike, errors: ExpectableValida timestamp: (new Date()).toISOString(), })); - logger.ok(`Wrote report to ${reportPath}.`); + Logger.ok(`Wrote report to ${reportPath}.`); } diff --git a/test/Common.spec.ts b/test/Common.spec.ts index 7e2a7256..69361f74 100644 --- a/test/Common.spec.ts +++ b/test/Common.spec.ts @@ -12,13 +12,14 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ +import {Logger} from '@openstapps/logger'; import {expect} from 'chai'; import {slow, suite, test, timeout} from 'mocha-typescript'; import {cwd} from 'process'; -import {getTsconfigPath, logger} from '../src/common'; +import {getTsconfigPath} from '../src/common'; process.on('unhandledRejection', (err) => { - logger.error('UNHANDLED REJECTION', err.stack); + Logger.error('UNHANDLED REJECTION', err.stack); process.exit(1); }); diff --git a/test/Schema.spec.ts b/test/Schema.spec.ts index 3b7bc7bc..2a863a73 100644 --- a/test/Schema.spec.ts +++ b/test/Schema.spec.ts @@ -18,10 +18,8 @@ import {slow, suite, test, timeout} from 'mocha-typescript'; import {join} from 'path'; import {Converter, getValidatableTypesFromReflection} from '../src/schema'; -const logger = new Logger(); - process.on('unhandledRejection', (err) => { - logger.error('UNHANDLED REJECTION', err.stack); + Logger.error('UNHANDLED REJECTION', err.stack); process.exit(1); });