Handle displaying of watchOptions · microsoft/TypeScript@11d7f4f (original) (raw)

`@@ -102,16 +102,33 @@ namespace ts {

`

102

102

`]

`

103

103

`});

`

104

104

``

``

105

`+

showTSConfigCorrectly("Show TSConfig with watch options", ["-p", "tsconfig.json"], {

`

``

106

`+

watchOptions: {

`

``

107

`+

watchFile: "DynamicPriorityPolling"

`

``

108

`+

},

`

``

109

`+

include: [

`

``

110

`+

"./src/**/*"

`

``

111

`+

]

`

``

112

`+

});

`

``

113

+

105

114

`// Bulk validation of all option declarations

`

106

115

`for (const option of optionDeclarations) {

`

107

``

`-

if (option.name === "project") continue;

`

108

``

`-

let configObject: object | undefined;

`

``

116

`+

baselineOption(option, /isCompilerOptions/ true);

`

``

117

`+

}

`

``

118

+

``

119

`+

for (const option of optionsForWatch) {

`

``

120

`+

baselineOption(option, /isCompilerOptions/ false);

`

``

121

`+

}

`

``

122

+

``

123

`+

function baselineOption(option: CommandLineOption, isCompilerOptions: boolean) {

`

``

124

`+

if (option.name === "project") return;

`

109

125

`let args: string[];

`

``

126

`+

let optionValue: object | undefined;

`

110

127

`switch (option.type) {

`

111

128

`case "boolean": {

`

112

129

`if (option.isTSConfigOnly) {

`

113

130

`args = ["-p", "tsconfig.json"];

`

114

``

`-

configObject = { compilerOptions: { [option.name]: true } };

`

``

131

`+

optionValue = { [option.name]: true };

`

115

132

`}

`

116

133

`else {

`

117

134

`` args = [--${option.name}];

``

`@@ -121,7 +138,7 @@ namespace ts {

`

121

138

`case "list": {

`

122

139

`if (option.isTSConfigOnly) {

`

123

140

`args = ["-p", "tsconfig.json"];

`

124

``

`-

configObject = { compilerOptions: { [option.name]: [] } };

`

``

141

`+

optionValue = { [option.name]: [] };

`

125

142

`}

`

126

143

`else {

`

127

144

`` args = [--${option.name}];

``

`@@ -131,7 +148,7 @@ namespace ts {

`

131

148

`case "string": {

`

132

149

`if (option.isTSConfigOnly) {

`

133

150

`args = ["-p", "tsconfig.json"];

`

134

``

`-

configObject = { compilerOptions: { [option.name]: "someString" } };

`

``

151

`+

optionValue = { [option.name]: "someString" };

`

135

152

`}

`

136

153

`else {

`

137

154

`` args = [--${option.name}, "someString"];

``

`@@ -141,7 +158,7 @@ namespace ts {

`

141

158

`case "number": {

`

142

159

`if (option.isTSConfigOnly) {

`

143

160

`args = ["-p", "tsconfig.json"];

`

144

``

`-

configObject = { compilerOptions: { [option.name]: 0 } };

`

``

161

`+

optionValue = { [option.name]: 0 };

`

145

162

`}

`

146

163

`else {

`

147

164

`` args = [--${option.name}, "0"];

``

`@@ -150,7 +167,7 @@ namespace ts {

`

150

167

`}

`

151

168

`case "object": {

`

152

169

`args = ["-p", "tsconfig.json"];

`

153

``

`-

configObject = { compilerOptions: { [option.name]: {} } };

`

``

170

`+

optionValue = { [option.name]: {} };

`

154

171

`break;

`

155

172

`}

`

156

173

`default: {

`

`@@ -159,14 +176,17 @@ namespace ts {

`

159

176

`const val = iterResult.value;

`

160

177

`if (option.isTSConfigOnly) {

`

161

178

`args = ["-p", "tsconfig.json"];

`

162

``

`-

configObject = { compilerOptions: { [option.name]: val } };

`

``

179

`+

optionValue = { [option.name]: val };

`

163

180

`}

`

164

181

`else {

`

165

182

`` args = [--${option.name}, val];

``

166

183

`}

`

167

184

`break;

`

168

185

`}

`

169

186

`}

`

``

187

+

``

188

`+

const configObject = optionValue &&

`

``

189

`+

(isCompilerOptions ? { compilerOptions: optionValue } : { watchOptions: optionValue });

`

170

190

`` showTSConfigCorrectly(Shows tsconfig for single option/${option.name}, args, configObject);

``

171

191

`}

`

172

192

`});

`