From 8bdcbdabb9edd43c228df4b716a9d9d49921a331 Mon Sep 17 00:00:00 2001 From: Philipe Navarro Date: Wed, 16 Sep 2020 09:26:14 -0500 Subject: [PATCH 1/2] feat: export TSConfig interface --- src/config/ts-node.ts | 13 +------------ src/interfaces/index.ts | 1 + src/interfaces/ts-config.ts | 11 +++++++++++ 3 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 src/interfaces/ts-config.ts diff --git a/src/config/ts-node.ts b/src/config/ts-node.ts index 8bd84ee49..c3fb2c735 100644 --- a/src/config/ts-node.ts +++ b/src/config/ts-node.ts @@ -2,6 +2,7 @@ import * as fs from 'fs' import * as path from 'path' import * as TSNode from 'ts-node' +import {TSConfig} from '../interfaces/ts-config' import {Debug} from './util' // eslint-disable-next-line new-cap const debug = Debug() @@ -10,18 +11,6 @@ const tsconfigs: {[root: string]: TSConfig} = {} const rootDirs: string[] = [] const typeRoots = [`${__dirname}/../node_modules/@types`] -export interface TSConfig { - compilerOptions: { - rootDir?: string; - rootDirs?: string[]; - outDir?: string; - target?: string; - esModuleInterop?: boolean; - experimentalDecorators?: boolean; - emitDecoratorMetadata?: boolean; - }; -} - function loadTSConfig(root: string): TSConfig | undefined { const tsconfigPath = path.join(root, 'tsconfig.json') let typescript: typeof import('typescript') | undefined diff --git a/src/interfaces/index.ts b/src/interfaces/index.ts index 1aebac214..1d1ce08c2 100644 --- a/src/interfaces/index.ts +++ b/src/interfaces/index.ts @@ -5,3 +5,4 @@ export {Manifest} from './manifest' export {PJSON} from './pjson' export {Plugin, PluginOptions, Options} from './plugin' export {Topic} from './topic' +export {TSConfig} from './ts-config' diff --git a/src/interfaces/ts-config.ts b/src/interfaces/ts-config.ts new file mode 100644 index 000000000..b65654178 --- /dev/null +++ b/src/interfaces/ts-config.ts @@ -0,0 +1,11 @@ +export interface TSConfig { + compilerOptions: { + rootDir?: string; + rootDirs?: string[]; + outDir?: string; + target?: string; + esModuleInterop?: boolean; + experimentalDecorators?: boolean; + emitDecoratorMetadata?: boolean; + }; +} From b19b46d4e625c6e26a4e001a57b4f12edc60dd3e Mon Sep 17 00:00:00 2001 From: Philipe Navarro Date: Wed, 16 Sep 2020 13:44:03 -0500 Subject: [PATCH 2/2] fix tests --- test/config/ts-node.test.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/config/ts-node.test.ts b/test/config/ts-node.test.ts index 6d5ea8123..157fadd91 100644 --- a/test/config/ts-node.test.ts +++ b/test/config/ts-node.test.ts @@ -2,7 +2,7 @@ import * as path from 'path' import * as proxyquire from 'proxyquire' import * as tsNode from 'ts-node' -import {TSConfig} from '../../src/config/ts-node' +import {Interfaces} from '../../src' import {expect, fancy} from './test' @@ -10,18 +10,18 @@ const root = path.resolve(__dirname, 'fixtures/typescript') const orig = 'src/hooks/init.ts' let tsNodeRegisterCallArguments: any[] = [] -const DEFAULT_TS_CONFIG: TSConfig = { +const DEFAULT_TS_CONFIG: Interfaces.TSConfig = { compilerOptions: {}, } -const withMockTsConfig = (config: TSConfig = DEFAULT_TS_CONFIG) => { +const withMockTsConfig = (config: Interfaces.TSConfig = DEFAULT_TS_CONFIG) => { const tsNodePlugin = proxyquire('../../src/config/ts-node', {fs: { existsSync: () => true, readFileSync: () => JSON.stringify(config), }}) - // This prints "loadTSConfig unstubbed" not "loadTSConfig proxyquire"! - tsNodePlugin.tsPath('poop', 'asdf') + // This prints "loadInterfaces.TSConfig unstubbed" not "loadInterfaces.TSConfig proxyquire"! + tsNodePlugin.tsPath('qwerty', 'asdf') return fancy .add('tsNodePlugin', () => tsNodePlugin)