UNPKG

alm

Version:

The best IDE for TypeScript

78 lines (77 loc) 2.76 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var ui = require("../../ui"); var monacoUtils = require("../monacoUtils"); var CommonEditorRegistry = monaco.CommonEditorRegistry; var EditorAction = monaco.EditorAction; var EditorContextKeys = monaco.EditorContextKeys; /* Test: { foo: 123, bar: { bas: "Hello", baz: { qux: "World" } } } */ var JsonToDts = /** @class */ (function (_super) { __extends(JsonToDts, _super); function JsonToDts() { return _super.call(this, { id: 'editor.action.jsonToDts', label: 'JSON to TypeScript definition (.d.ts)', alias: 'JSON to TypeScript definition (.d.ts)', precondition: EditorContextKeys.Writable, }) || this; } JsonToDts.prototype.run = function (accessor, editor) { var filePath = editor.filePath; var selection = editor.getSelection(); if (!selection.isEmpty()) { var indentSize = editor.getModel()._editorOptions ? editor.getModel()._editorOptions.tabSize : 2; var oldText = editor.getModel().getValueInRange(selection); var newText = convert(oldText); monacoUtils.replaceSelection({ editor: editor, newText: newText }); monacoUtils.format({ editor: editor }); } else { ui.notifyWarningNormalDisappear('Please select the JavaScript object literal (or json) you want converted to a TypeScript definition and try again 🌹'); } }; return JsonToDts; }(EditorAction)); CommonEditorRegistry.registerEditorAction(new JsonToDts()); /** * The beating heart */ var json2dts_1 = require("../../json2dts/json2dts"); function convert(content) { try { var converter = new json2dts_1.Json2dts(); var text2Obj = JSON.parse(json2dts_1.toValidJSON(content)); if (typeof text2Obj != "string") { converter.parse(text2Obj, 'RootJson'); content = converter.getCode(); } else { ui.notifyWarningNormalDisappear('Json2dts Invalid JSON'); } } catch (e) { ui.notifyWarningNormalDisappear("Json2dts Invalid JSON error: " + e); } return content; } exports.convert = convert;