alm
Version:
The best IDE for TypeScript
78 lines (77 loc) • 2.76 kB
JavaScript
;
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;