feature: client: modules: user-menu: migrate to ESM

This commit is contained in:
coderiaser 2026-01-29 18:58:09 +02:00
parent ebfdf8c087
commit 73fa4961c0
12 changed files with 47 additions and 74 deletions

View file

@ -136,7 +136,7 @@ export default {
[`${modules}/terminal`]: `${dirModules}/terminal.js`,
[`${modules}/terminal-run`]: `${dirModules}/terminal-run.js`,
[`${modules}/cloud`]: `${dirModules}/cloud.mjs`,
[`${modules}/user-menu`]: `${dirModules}/user-menu/index.js`,
[`${modules}/user-menu`]: `${dirModules}/user-menu/index.mjs`,
[`${modules}/polyfill`]: `${dirModules}/polyfill.js`,
[`${modules}/command-line`]: `${dirModules}/command-line.js`,
},

View file

@ -1,6 +1,4 @@
'use strict';
module.exports = (menuFn) => {
export const getUserMenu = (menuFn) => {
const module = {};
const fn = Function('module', menuFn);

View file

@ -1,7 +1,5 @@
'use strict';
const test = require('supertape');
const getUserMenu = require('./get-user-menu');
import test from 'supertape';
import {getUserMenu} from './get-user-menu.mjs';
test('user-menu: getUserMenu', (t) => {
const menu = `module.exports = {

View file

@ -1,47 +1,44 @@
'use strict';
/* global CloudCmd, DOM */
require('../../../css/user-menu.css');
const currify = require('currify');
const wraptile = require('wraptile');
const {fullstore} = require('fullstore');
const load = require('load.js');
const createElement = require('@cloudcmd/create-element');
const {tryCatch} = require('try-catch');
const {tryToCatch} = require('try-to-catch');
const {codeFrameColumns} = require('@babel/code-frame');
const Images = require('../../dom/images.mjs');
const Dialog = require('#dom/dialog');
const getUserMenu = require('./get-user-menu');
const navigate = require('./navigate');
const parseError = require('./parse-error');
const parseUserMenu = require('./parse-user-menu');
const {runSelected} = require('./run');
import currify from 'currify';
import wraptile from 'wraptile';
import {fullstore} from 'fullstore';
import load from 'load.js';
import createElement from '@cloudcmd/create-element';
import {tryCatch} from 'try-catch';
import {tryToCatch} from 'try-to-catch';
import {codeFrameColumns} from '@babel/code-frame';
import * as Dialog from '#dom/dialog';
import '../../../css/user-menu.css';
import * as Images from '../../dom/images.mjs';
import {getUserMenu} from './get-user-menu.mjs';
import {navigate} from './navigate.mjs';
import {parseError} from './parse-error.mjs';
import {parseUserMenu} from './parse-user-menu.mjs';
import {runSelected} from './run.mjs';
const loadCSS = load.css;
const sourceStore = fullstore();
const Name = 'UserMenu';
CloudCmd[Name] = module.exports;
CloudCmd[Name] = {
init,
show,
hide,
};
const {Key} = CloudCmd;
module.exports.init = async () => {
export async function init() {
await Promise.all([
loadCSS(`${CloudCmd.prefix}/dist/user-menu.css`),
CloudCmd.View(),
]);
};
module.exports.show = show;
module.exports.hide = hide;
}
const {CurrentInfo} = DOM;
async function show() {
export async function show() {
Images.show.load('top');
const {dirPath} = CurrentInfo;
@ -107,7 +104,7 @@ function fillTemplate(options) {
return result.join('');
}
function hide() {
export function hide() {
CloudCmd.View.hide();
}

View file

@ -1,18 +1,15 @@
'use strict';
const {fullstore} = require('fullstore');
const {
import {fullstore} from 'fullstore';
import {
J,
K,
UP,
DOWN,
} = require('../../key/key.mjs');
} from '../../key/key.mjs';
const store = fullstore(1);
const isDigit = (a) => /^\d+$/.test(a);
module.exports = (el, {key, keyCode}) => {
export const navigate = (el, {key, keyCode}) => {
if (isDigit(key))
store(Number(key));

View file

@ -1,14 +1,11 @@
'use strict';
const test = require('supertape');
const navigate = require('./navigate');
const {
import test from 'supertape';
import {navigate} from './navigate.mjs';
import {
UP,
DOWN,
J,
K,
} = require('../../key/key.mjs');
} from '../../key/key.mjs';
test('cloudcmd: user-menu: navigate: DOWN', (t) => {
const el = {

View file

@ -1,8 +1,6 @@
'use strict';
const isNumber = (a) => typeof a === 'number';
module.exports = (error) => {
export const parseError = (error) => {
const {lineNumber, columnNumber} = error;
// thank you firefox

View file

@ -1,7 +1,5 @@
'use strict';
const test = require('supertape');
const parseError = require('./parse-error');
import test from 'supertape';
import {parseError} from './parse-error.mjs';
test('user-menu: parse-error', (t) => {
const result = parseError({

View file

@ -1,8 +1,6 @@
'use strict';
const {entries, assign} = Object;
module.exports = (userMenu) => {
export const parseUserMenu = (userMenu) => {
const names = [];
const keys = {};
const items = {};

View file

@ -1,13 +1,10 @@
'use strict';
const {test, stub} = require('supertape');
const parse = require('./parse-user-menu');
import {test, stub} from 'supertape';
import {parseUserMenu} from './parse-user-menu.mjs';
test('cloudcmd: user menu: parse', (t) => {
const fn = stub();
const __settings = {};
const result = parse({
const result = parseUserMenu({
__settings,
'F2 - Rename file': fn,
'_f': fn,

View file

@ -1,6 +1,4 @@
'use strict';
module.exports.runSelected = async (selectedItems, items, runUserMenu) => {
export const runSelected = async (selectedItems, items, runUserMenu) => {
for (const selected of selectedItems) {
await runUserMenu(items[selected]);
}

View file

@ -1,8 +1,5 @@
'use strict';
const {test, stub} = require('supertape');
const {runSelected} = require('./run');
import {test, stub} from 'supertape';
import {runSelected} from './run.mjs';
test('cloudcmd: client: user menu: run', async (t) => {
const runUserMenu = stub();