Skip to content

Commit

Permalink
feat(karma): update constants export details
Browse files Browse the repository at this point in the history
- move Constatns to separate file
- export as named re-export from main module
- add missing type for 'PORT' - should be `number` OR `string` depending
on the source of this contant. If read from ENV it will be a string
always.
- add missing documentation
- move LOG types to use string literal types to use in the values in
typechecks and intelllisense
- tests updated

https://github.com/karma-runner/karma/blob/master/lib/constants.js

Thanks!
  • Loading branch information
peterblazejewicz authored and PiotrB committed Mar 26, 2020
1 parent f377d05 commit ddfca42
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 28 deletions.
31 changes: 3 additions & 28 deletions types/karma/index.d.ts
Expand Up @@ -14,7 +14,10 @@ import Promise = require('bluebird');
import https = require('https');
import { Appender } from 'log4js';
import { EventEmitter } from 'events';
import constants = require('./lib/constants');

export { constants };
export const VERSION: typeof constants.VERSION;
/**
* `start` method is deprecated since 0.13. It will be removed in 0.14.
* Please use
Expand All @@ -27,37 +30,9 @@ import { EventEmitter } from 'events';
* @deprecated
*/
export const server: DeprecatedServer;

export const runner: Runner;
export const stopper: Stopper;

export const VERSION: string;
export const constants: Constants;

export interface Constants {
VERSION: string;
DEFAULT_PORT: number;
DEFAULT_HOSTNAME: string;
DEFAULT_LISTEN_ADDR: string;
LOG_DISABLE: string;
LOG_ERROR: string;
LOG_WARN: string;
LOG_INFO: string;
LOG_DEBUG: string;
LOG_LOG: string;
LOG_PRIORITIES: string[];
COLOR_PATTERN: string;
NO_COLOR_PATTERN: string;
CONSOLE_APPENDER: {
type: string;
layout: {
type: string;
pattern: string;
};
};
EXIT_CODE: string;
}

export namespace launcher {
class Launcher {
static generateId(): string;
Expand Down
19 changes: 19 additions & 0 deletions types/karma/karma-tests.ts
Expand Up @@ -196,3 +196,22 @@ karma.config.parseConfig('karma.conf.js', {
singleRun: true,
restartOnFileChange: true,
});

// constants
karma.VERSION; // $ExpectType string
karma.constants.VERSION; // $ExpectType string
karma.constants.DEFAULT_PORT; // $ExpectType string | number
karma.constants.DEFAULT_HOSTNAME; // $ExpectType string
karma.constants.DEFAULT_LISTEN_ADDR; // $ExpectType string
karma.constants.LOG_DISABLE; // $ExpectType "OFF"
karma.constants.LOG_ERROR; // $ExpectType "ERROR"
karma.constants.LOG_WARN; // $ExpectType "WARN"
karma.constants.LOG_INFO; // $ExpectType "INFO"
karma.constants.LOG_DEBUG; // $ExpectType "DEBUG"
karma.constants.LOG_LOG; // $ExpectType "LOG"
karma.constants.LOG_PRIORITIES; // $ExpectType ["OFF", "ERROR", "WARN", "LOG", "INFO", "DEBUG"]
karma.constants.COLOR_PATTERN; // $ExpectType string
karma.constants.NO_COLOR_PATTERN; // $ExpectType string
karma.constants.CONSOLE_APPENDER; // $ExpectType { type: string; layout: { type: string; pattern: string; }; }
karma.constants.EXIT_CODE; // $ExpectType string
karma.constants.LOG_PRIORITIES[5] === 'DEBUG';
42 changes: 42 additions & 0 deletions types/karma/lib/constants.d.ts
@@ -0,0 +1,42 @@
declare const constants: Constants;

interface Constants {
/** The current version of karma */
VERSION: string;
/** The default port used for the karma server */
DEFAULT_PORT: string | number;
/** The default hostname used for the karma server */
DEFAULT_HOSTNAME: string;
/** The default listen address used for the karma server */
DEFAULT_LISTEN_ADDR: string;
/** The value for disabling logs */
LOG_DISABLE: 'OFF';
/** The value for the log `error` level */
LOG_ERROR: 'ERROR';
/** The value for the log `warn` level */
LOG_WARN: 'WARN';
/** The value for the log `info` level */
LOG_INFO: 'INFO';
/** The value for the log `debug` level */
LOG_DEBUG: 'DEBUG';
LOG_LOG: 'LOG';
/** An array of log levels in descending order, i.e. LOG_DISABLE, LOG_ERROR, LOG_WARN, LOG_LOG, LOG_INFO, and LOG_DEBUG */
LOG_PRIORITIES: ['OFF', 'ERROR', 'WARN', 'LOG', 'INFO', 'DEBUG'];

/** The default color pattern for log output */
COLOR_PATTERN: string;
/** The default pattern for log output without color */
NO_COLOR_PATTERN: string;
/** The default console appender */
CONSOLE_APPENDER: {
type: string;
layout: {
type: string;
pattern: string;
};
};
/** The exit code */
EXIT_CODE: string;
}

export = constants;

0 comments on commit ddfca42

Please sign in to comment.