UNPKG

@launchmenu/applet-notes

Version:
76 lines 8.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupNotes = void 0; const fs_1 = require("fs"); const path_1 = __importDefault(require("path")); const core_1 = require("@launchmenu/core"); const settings_1 = require("../settings"); const uuid_1 = require("uuid"); /** * Sets up the notes * @param config The configuration for the notes to add * @returns A function that can be invoked to restore the previous notes */ async function setupNotes({ LM, notes, categories, }) { // Obtain the notes json file const { notesDir } = LM.getSettingsManager().getSettingsContext().get(settings_1.settings); const dir = notesDir.get(); const noteFilesDir = path_1.default.join(dir, "notes"); const notesPath = path_1.default.join(dir, "notes.json"); // Rename the old notes file const notesID = (await fs_1.promises.readdir(dir)) .map(dir => dir.match(/notes-BU(\d*)\.json/)) .reduce((cur, match) => Math.max(match ? Number(match[1]) : 0, cur), 0) + 1; const notesBUPath = path_1.default.join(dir, `notes-BU${notesID}.json`); const prevNotesPath = path_1.default.join(dir, notesID == 1 ? "notes.json" : `notes-BU${notesID - 1}.json`); if (fs_1.existsSync(prevNotesPath)) await fs_1.promises.rename(prevNotesPath, notesBUPath); // Rename the old notes dir const dirID = (await fs_1.promises.readdir(dir)) .map(dir => dir.match(/notes-BU(\d*)$/)) .reduce((cur, match) => Math.max(match ? Number(match[1]) : 0, cur), 0) + 1; const dirBUPath = path_1.default.join(dir, `notes-BU${dirID}`); const prevDirPath = path_1.default.join(dir, dirID == 1 ? "notes" : `notes-BU${dirID - 1}`); if (fs_1.existsSync(prevDirPath)) await fs_1.promises.rename(prevDirPath, dirBUPath); // Create files for each of the notes if (!fs_1.existsSync(noteFilesDir)) await fs_1.promises.mkdir(noteFilesDir, { recursive: true }); const noteLocations = await Promise.all(notes.map(async ({ content, ...rest }, i) => { const ID = uuid_1.v4(); const location = path_1.default.join(noteFilesDir, `${ID}.txt`); await fs_1.promises.writeFile(location, content); return { ID, location, modifiedAt: Date.now() + i * 10, ...rest }; })); // Store the notes and categories in the notes file const notesContent = JSON.stringify({ notes: noteLocations, categories }, null, 4); await fs_1.promises.writeFile(notesPath, notesContent); // Return the function that can be used to restore the notes return async () => { await core_1.wait(1000); if (fs_1.existsSync(notesBUPath)) { const nextScriptStarted = fs_1.existsSync(path_1.default.join(dir, `notes-BU${notesID + 1}.json`)); if (!nextScriptStarted) { // Rename isn't picked up by the file watcher :/ const content = await fs_1.promises.readFile(notesBUPath, "utf8"); await fs_1.promises.writeFile(notesPath, content); await fs_1.promises.unlink(notesBUPath); await core_1.wait(50); } } if (fs_1.existsSync(dirBUPath)) { const nextScriptStarted = fs_1.existsSync(path_1.default.join(dir, `notes-BU${dirID + 1}`)); if (!nextScriptStarted) { await fs_1.promises.rmdir(noteFilesDir, { recursive: true }); await core_1.wait(50); await fs_1.promises.rename(dirBUPath, noteFilesDir); await core_1.wait(50); } } }; } exports.setupNotes = setupNotes; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBOb3Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWNvcmRTY3JpcHRzL3NldHVwTm90ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsMkJBQThDO0FBQzlDLGdEQUF3QjtBQUN4QiwyQ0FBa0Q7QUFDbEQsMENBQXFDO0FBQ3JDLCtCQUFnQztBQUVoQzs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLFVBQVUsQ0FBQyxFQUM3QixFQUFFLEVBQ0YsS0FBSyxFQUNMLFVBQVUsR0FVYjtJQUNHLDZCQUE2QjtJQUM3QixNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsbUJBQVEsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUUzQixNQUFNLFlBQVksR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUUvQyw0QkFBNEI7SUFDNUIsTUFBTSxPQUFPLEdBQ1QsQ0FBQyxNQUFNLGFBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzVDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFD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