Plugin URI decode for selected text - help me please!

Hello

I absolutly Nuby but I try make simple plugin for URI decode for selected text

I take for template “url-into-selection” and rewrite it for mi goal

It don`t worked - “faled to lad plugin” :sneezing_face:

var obsidian = require('obsidian');
var electron = require('electron');

/* global Reflect, Promise */

var extendStatics = function(d, b) {
    extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
    return extendStatics(d, b);
};

function __extends(d, b) {
    extendStatics(d, b);
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
}

function __generator(thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
}

var URIdecode = /** @class */ (function (_super) {
    __extends(URIdecode, _super);
    function URIdecode() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    URIdecode.prototype.onload = function () {
        return __awaiter(this, void 0, void 0, function () {
            var _this = this;
            return __generator(this, function (_a) {
                this.addCommand({
                    id: "URI-decode",
                    name: "URI decode",
                    callback: function () { return _this.URIdecode(); },
                    hotkeys: [
                        {
                            modifiers: ["Mod", "Shift"],
                            key: "d",
                        },
                    ],
                });
                return [2 /*return*/];
            });
        });
    };
    URIdecode.prototype.URIdecode = function () {
        var editor = this.getEditor();
        var selectedText = URIdecode.getSelectedText(editor);

            editor.replaceSelection(encodeURI(selectedText));
        }
    };
 
    return URIdecode;
}(obsidian.Plugin));

module.exports = URIdecode;

All realy function is:


URIdecode.prototype.URIdecode = function () {
    var editor = this.getEditor();
    var selectedText = URIdecode.getSelectedText(editor);

        editor.replaceSelection(encodeURI(selectedText));
    }
};

Maybe anybody can help? Where is my mistake?

It zip my try: source for my try

Well, one mistake is that you’ve not posted the source code for a plugin: you’ve posed the compiled code. The source code of the Paste URL into selection plugin is here, and is probably a better place for you to start.

It would also be a good idea for you to look closely at the Official Sample Plugin, making sure you understand how to build it. If you can get a copy of the sample plugin to work, then you know you’ve got your build environment set up correctly.

It is possible to write Obsidian plugins in plain Javascript without any of the build tools, but if you do that you need to understand what you’re doing from scratch and not just copy compiled code from other projects.

thank you for your detailed answer!!