diff --git a/src/lib/utils/options/declaration.ts b/src/lib/utils/options/declaration.ts index 982de9653..58a9442a1 100644 --- a/src/lib/utils/options/declaration.ts +++ b/src/lib/utils/options/declaration.ts @@ -95,12 +95,13 @@ export class OptionDeclaration { const map = this.map; if (map !== 'object') { const key = value ? (value + '').toLowerCase() : ''; + const values = Object.keys(map).map(key => map[key]); - if (map instanceof Map && map.has(key)) { - value = map.get(key); + if (map instanceof Map) { + value = map.has(key) ? map.get(key) : key; } else if (key in map) { value = map[key]; - } else if (errorCallback) { + } else if (values.indexOf(value) === -1 && errorCallback) { if (this.mapError) { errorCallback(this.mapError); } else { diff --git a/src/lib/utils/options/options.ts b/src/lib/utils/options/options.ts index 94d8a70d6..e503752f4 100644 --- a/src/lib/utils/options/options.ts +++ b/src/lib/utils/options/options.ts @@ -133,9 +133,6 @@ export class Options extends ChildableComponent { setValue(name: string|OptionDeclaration, value: any, errorCallback?: Function) { const declaration = name instanceof OptionDeclaration ? name : this.getDeclaration( name); if (!declaration) { - if (errorCallback) { - errorCallback('Unknown option `%s`.', name.toString()); - } return; } @@ -152,7 +149,7 @@ export class Options extends ChildableComponent { const value = obj[key]; const declaration = this.getDeclaration(key); const shouldValueBeAnObject = declaration && declaration['map'] === 'object'; - if (typeof value === 'object' && !shouldValueBeAnObject) { + if (!Array.isArray(value) && typeof value === 'object' && !shouldValueBeAnObject) { this.setValues(value, prefix + key + '.', errorCallback); } else { this.setValue(prefix + key, value, errorCallback); diff --git a/src/lib/utils/options/readers/tsconfig.ts b/src/lib/utils/options/readers/tsconfig.ts index 35f3d3428..27a03a43d 100644 --- a/src/lib/utils/options/readers/tsconfig.ts +++ b/src/lib/utils/options/readers/tsconfig.ts @@ -51,31 +51,30 @@ export class TSConfigReader extends OptionsComponent { return; } - let data = ts.readConfigFile(fileName, ts.sys.readFile).config; - if (data === undefined) { + const { config } = ts.readConfigFile(fileName, ts.sys.readFile); + if (config === undefined) { event.addError('The tsconfig file %s does not contain valid JSON.', fileName); return; } - if (!_.isPlainObject(data)) { + if (!_.isPlainObject(config)) { event.addError('The tsconfig file %s does not contain a JSON object.', fileName); return; } - data = ts.parseJsonConfigFileContent( - data, + const { fileNames, options, raw: { typedocOptions }} = ts.parseJsonConfigFileContent( + config, ts.sys, Path.resolve(Path.dirname(fileName)), {}, Path.resolve(fileName)); - event.inputFiles = data.fileNames; + event.inputFiles = fileNames; const ignored = TypeScriptSource.IGNORED; - let compilerOptions = _.clone(data.raw.compilerOptions); for (const key of ignored) { - delete compilerOptions[key]; + delete options[key]; } - _.defaults(event.data, data.raw.typedocOptions, compilerOptions); + _.defaults(event.data, typedocOptions, options); } } diff --git a/src/lib/utils/options/sources/typescript.ts b/src/lib/utils/options/sources/typescript.ts index c4504643f..d6808e959 100644 --- a/src/lib/utils/options/sources/typescript.ts +++ b/src/lib/utils/options/sources/typescript.ts @@ -15,11 +15,7 @@ export class TypeScriptSource extends OptionsComponent { static IGNORED: string[] = [ 'out', 'version', 'help', 'watch', 'declaration', 'mapRoot', - 'sourceMap', 'inlineSources', 'removeComments', - // Ignore new TypeScript 2.0 options until typedoc can't manage it. - 'lib', 'noImplicitThis', - 'traceResolution', 'noUnusedParameters', 'noUnusedLocals', - 'skipLibCheck', 'declarationDir', 'types', 'typeRoots' + 'sourceMap', 'inlineSources', 'removeComments' ]; initialize() { @@ -59,6 +55,9 @@ export class TypeScriptSource extends OptionsComponent { case 'string': param.type = ParameterType.String; break; + case 'list': + param.type = ParameterType.Array; + break; default: param.type = ParameterType.Map; param.map = option.type; diff --git a/src/test/renderer/specs/classes/_access_.privateclass.html b/src/test/renderer/specs/classes/_access_.privateclass.html index c2698981d..c535e99f3 100644 --- a/src/test/renderer/specs/classes/_access_.privateclass.html +++ b/src/test/renderer/specs/classes/_access_.privateclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_classes_.baseclass.html b/src/test/renderer/specs/classes/_classes_.baseclass.html index ee426a3e9..2768d3b80 100644 --- a/src/test/renderer/specs/classes/_classes_.baseclass.html +++ b/src/test/renderer/specs/classes/_classes_.baseclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_classes_.genericclass.html b/src/test/renderer/specs/classes/_classes_.genericclass.html index f730fb3a5..5b835bfae 100644 --- a/src/test/renderer/specs/classes/_classes_.genericclass.html +++ b/src/test/renderer/specs/classes/_classes_.genericclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_classes_.internalclass.html b/src/test/renderer/specs/classes/_classes_.internalclass.html index 4e63418e5..57b7a47c3 100644 --- a/src/test/renderer/specs/classes/_classes_.internalclass.html +++ b/src/test/renderer/specs/classes/_classes_.internalclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_classes_.nongenericclass.html b/src/test/renderer/specs/classes/_classes_.nongenericclass.html index f6019a8df..261605678 100644 --- a/src/test/renderer/specs/classes/_classes_.nongenericclass.html +++ b/src/test/renderer/specs/classes/_classes_.nongenericclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_classes_.subclassa.html b/src/test/renderer/specs/classes/_classes_.subclassa.html index b8209c671..ee5a2a26b 100644 --- a/src/test/renderer/specs/classes/_classes_.subclassa.html +++ b/src/test/renderer/specs/classes/_classes_.subclassa.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_classes_.subclassb.html b/src/test/renderer/specs/classes/_classes_.subclassb.html index 3426354cf..01f7312fe 100644 --- a/src/test/renderer/specs/classes/_classes_.subclassb.html +++ b/src/test/renderer/specs/classes/_classes_.subclassb.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_default_export_.defaultexportedclass.html b/src/test/renderer/specs/classes/_default_export_.defaultexportedclass.html index 692b7b667..e55da3e36 100644 --- a/src/test/renderer/specs/classes/_default_export_.defaultexportedclass.html +++ b/src/test/renderer/specs/classes/_default_export_.defaultexportedclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_default_export_.notexportedclassname.html b/src/test/renderer/specs/classes/_default_export_.notexportedclassname.html index a784166f4..17f15425a 100644 --- a/src/test/renderer/specs/classes/_default_export_.notexportedclassname.html +++ b/src/test/renderer/specs/classes/_default_export_.notexportedclassname.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_flattened_.flattenedclass.html b/src/test/renderer/specs/classes/_flattened_.flattenedclass.html index 7c96c40f0..9eade9ac0 100644 --- a/src/test/renderer/specs/classes/_flattened_.flattenedclass.html +++ b/src/test/renderer/specs/classes/_flattened_.flattenedclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_single_export_.notexportedclass.html b/src/test/renderer/specs/classes/_single_export_.notexportedclass.html index 6ec4ba4ac..23a086867 100644 --- a/src/test/renderer/specs/classes/_single_export_.notexportedclass.html +++ b/src/test/renderer/specs/classes/_single_export_.notexportedclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_single_export_.singleexportedclass.html b/src/test/renderer/specs/classes/_single_export_.singleexportedclass.html index 036bb2d2c..c0d7d22bd 100644 --- a/src/test/renderer/specs/classes/_single_export_.singleexportedclass.html +++ b/src/test/renderer/specs/classes/_single_export_.singleexportedclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_typescript_1_3_.classwithprotectedmembers.html b/src/test/renderer/specs/classes/_typescript_1_3_.classwithprotectedmembers.html index 2a28914af..aab4bd5a0 100644 --- a/src/test/renderer/specs/classes/_typescript_1_3_.classwithprotectedmembers.html +++ b/src/test/renderer/specs/classes/_typescript_1_3_.classwithprotectedmembers.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_typescript_1_3_.subclasswithprotectedmembers.html b/src/test/renderer/specs/classes/_typescript_1_3_.subclasswithprotectedmembers.html index 6f7b8df30..49ebc3fb6 100644 --- a/src/test/renderer/specs/classes/_typescript_1_3_.subclasswithprotectedmembers.html +++ b/src/test/renderer/specs/classes/_typescript_1_3_.subclasswithprotectedmembers.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/classes/_typescript_1_4_.simpleclass.html b/src/test/renderer/specs/classes/_typescript_1_4_.simpleclass.html index ad0df6e61..1dd9f16a9 100644 --- a/src/test/renderer/specs/classes/_typescript_1_4_.simpleclass.html +++ b/src/test/renderer/specs/classes/_typescript_1_4_.simpleclass.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/enums/_enumerations_.directions.html b/src/test/renderer/specs/enums/_enumerations_.directions.html index 04d0cb555..71a93f8bb 100644 --- a/src/test/renderer/specs/enums/_enumerations_.directions.html +++ b/src/test/renderer/specs/enums/_enumerations_.directions.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/enums/_enumerations_.size.html b/src/test/renderer/specs/enums/_enumerations_.size.html index 1271da230..42ab1814d 100644 --- a/src/test/renderer/specs/enums/_enumerations_.size.html +++ b/src/test/renderer/specs/enums/_enumerations_.size.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/globals.html b/src/test/renderer/specs/globals.html index 18cf846b9..9cf33ffb4 100644 --- a/src/test/renderer/specs/globals.html +++ b/src/test/renderer/specs/globals.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/index.html b/src/test/renderer/specs/index.html index 004937c12..15016a118 100644 --- a/src/test/renderer/specs/index.html +++ b/src/test/renderer/specs/index.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_classes_.inameinterface.html b/src/test/renderer/specs/interfaces/_classes_.inameinterface.html index 395e1ff3e..331707314 100644 --- a/src/test/renderer/specs/interfaces/_classes_.inameinterface.html +++ b/src/test/renderer/specs/interfaces/_classes_.inameinterface.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_classes_.iprintinterface.html b/src/test/renderer/specs/interfaces/_classes_.iprintinterface.html index 4a04c5054..d1a6a5132 100644 --- a/src/test/renderer/specs/interfaces/_classes_.iprintinterface.html +++ b/src/test/renderer/specs/interfaces/_classes_.iprintinterface.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_classes_.iprintnameinterface.html b/src/test/renderer/specs/interfaces/_classes_.iprintnameinterface.html index 88573f9dd..642e0d3c4 100644 --- a/src/test/renderer/specs/interfaces/_classes_.iprintnameinterface.html +++ b/src/test/renderer/specs/interfaces/_classes_.iprintnameinterface.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_generics_.a.html b/src/test/renderer/specs/interfaces/_generics_.a.html index 1f4c3dc84..17d865493 100644 --- a/src/test/renderer/specs/interfaces/_generics_.a.html +++ b/src/test/renderer/specs/interfaces/_generics_.a.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_generics_.ab.html b/src/test/renderer/specs/interfaces/_generics_.ab.html index ace8e035e..0ed9dbdaa 100644 --- a/src/test/renderer/specs/interfaces/_generics_.ab.html +++ b/src/test/renderer/specs/interfaces/_generics_.ab.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_generics_.abnumber.html b/src/test/renderer/specs/interfaces/_generics_.abnumber.html index 1ba61cf68..41ebda050 100644 --- a/src/test/renderer/specs/interfaces/_generics_.abnumber.html +++ b/src/test/renderer/specs/interfaces/_generics_.abnumber.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_generics_.abstring.html b/src/test/renderer/specs/interfaces/_generics_.abstring.html index c2b9a080d..a4a58cbdc 100644 --- a/src/test/renderer/specs/interfaces/_generics_.abstring.html +++ b/src/test/renderer/specs/interfaces/_generics_.abstring.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_generics_.b.html b/src/test/renderer/specs/interfaces/_generics_.b.html index d4a261cdc..4141727ac 100644 --- a/src/test/renderer/specs/interfaces/_generics_.b.html +++ b/src/test/renderer/specs/interfaces/_generics_.b.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/interfaces/_typescript_1_4_.runoptions.html b/src/test/renderer/specs/interfaces/_typescript_1_4_.runoptions.html index 36edc673a..4af18192c 100644 --- a/src/test/renderer/specs/interfaces/_typescript_1_4_.runoptions.html +++ b/src/test/renderer/specs/interfaces/_typescript_1_4_.runoptions.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_access_.html b/src/test/renderer/specs/modules/_access_.html index 888c8f14f..ddd42ecc1 100644 --- a/src/test/renderer/specs/modules/_access_.html +++ b/src/test/renderer/specs/modules/_access_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_access_.privatemodule.html b/src/test/renderer/specs/modules/_access_.privatemodule.html index ffb112cfd..c71400c6e 100644 --- a/src/test/renderer/specs/modules/_access_.privatemodule.html +++ b/src/test/renderer/specs/modules/_access_.privatemodule.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_classes_.html b/src/test/renderer/specs/modules/_classes_.html index dbbf73946..917149101 100644 --- a/src/test/renderer/specs/modules/_classes_.html +++ b/src/test/renderer/specs/modules/_classes_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_default_export_.html b/src/test/renderer/specs/modules/_default_export_.html index d1efba5bb..ac323aa60 100644 --- a/src/test/renderer/specs/modules/_default_export_.html +++ b/src/test/renderer/specs/modules/_default_export_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_enumerations_.html b/src/test/renderer/specs/modules/_enumerations_.html index c64b722a0..24d19b564 100644 --- a/src/test/renderer/specs/modules/_enumerations_.html +++ b/src/test/renderer/specs/modules/_enumerations_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_flattened_.html b/src/test/renderer/specs/modules/_flattened_.html index 24764a442..e606dda34 100644 --- a/src/test/renderer/specs/modules/_flattened_.html +++ b/src/test/renderer/specs/modules/_flattened_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_functions_.html b/src/test/renderer/specs/modules/_functions_.html index 920986174..7b4c93770 100644 --- a/src/test/renderer/specs/modules/_functions_.html +++ b/src/test/renderer/specs/modules/_functions_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_functions_.modulefunction.html b/src/test/renderer/specs/modules/_functions_.modulefunction.html index 9559f841d..3142e16e9 100644 --- a/src/test/renderer/specs/modules/_functions_.modulefunction.html +++ b/src/test/renderer/specs/modules/_functions_.modulefunction.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_generics_.html b/src/test/renderer/specs/modules/_generics_.html index f4f0c8a9a..f5b65e927 100644 --- a/src/test/renderer/specs/modules/_generics_.html +++ b/src/test/renderer/specs/modules/_generics_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_modules_.html b/src/test/renderer/specs/modules/_modules_.html index fe28e641e..800455f0a 100644 --- a/src/test/renderer/specs/modules/_modules_.html +++ b/src/test/renderer/specs/modules/_modules_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_modules_.mymodule.html b/src/test/renderer/specs/modules/_modules_.mymodule.html index f51889da4..dd3365ae5 100644 --- a/src/test/renderer/specs/modules/_modules_.mymodule.html +++ b/src/test/renderer/specs/modules/_modules_.mymodule.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_modules_.mymodule.mysubmodule.html b/src/test/renderer/specs/modules/_modules_.mymodule.mysubmodule.html index a5591148a..8d6291e51 100644 --- a/src/test/renderer/specs/modules/_modules_.mymodule.mysubmodule.html +++ b/src/test/renderer/specs/modules/_modules_.mymodule.mysubmodule.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_single_export_.html b/src/test/renderer/specs/modules/_single_export_.html index 3d6f09e6d..2be2cdae6 100644 --- a/src/test/renderer/specs/modules/_single_export_.html +++ b/src/test/renderer/specs/modules/_single_export_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_typescript_1_3_.html b/src/test/renderer/specs/modules/_typescript_1_3_.html index fbf5c6e70..7f5f481e0 100644 --- a/src/test/renderer/specs/modules/_typescript_1_3_.html +++ b/src/test/renderer/specs/modules/_typescript_1_3_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_typescript_1_4_.html b/src/test/renderer/specs/modules/_typescript_1_4_.html index 37e9eb6db..0ae21ccde 100644 --- a/src/test/renderer/specs/modules/_typescript_1_4_.html +++ b/src/test/renderer/specs/modules/_typescript_1_4_.html @@ -1,5 +1,5 @@ - + diff --git a/src/test/renderer/specs/modules/_typescript_1_5_.html b/src/test/renderer/specs/modules/_typescript_1_5_.html index ce91a6346..08394f38b 100644 --- a/src/test/renderer/specs/modules/_typescript_1_5_.html +++ b/src/test/renderer/specs/modules/_typescript_1_5_.html @@ -1,5 +1,5 @@ - + diff --git a/tsconfig.json b/tsconfig.json index ac2411752..9c1efad10 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,8 @@ "lib": [ "DOM", "ES5", - "ES2015.Collection" + "ES2015.Collection", + "ES2015.Iterable" ], "target": "ES5", "noImplicitAny": false,