2 Object.defineProperty(exports, "__esModule", { value: true });
3 var ts = require("typescript");
4 function isAccessorDeclaration(node) {
5 return node.kind === ts.SyntaxKind.GetAccessor ||
6 node.kind === ts.SyntaxKind.SetAccessor;
8 exports.isAccessorDeclaration = isAccessorDeclaration;
9 function isArrayBindingPattern(node) {
10 return node.kind === ts.SyntaxKind.ArrayBindingPattern;
12 exports.isArrayBindingPattern = isArrayBindingPattern;
13 function isArrayLiteralExpression(node) {
14 return node.kind === ts.SyntaxKind.ArrayLiteralExpression;
16 exports.isArrayLiteralExpression = isArrayLiteralExpression;
17 function isArrayTypeNode(node) {
18 return node.kind === ts.SyntaxKind.ArrayType;
20 exports.isArrayTypeNode = isArrayTypeNode;
21 function isArrowFunction(node) {
22 return node.kind === ts.SyntaxKind.ArrowFunction;
24 exports.isArrowFunction = isArrowFunction;
25 function isAsExpression(node) {
26 return node.kind === ts.SyntaxKind.AsExpression;
28 exports.isAsExpression = isAsExpression;
29 function isAssertionExpression(node) {
30 return node.kind === ts.SyntaxKind.AsExpression ||
31 node.kind === ts.SyntaxKind.TypeAssertionExpression;
33 exports.isAssertionExpression = isAssertionExpression;
34 function isAwaitExpression(node) {
35 return node.kind === ts.SyntaxKind.AwaitExpression;
37 exports.isAwaitExpression = isAwaitExpression;
38 function isBinaryExpression(node) {
39 return node.kind === ts.SyntaxKind.BinaryExpression;
41 exports.isBinaryExpression = isBinaryExpression;
42 function isBindingElement(node) {
43 return node.kind === ts.SyntaxKind.BindingElement;
45 exports.isBindingElement = isBindingElement;
46 function isBindingPattern(node) {
47 return node.kind === ts.SyntaxKind.ArrayBindingPattern ||
48 node.kind === ts.SyntaxKind.ObjectBindingPattern;
50 exports.isBindingPattern = isBindingPattern;
51 function isBlock(node) {
52 return node.kind === ts.SyntaxKind.Block;
54 exports.isBlock = isBlock;
55 function isBlockLike(node) {
56 return node.statements !== undefined;
58 exports.isBlockLike = isBlockLike;
59 function isBreakOrContinueStatement(node) {
60 return node.kind === ts.SyntaxKind.BreakStatement ||
61 node.kind === ts.SyntaxKind.ContinueStatement;
63 exports.isBreakOrContinueStatement = isBreakOrContinueStatement;
64 function isBreakStatement(node) {
65 return node.kind === ts.SyntaxKind.BreakStatement;
67 exports.isBreakStatement = isBreakStatement;
68 function isCallExpression(node) {
69 return node.kind === ts.SyntaxKind.CallExpression;
71 exports.isCallExpression = isCallExpression;
72 function isCallLikeExpression(node) {
74 case ts.SyntaxKind.CallExpression:
75 case ts.SyntaxKind.Decorator:
76 case ts.SyntaxKind.JsxOpeningElement:
77 case ts.SyntaxKind.JsxSelfClosingElement:
78 case ts.SyntaxKind.NewExpression:
79 case ts.SyntaxKind.TaggedTemplateExpression:
85 exports.isCallLikeExpression = isCallLikeExpression;
86 function isCallSignatureDeclaration(node) {
87 return node.kind === ts.SyntaxKind.CallSignature;
89 exports.isCallSignatureDeclaration = isCallSignatureDeclaration;
90 function isCaseBlock(node) {
91 return node.kind === ts.SyntaxKind.CaseBlock;
93 exports.isCaseBlock = isCaseBlock;
94 function isCaseClause(node) {
95 return node.kind === ts.SyntaxKind.CaseClause;
97 exports.isCaseClause = isCaseClause;
98 function isCaseOrDefaultClause(node) {
99 return node.kind === ts.SyntaxKind.CaseClause ||
100 node.kind === ts.SyntaxKind.DefaultClause;
102 exports.isCaseOrDefaultClause = isCaseOrDefaultClause;
103 function isCatchClause(node) {
104 return node.kind === ts.SyntaxKind.CatchClause;
106 exports.isCatchClause = isCatchClause;
107 function isClassDeclaration(node) {
108 return node.kind === ts.SyntaxKind.ClassDeclaration;
110 exports.isClassDeclaration = isClassDeclaration;
111 function isClassExpression(node) {
112 return node.kind === ts.SyntaxKind.ClassExpression;
114 exports.isClassExpression = isClassExpression;
115 function isClassLikeDeclaration(node) {
116 return node.kind === ts.SyntaxKind.ClassDeclaration ||
117 node.kind === ts.SyntaxKind.ClassExpression;
119 exports.isClassLikeDeclaration = isClassLikeDeclaration;
120 function isCommaListExpression(node) {
121 return node.kind === ts.SyntaxKind.CommaListExpression;
123 exports.isCommaListExpression = isCommaListExpression;
124 function isConditionalExpression(node) {
125 return node.kind === ts.SyntaxKind.ConditionalExpression;
127 exports.isConditionalExpression = isConditionalExpression;
128 function isConditionalTypeNode(node) {
129 return node.kind === ts.SyntaxKind.ConditionalType;
131 exports.isConditionalTypeNode = isConditionalTypeNode;
132 function isConstructorDeclaration(node) {
133 return node.kind === ts.SyntaxKind.Constructor;
135 exports.isConstructorDeclaration = isConstructorDeclaration;
136 function isConstructorTypeNode(node) {
137 return node.kind === ts.SyntaxKind.ConstructorType;
139 exports.isConstructorTypeNode = isConstructorTypeNode;
140 function isConstructSignatureDeclaration(node) {
141 return node.kind === ts.SyntaxKind.ConstructSignature;
143 exports.isConstructSignatureDeclaration = isConstructSignatureDeclaration;
144 function isContinueStatement(node) {
145 return node.kind === ts.SyntaxKind.ContinueStatement;
147 exports.isContinueStatement = isContinueStatement;
148 function isComputedPropertyName(node) {
149 return node.kind === ts.SyntaxKind.ComputedPropertyName;
151 exports.isComputedPropertyName = isComputedPropertyName;
152 function isDebuggerStatement(node) {
153 return node.kind === ts.SyntaxKind.DebuggerStatement;
155 exports.isDebuggerStatement = isDebuggerStatement;
156 function isDecorator(node) {
157 return node.kind === ts.SyntaxKind.Decorator;
159 exports.isDecorator = isDecorator;
160 function isDefaultClause(node) {
161 return node.kind === ts.SyntaxKind.DefaultClause;
163 exports.isDefaultClause = isDefaultClause;
164 function isDeleteExpression(node) {
165 return node.kind === ts.SyntaxKind.DeleteExpression;
167 exports.isDeleteExpression = isDeleteExpression;
168 function isDoStatement(node) {
169 return node.kind === ts.SyntaxKind.DoStatement;
171 exports.isDoStatement = isDoStatement;
172 function isElementAccessExpression(node) {
173 return node.kind === ts.SyntaxKind.ElementAccessExpression;
175 exports.isElementAccessExpression = isElementAccessExpression;
176 function isEmptyStatement(node) {
177 return node.kind === ts.SyntaxKind.EmptyStatement;
179 exports.isEmptyStatement = isEmptyStatement;
180 function isEntityName(node) {
181 return node.kind === ts.SyntaxKind.Identifier || isQualifiedName(node);
183 exports.isEntityName = isEntityName;
184 function isEntityNameExpression(node) {
185 return node.kind === ts.SyntaxKind.Identifier ||
186 isPropertyAccessExpression(node) && isEntityNameExpression(node.expression);
188 exports.isEntityNameExpression = isEntityNameExpression;
189 function isEnumDeclaration(node) {
190 return node.kind === ts.SyntaxKind.EnumDeclaration;
192 exports.isEnumDeclaration = isEnumDeclaration;
193 function isEnumMember(node) {
194 return node.kind === ts.SyntaxKind.EnumMember;
196 exports.isEnumMember = isEnumMember;
197 function isExportAssignment(node) {
198 return node.kind === ts.SyntaxKind.ExportAssignment;
200 exports.isExportAssignment = isExportAssignment;
201 function isExportDeclaration(node) {
202 return node.kind === ts.SyntaxKind.ExportDeclaration;
204 exports.isExportDeclaration = isExportDeclaration;
205 function isExportSpecifier(node) {
206 return node.kind === ts.SyntaxKind.ExportSpecifier;
208 exports.isExportSpecifier = isExportSpecifier;
209 function isExpression(node) {
211 case ts.SyntaxKind.ArrayLiteralExpression:
212 case ts.SyntaxKind.ArrowFunction:
213 case ts.SyntaxKind.AsExpression:
214 case ts.SyntaxKind.AwaitExpression:
215 case ts.SyntaxKind.BinaryExpression:
216 case ts.SyntaxKind.CallExpression:
217 case ts.SyntaxKind.ClassExpression:
218 case ts.SyntaxKind.CommaListExpression:
219 case ts.SyntaxKind.ConditionalExpression:
220 case ts.SyntaxKind.DeleteExpression:
221 case ts.SyntaxKind.ElementAccessExpression:
222 case ts.SyntaxKind.FalseKeyword:
223 case ts.SyntaxKind.FunctionExpression:
224 case ts.SyntaxKind.Identifier:
225 case ts.SyntaxKind.JsxElement:
226 case ts.SyntaxKind.JsxFragment:
227 case ts.SyntaxKind.JsxExpression:
228 case ts.SyntaxKind.JsxOpeningElement:
229 case ts.SyntaxKind.JsxOpeningFragment:
230 case ts.SyntaxKind.JsxSelfClosingElement:
231 case ts.SyntaxKind.MetaProperty:
232 case ts.SyntaxKind.NewExpression:
233 case ts.SyntaxKind.NonNullExpression:
234 case ts.SyntaxKind.NoSubstitutionTemplateLiteral:
235 case ts.SyntaxKind.NullKeyword:
236 case ts.SyntaxKind.NumericLiteral:
237 case ts.SyntaxKind.ObjectLiteralExpression:
238 case ts.SyntaxKind.OmittedExpression:
239 case ts.SyntaxKind.ParenthesizedExpression:
240 case ts.SyntaxKind.PostfixUnaryExpression:
241 case ts.SyntaxKind.PrefixUnaryExpression:
242 case ts.SyntaxKind.PropertyAccessExpression:
243 case ts.SyntaxKind.RegularExpressionLiteral:
244 case ts.SyntaxKind.SpreadElement:
245 case ts.SyntaxKind.StringLiteral:
246 case ts.SyntaxKind.SuperKeyword:
247 case ts.SyntaxKind.TaggedTemplateExpression:
248 case ts.SyntaxKind.TemplateExpression:
249 case ts.SyntaxKind.ThisKeyword:
250 case ts.SyntaxKind.TrueKeyword:
251 case ts.SyntaxKind.TypeAssertionExpression:
252 case ts.SyntaxKind.TypeOfExpression:
253 case ts.SyntaxKind.VoidExpression:
254 case ts.SyntaxKind.YieldExpression:
260 exports.isExpression = isExpression;
261 function isExpressionStatement(node) {
262 return node.kind === ts.SyntaxKind.ExpressionStatement;
264 exports.isExpressionStatement = isExpressionStatement;
265 function isExpressionWithTypeArguments(node) {
266 return node.kind === ts.SyntaxKind.ExpressionWithTypeArguments;
268 exports.isExpressionWithTypeArguments = isExpressionWithTypeArguments;
269 function isExternalModuleReference(node) {
270 return node.kind === ts.SyntaxKind.ExternalModuleReference;
272 exports.isExternalModuleReference = isExternalModuleReference;
273 function isForInStatement(node) {
274 return node.kind === ts.SyntaxKind.ForInStatement;
276 exports.isForInStatement = isForInStatement;
277 function isForInOrOfStatement(node) {
278 return node.kind === ts.SyntaxKind.ForOfStatement || node.kind === ts.SyntaxKind.ForInStatement;
280 exports.isForInOrOfStatement = isForInOrOfStatement;
281 function isForOfStatement(node) {
282 return node.kind === ts.SyntaxKind.ForOfStatement;
284 exports.isForOfStatement = isForOfStatement;
285 function isForStatement(node) {
286 return node.kind === ts.SyntaxKind.ForStatement;
288 exports.isForStatement = isForStatement;
289 function isFunctionDeclaration(node) {
290 return node.kind === ts.SyntaxKind.FunctionDeclaration;
292 exports.isFunctionDeclaration = isFunctionDeclaration;
293 function isFunctionExpression(node) {
294 return node.kind === ts.SyntaxKind.FunctionExpression;
296 exports.isFunctionExpression = isFunctionExpression;
297 function isFunctionTypeNode(node) {
298 return node.kind === ts.SyntaxKind.FunctionType;
300 exports.isFunctionTypeNode = isFunctionTypeNode;
301 function isGetAccessorDeclaration(node) {
302 return node.kind === ts.SyntaxKind.GetAccessor;
304 exports.isGetAccessorDeclaration = isGetAccessorDeclaration;
305 function isIdentifier(node) {
306 return node.kind === ts.SyntaxKind.Identifier;
308 exports.isIdentifier = isIdentifier;
309 function isIfStatement(node) {
310 return node.kind === ts.SyntaxKind.IfStatement;
312 exports.isIfStatement = isIfStatement;
313 function isImportClause(node) {
314 return node.kind === ts.SyntaxKind.ImportClause;
316 exports.isImportClause = isImportClause;
317 function isImportDeclaration(node) {
318 return node.kind === ts.SyntaxKind.ImportDeclaration;
320 exports.isImportDeclaration = isImportDeclaration;
321 function isImportEqualsDeclaration(node) {
322 return node.kind === ts.SyntaxKind.ImportEqualsDeclaration;
324 exports.isImportEqualsDeclaration = isImportEqualsDeclaration;
325 function isImportSpecifier(node) {
326 return node.kind === ts.SyntaxKind.ImportSpecifier;
328 exports.isImportSpecifier = isImportSpecifier;
329 function isIndexedAccessTypeNode(node) {
330 return node.kind === ts.SyntaxKind.IndexedAccessType;
332 exports.isIndexedAccessTypeNode = isIndexedAccessTypeNode;
333 function isIndexSignatureDeclaration(node) {
334 return node.kind === ts.SyntaxKind.IndexSignature;
336 exports.isIndexSignatureDeclaration = isIndexSignatureDeclaration;
337 function isInferTypeNode(node) {
338 return node.kind === ts.SyntaxKind.InferType;
340 exports.isInferTypeNode = isInferTypeNode;
341 function isInterfaceDeclaration(node) {
342 return node.kind === ts.SyntaxKind.InterfaceDeclaration;
344 exports.isInterfaceDeclaration = isInterfaceDeclaration;
345 function isIntersectionTypeNode(node) {
346 return node.kind === ts.SyntaxKind.IntersectionType;
348 exports.isIntersectionTypeNode = isIntersectionTypeNode;
349 function isIterationStatement(node) {
351 case ts.SyntaxKind.ForStatement:
352 case ts.SyntaxKind.ForOfStatement:
353 case ts.SyntaxKind.ForInStatement:
354 case ts.SyntaxKind.WhileStatement:
355 case ts.SyntaxKind.DoStatement:
361 exports.isIterationStatement = isIterationStatement;
362 function isJsDoc(node) {
363 return node.kind === ts.SyntaxKind.JSDocComment;
365 exports.isJsDoc = isJsDoc;
366 function isJsxAttribute(node) {
367 return node.kind === ts.SyntaxKind.JsxAttribute;
369 exports.isJsxAttribute = isJsxAttribute;
370 function isJsxAttributeLike(node) {
371 return node.kind === ts.SyntaxKind.JsxAttribute ||
372 node.kind === ts.SyntaxKind.JsxSpreadAttribute;
374 exports.isJsxAttributeLike = isJsxAttributeLike;
375 function isJsxAttributes(node) {
376 return node.kind === ts.SyntaxKind.JsxAttributes;
378 exports.isJsxAttributes = isJsxAttributes;
379 function isJsxClosingElement(node) {
380 return node.kind === ts.SyntaxKind.JsxClosingElement;
382 exports.isJsxClosingElement = isJsxClosingElement;
383 function isJsxClosingFragment(node) {
384 return node.kind === ts.SyntaxKind.JsxClosingFragment;
386 exports.isJsxClosingFragment = isJsxClosingFragment;
387 function isJsxElement(node) {
388 return node.kind === ts.SyntaxKind.JsxElement;
390 exports.isJsxElement = isJsxElement;
391 function isJsxExpression(node) {
392 return node.kind === ts.SyntaxKind.JsxExpression;
394 exports.isJsxExpression = isJsxExpression;
395 function isJsxFramgment(node) {
396 return isJsxFragment(node);
398 exports.isJsxFramgment = isJsxFramgment;
399 function isJsxFragment(node) {
400 return node.kind === ts.SyntaxKind.JsxFragment;
402 exports.isJsxFragment = isJsxFragment;
403 function isJsxOpeningElement(node) {
404 return node.kind === ts.SyntaxKind.JsxOpeningElement;
406 exports.isJsxOpeningElement = isJsxOpeningElement;
407 function isJsxOpeningFragment(node) {
408 return node.kind === ts.SyntaxKind.JsxOpeningFragment;
410 exports.isJsxOpeningFragment = isJsxOpeningFragment;
411 function isJsxOpeningLikeElement(node) {
412 return node.kind === ts.SyntaxKind.JsxOpeningElement ||
413 node.kind === ts.SyntaxKind.JsxSelfClosingElement;
415 exports.isJsxOpeningLikeElement = isJsxOpeningLikeElement;
416 function isJsxSelfClosingElement(node) {
417 return node.kind === ts.SyntaxKind.JsxSelfClosingElement;
419 exports.isJsxSelfClosingElement = isJsxSelfClosingElement;
420 function isJsxSpreadAttribute(node) {
421 return node.kind === ts.SyntaxKind.JsxSpreadAttribute;
423 exports.isJsxSpreadAttribute = isJsxSpreadAttribute;
424 function isJsxText(node) {
425 return node.kind === ts.SyntaxKind.JsxText;
427 exports.isJsxText = isJsxText;
428 function isLabeledStatement(node) {
429 return node.kind === ts.SyntaxKind.LabeledStatement;
431 exports.isLabeledStatement = isLabeledStatement;
432 function isLiteralExpression(node) {
433 return node.kind >= ts.SyntaxKind.FirstLiteralToken &&
434 node.kind <= ts.SyntaxKind.LastLiteralToken;
436 exports.isLiteralExpression = isLiteralExpression;
437 function isLiteralTypeNode(node) {
438 return node.kind === ts.SyntaxKind.LiteralType;
440 exports.isLiteralTypeNode = isLiteralTypeNode;
441 function isMappedTypeNode(node) {
442 return node.kind === ts.SyntaxKind.MappedType;
444 exports.isMappedTypeNode = isMappedTypeNode;
445 function isMetaProperty(node) {
446 return node.kind === ts.SyntaxKind.MetaProperty;
448 exports.isMetaProperty = isMetaProperty;
449 function isMethodDeclaration(node) {
450 return node.kind === ts.SyntaxKind.MethodDeclaration;
452 exports.isMethodDeclaration = isMethodDeclaration;
453 function isMethodSignature(node) {
454 return node.kind === ts.SyntaxKind.MethodSignature;
456 exports.isMethodSignature = isMethodSignature;
457 function isModuleBlock(node) {
458 return node.kind === ts.SyntaxKind.ModuleBlock;
460 exports.isModuleBlock = isModuleBlock;
461 function isModuleDeclaration(node) {
462 return node.kind === ts.SyntaxKind.ModuleDeclaration;
464 exports.isModuleDeclaration = isModuleDeclaration;
465 function isNamedExports(node) {
466 return node.kind === ts.SyntaxKind.NamedExports;
468 exports.isNamedExports = isNamedExports;
469 function isNamedImports(node) {
470 return node.kind === ts.SyntaxKind.NamedImports;
472 exports.isNamedImports = isNamedImports;
473 function isNamespaceDeclaration(node) {
474 return isModuleDeclaration(node) &&
475 node.name.kind === ts.SyntaxKind.Identifier &&
476 node.body !== undefined &&
477 (node.body.kind === ts.SyntaxKind.ModuleBlock ||
478 isNamespaceDeclaration(node.body));
480 exports.isNamespaceDeclaration = isNamespaceDeclaration;
481 function isNamespaceImport(node) {
482 return node.kind === ts.SyntaxKind.NamespaceImport;
484 exports.isNamespaceImport = isNamespaceImport;
485 function isNamespaceExportDeclaration(node) {
486 return node.kind === ts.SyntaxKind.NamespaceExportDeclaration;
488 exports.isNamespaceExportDeclaration = isNamespaceExportDeclaration;
489 function isNewExpression(node) {
490 return node.kind === ts.SyntaxKind.NewExpression;
492 exports.isNewExpression = isNewExpression;
493 function isNonNullExpression(node) {
494 return node.kind === ts.SyntaxKind.NonNullExpression;
496 exports.isNonNullExpression = isNonNullExpression;
497 function isNoSubstitutionTemplateLiteral(node) {
498 return node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral;
500 exports.isNoSubstitutionTemplateLiteral = isNoSubstitutionTemplateLiteral;
501 function isNumericLiteral(node) {
502 return node.kind === ts.SyntaxKind.NumericLiteral;
504 exports.isNumericLiteral = isNumericLiteral;
505 function isObjectBindingPattern(node) {
506 return node.kind === ts.SyntaxKind.ObjectBindingPattern;
508 exports.isObjectBindingPattern = isObjectBindingPattern;
509 function isObjectLiteralExpression(node) {
510 return node.kind === ts.SyntaxKind.ObjectLiteralExpression;
512 exports.isObjectLiteralExpression = isObjectLiteralExpression;
513 function isOmittedExpression(node) {
514 return node.kind === ts.SyntaxKind.OmittedExpression;
516 exports.isOmittedExpression = isOmittedExpression;
517 function isParameterDeclaration(node) {
518 return node.kind === ts.SyntaxKind.Parameter;
520 exports.isParameterDeclaration = isParameterDeclaration;
521 function isParenthesizedExpression(node) {
522 return node.kind === ts.SyntaxKind.ParenthesizedExpression;
524 exports.isParenthesizedExpression = isParenthesizedExpression;
525 function isParenthesizedTypeNode(node) {
526 return node.kind === ts.SyntaxKind.ParenthesizedType;
528 exports.isParenthesizedTypeNode = isParenthesizedTypeNode;
529 function isPostfixUnaryExpression(node) {
530 return node.kind === ts.SyntaxKind.PostfixUnaryExpression;
532 exports.isPostfixUnaryExpression = isPostfixUnaryExpression;
533 function isPrefixUnaryExpression(node) {
534 return node.kind === ts.SyntaxKind.PrefixUnaryExpression;
536 exports.isPrefixUnaryExpression = isPrefixUnaryExpression;
537 function isPropertyAccessExpression(node) {
538 return node.kind === ts.SyntaxKind.PropertyAccessExpression;
540 exports.isPropertyAccessExpression = isPropertyAccessExpression;
541 function isPropertyAssignment(node) {
542 return node.kind === ts.SyntaxKind.PropertyAssignment;
544 exports.isPropertyAssignment = isPropertyAssignment;
545 function isPropertyDeclaration(node) {
546 return node.kind === ts.SyntaxKind.PropertyDeclaration;
548 exports.isPropertyDeclaration = isPropertyDeclaration;
549 function isPropertySignature(node) {
550 return node.kind === ts.SyntaxKind.PropertySignature;
552 exports.isPropertySignature = isPropertySignature;
553 function isQualifiedName(node) {
554 return node.kind === ts.SyntaxKind.QualifiedName;
556 exports.isQualifiedName = isQualifiedName;
557 function isRegularExpressionLiteral(node) {
558 return node.kind === ts.SyntaxKind.RegularExpressionLiteral;
560 exports.isRegularExpressionLiteral = isRegularExpressionLiteral;
561 function isReturnStatement(node) {
562 return node.kind === ts.SyntaxKind.ReturnStatement;
564 exports.isReturnStatement = isReturnStatement;
565 function isSetAccessorDeclaration(node) {
566 return node.kind === ts.SyntaxKind.SetAccessor;
568 exports.isSetAccessorDeclaration = isSetAccessorDeclaration;
569 function isShorthandPropertyAssignment(node) {
570 return node.kind === ts.SyntaxKind.ShorthandPropertyAssignment;
572 exports.isShorthandPropertyAssignment = isShorthandPropertyAssignment;
573 function isSignatureDeclaration(node) {
574 return node.parameters !== undefined;
576 exports.isSignatureDeclaration = isSignatureDeclaration;
577 function isSourceFile(node) {
578 return node.kind === ts.SyntaxKind.SourceFile;
580 exports.isSourceFile = isSourceFile;
581 function isSpreadAssignment(node) {
582 return node.kind === ts.SyntaxKind.SpreadAssignment;
584 exports.isSpreadAssignment = isSpreadAssignment;
585 function isSpreadElement(node) {
586 return node.kind === ts.SyntaxKind.SpreadElement;
588 exports.isSpreadElement = isSpreadElement;
589 function isStringLiteral(node) {
590 return node.kind === ts.SyntaxKind.StringLiteral;
592 exports.isStringLiteral = isStringLiteral;
593 function isSwitchStatement(node) {
594 return node.kind === ts.SyntaxKind.SwitchStatement;
596 exports.isSwitchStatement = isSwitchStatement;
597 function isSyntaxList(node) {
598 return node.kind === ts.SyntaxKind.SyntaxList;
600 exports.isSyntaxList = isSyntaxList;
601 function isTaggedTemplateExpression(node) {
602 return node.kind === ts.SyntaxKind.TaggedTemplateExpression;
604 exports.isTaggedTemplateExpression = isTaggedTemplateExpression;
605 function isTemplateExpression(node) {
606 return node.kind === ts.SyntaxKind.TemplateExpression;
608 exports.isTemplateExpression = isTemplateExpression;
609 function isTemplateLiteral(node) {
610 return node.kind === ts.SyntaxKind.TemplateExpression ||
611 node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral;
613 exports.isTemplateLiteral = isTemplateLiteral;
614 function isTextualLiteral(node) {
615 return node.kind === ts.SyntaxKind.StringLiteral ||
616 node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral;
618 exports.isTextualLiteral = isTextualLiteral;
619 function isThrowStatement(node) {
620 return node.kind === ts.SyntaxKind.ThrowStatement;
622 exports.isThrowStatement = isThrowStatement;
623 function isTryStatement(node) {
624 return node.kind === ts.SyntaxKind.TryStatement;
626 exports.isTryStatement = isTryStatement;
627 function isTupleTypeNode(node) {
628 return node.kind === ts.SyntaxKind.TupleType;
630 exports.isTupleTypeNode = isTupleTypeNode;
631 function isTypeAliasDeclaration(node) {
632 return node.kind === ts.SyntaxKind.TypeAliasDeclaration;
634 exports.isTypeAliasDeclaration = isTypeAliasDeclaration;
635 function isTypeAssertion(node) {
636 return node.kind === ts.SyntaxKind.TypeAssertionExpression;
638 exports.isTypeAssertion = isTypeAssertion;
639 function isTypeLiteralNode(node) {
640 return node.kind === ts.SyntaxKind.TypeLiteral;
642 exports.isTypeLiteralNode = isTypeLiteralNode;
643 function isTypeOfExpression(node) {
644 return node.kind === ts.SyntaxKind.TypeOfExpression;
646 exports.isTypeOfExpression = isTypeOfExpression;
647 function isTypeOperatorNode(node) {
648 return node.kind === ts.SyntaxKind.TypeOperator;
650 exports.isTypeOperatorNode = isTypeOperatorNode;
651 function isTypeParameterDeclaration(node) {
652 return node.kind === ts.SyntaxKind.TypeParameter;
654 exports.isTypeParameterDeclaration = isTypeParameterDeclaration;
655 function isTypePredicateNode(node) {
656 return node.kind === ts.SyntaxKind.TypePredicate;
658 exports.isTypePredicateNode = isTypePredicateNode;
659 function isTypeReferenceNode(node) {
660 return node.kind === ts.SyntaxKind.TypeReference;
662 exports.isTypeReferenceNode = isTypeReferenceNode;
663 function isTypeQueryNode(node) {
664 return node.kind === ts.SyntaxKind.TypeQuery;
666 exports.isTypeQueryNode = isTypeQueryNode;
667 function isUnionTypeNode(node) {
668 return node.kind === ts.SyntaxKind.UnionType;
670 exports.isUnionTypeNode = isUnionTypeNode;
671 function isVariableDeclaration(node) {
672 return node.kind === ts.SyntaxKind.VariableDeclaration;
674 exports.isVariableDeclaration = isVariableDeclaration;
675 function isVariableStatement(node) {
676 return node.kind === ts.SyntaxKind.VariableStatement;
678 exports.isVariableStatement = isVariableStatement;
679 function isVariableDeclarationList(node) {
680 return node.kind === ts.SyntaxKind.VariableDeclarationList;
682 exports.isVariableDeclarationList = isVariableDeclarationList;
683 function isVoidExpression(node) {
684 return node.kind === ts.SyntaxKind.VoidExpression;
686 exports.isVoidExpression = isVoidExpression;
687 function isWhileStatement(node) {
688 return node.kind === ts.SyntaxKind.WhileStatement;
690 exports.isWhileStatement = isWhileStatement;
691 function isWithStatement(node) {
692 return node.kind === ts.SyntaxKind.WithStatement;
694 exports.isWithStatement = isWithStatement;
695 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBaUM7QUFFakMsU0FBZ0IscUJBQXFCLENBQUMsSUFBYTtJQUMvQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXO1FBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7QUFDaEQsQ0FBQztBQUhELHNEQUdDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsSUFBYTtJQUMvQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztBQUMzRCxDQUFDO0FBRkQsc0RBRUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxJQUFhO0lBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDO0FBQzlELENBQUM7QUFGRCw0REFFQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxJQUFhO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztBQUNqRCxDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixlQUFlLENBQUMsSUFBYTtJQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7QUFDckQsQ0FBQztBQUZELDBDQUVDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLElBQWE7SUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0FBQ3BELENBQUM7QUFGRCx3Q0FFQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLElBQWE7SUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMs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