From 056c6fef346b4e84f8b1f93038a9461a7cbd9beb Mon Sep 17 00:00:00 2001 From: Dmitry Semenchuk Date: Tue, 4 Feb 2020 00:47:14 +0300 Subject: [PATCH] feat: add possibility to extend from string (#865) --- @commitlint/resolve-extends/src/index.test.ts | 11 +++++++++++ @commitlint/resolve-extends/src/index.ts | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/@commitlint/resolve-extends/src/index.test.ts b/@commitlint/resolve-extends/src/index.test.ts index 5232e83ad3..e7f3ff75aa 100644 --- a/@commitlint/resolve-extends/src/index.test.ts +++ b/@commitlint/resolve-extends/src/index.test.ts @@ -30,6 +30,17 @@ test('fails for missing extends', async () => { ); }); +test('resolves extends for single config', () => { + const input = {extends: 'extender-name'}; + const ctx = { + resolve: id, + require: jest.fn(() => ({})) + } as ResolveExtendsContext; + resolveExtends(input, ctx); + + expect(ctx.require).toHaveBeenCalledWith('extender-name'); +}); + test('uses empty prefix by default', () => { const input = {extends: ['extender-name']}; const ctx = { diff --git a/@commitlint/resolve-extends/src/index.ts b/@commitlint/resolve-extends/src/index.ts index 1cba8d18e4..163ae1d9d4 100644 --- a/@commitlint/resolve-extends/src/index.ts +++ b/@commitlint/resolve-extends/src/index.ts @@ -13,7 +13,7 @@ export interface ResolvedConfig { export interface ResolveExtendsConfig { parserPreset?: unknown; - extends?: string[]; + extends?: string | string[]; [key: string]: unknown; } @@ -48,7 +48,10 @@ function loadExtends( config: ResolveExtendsConfig = {}, context: ResolveExtendsContext = {} ): ResolvedConfig[] { - return (config.extends || []).reduce((configs, raw) => { + const {extends: e} = config; + const ext = e ? (Array.isArray(e) ? e : [e]) : []; + + return ext.reduce((configs, raw) => { const load = context.require || require; const resolved = resolveConfig(raw, context); const c = load(resolved);