diff --git a/packages/aws-cdk/lib/cli.ts b/packages/aws-cdk/lib/cli.ts index 5aaedcc7e5759..4533125708409 100644 --- a/packages/aws-cdk/lib/cli.ts +++ b/packages/aws-cdk/lib/cli.ts @@ -23,7 +23,6 @@ import { data, debug, error, print, setLogLevel, setCI } from '../lib/logging'; import { displayNotices, refreshNotices } from '../lib/notices'; import { Command, Configuration, Settings } from '../lib/settings'; import * as version from '../lib/version'; -import { validateTags } from './util/tags'; // https://github.com/yargs/yargs/issues/1929 // https://github.com/evanw/esbuild/issues/1492 @@ -435,7 +434,7 @@ async function initCommandLine() { force: argv.force, toolkitStackName: toolkitStackName, execute: args.execute, - tags: validateTags(configuration.settings.get(['tags'])), + tags: configuration.settings.get(['tags']), terminationProtection: args.terminationProtection, parameters: { bucketName: configuration.settings.get(['toolkitBucket', 'bucketName']), @@ -465,7 +464,7 @@ async function initCommandLine() { notificationArns: args.notificationArns, requireApproval: configuration.settings.get(['requireApproval']), reuseAssets: args['build-exclude'], - tags: validateTags(configuration.settings.get(['tags'])), + tags: configuration.settings.get(['tags']), execute: args.execute, changeSetName: args.changeSetName, force: args.force, diff --git a/packages/aws-cdk/lib/util/tags.ts b/packages/aws-cdk/lib/util/tags.ts deleted file mode 100644 index 75d3277aff00f..0000000000000 --- a/packages/aws-cdk/lib/util/tags.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Tag } from '../cdk-toolkit'; - -/** - * Throws an error if tags is neither undefined nor an array of Tags, - * as defined in cdk-toolkit.ts. - * - * It does not attempt to validate the tags themselves. It only validates - * that the objects in the array conform to the Tags interface. - */ -export function validateTags(tags: any): Tag[] | undefined { - const valid = tags === undefined || ( - Array.isArray(tags) && - tags.every(t => typeof(t.Tag) === 'string' && typeof(t.Value) === 'string') - ); - if (valid) { - return tags; - } else { - throw new Error('tags must be an array of { Tag: string, Value: string } objects'); - } -} diff --git a/packages/aws-cdk/test/util/tags.test.ts b/packages/aws-cdk/test/util/tags.test.ts deleted file mode 100644 index 9789eb449300d..0000000000000 --- a/packages/aws-cdk/test/util/tags.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { validateTags } from '../../lib/util/tags'; - -test('validateTags does not throw when given undefined', () => { - expect(validateTags(undefined)).toBeUndefined(); -}); - -test('validateTags does not throw when given an empty array', () => { - const tags: any = []; - expect(validateTags(tags)).toBe(tags); -}); - -test('validateTags does not throw when given array of Tag objects', () => { - const tags: any = [{ Tag: 'a', Value: 'b' }]; - expect(validateTags(tags)).toBe(tags); -}); - -test('validateTags throws when given an object', () => { - expect(() => validateTags({ a: 'b' })).toThrow('tags must be'); -}); - -test('validateTags throws when given an array of non-Tag objects', () => { - expect(() => validateTags([{ a: 'b' }])).toThrow('tags must be'); -}); - -test('validateTags throws when Tag is not a string', () => { - expect(() => validateTags([{ Tag: null, Value: 'b' }])).toThrow(); -}); - -test('validateTags throws when Value is not a string', () => { - expect(() => validateTags([{ Tag: 'a', Value: null }])).toThrow(); -});