MCPcopy Create free account
hub / github.com/nodejs/node / convertObjectLiteralExpressionToJson

Function convertObjectLiteralExpressionToJson

test/fixtures/snapshot/typescript.js:40976–41034  ·  view source on GitHub ↗
(node, knownOptions, extraKeyDiagnostics, parentOption)

Source from the content-addressed store, hash-verified

40974 return knownRootOptions && knownRootOptions.elementOptions === knownOptions;
40975 }
40976 function convertObjectLiteralExpressionToJson(node, knownOptions, extraKeyDiagnostics, parentOption) {
40977 var result = returnValue ? {} : undefined;
40978 var _loop_4 = function (element) {
40979 if (element.kind !== 296 /* SyntaxKind.PropertyAssignment */) {
40980 errors.push(ts.createDiagnosticForNodeInSourceFile(sourceFile, element, ts.Diagnostics.Property_assignment_expected));
40981 return "continue";
40982 }
40983 if (element.questionToken) {
40984 errors.push(ts.createDiagnosticForNodeInSourceFile(sourceFile, element.questionToken, ts.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, "?"));
40985 }
40986 if (!isDoubleQuotedString(element.name)) {
40987 errors.push(ts.createDiagnosticForNodeInSourceFile(sourceFile, element.name, ts.Diagnostics.String_literal_with_double_quotes_expected));
40988 }
40989 var textOfKey = ts.isComputedNonLiteralName(element.name) ? undefined : ts.getTextOfPropertyName(element.name);
40990 var keyText = textOfKey && ts.unescapeLeadingUnderscores(textOfKey);
40991 var option = keyText && knownOptions ? knownOptions.get(keyText) : undefined;
40992 if (keyText && extraKeyDiagnostics && !option) {
40993 if (knownOptions) {
40994 errors.push(createUnknownOptionError(keyText, extraKeyDiagnostics, function (message, arg0, arg1) { return ts.createDiagnosticForNodeInSourceFile(sourceFile, element.name, message, arg0, arg1); }));
40995 }
40996 else {
40997 errors.push(ts.createDiagnosticForNodeInSourceFile(sourceFile, element.name, extraKeyDiagnostics.unknownOptionDiagnostic, keyText));
40998 }
40999 }
41000 var value = convertPropertyValueToJson(element.initializer, option);
41001 if (typeof keyText !== "undefined") {
41002 if (returnValue) {
41003 result[keyText] = value;
41004 }
41005 // Notify key value set, if user asked for it
41006 if (jsonConversionNotifier &&
41007 // Current callbacks are only on known parent option or if we are setting values in the root
41008 (parentOption || isRootOptionMap(knownOptions))) {
41009 var isValidOptionValue = isCompilerOptionsValue(option, value);
41010 if (parentOption) {
41011 if (isValidOptionValue) {
41012 // Notify option set in the parent if its a valid option value
41013 jsonConversionNotifier.onSetValidOptionKeyValueInParent(parentOption, option, value);
41014 }
41015 }
41016 else if (isRootOptionMap(knownOptions)) {
41017 if (isValidOptionValue) {
41018 // Notify about the valid root key value being set
41019 jsonConversionNotifier.onSetValidOptionKeyValueInRoot(keyText, element.name, value, element.initializer);
41020 }
41021 else if (!option) {
41022 // Notify about the unknown root key value being set
41023 jsonConversionNotifier.onSetUnknownOptionKeyValueInRoot(keyText, element.name, value, element.initializer);
41024 }
41025 }
41026 }
41027 }
41028 };
41029 for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {
41030 var element = _a[_i];
41031 _loop_4(element);
41032 }
41033 return result;

Callers 1

Calls 1

_loop_4Function · 0.85

Tested by

no test coverage detected