diff --git a/.webpack/js.mjs b/.webpack/js.mjs index be6eef15..f2901384 100644 --- a/.webpack/js.mjs +++ b/.webpack/js.mjs @@ -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`, }, diff --git a/client/modules/user-menu/get-user-menu.js b/client/modules/user-menu/get-user-menu.mjs similarity index 72% rename from client/modules/user-menu/get-user-menu.js rename to client/modules/user-menu/get-user-menu.mjs index 6281eda1..aa3a1076 100644 --- a/client/modules/user-menu/get-user-menu.js +++ b/client/modules/user-menu/get-user-menu.mjs @@ -1,6 +1,4 @@ -'use strict'; - -module.exports = (menuFn) => { +export const getUserMenu = (menuFn) => { const module = {}; const fn = Function('module', menuFn); diff --git a/client/modules/user-menu/get-user-menu.spec.js b/client/modules/user-menu/get-user-menu.spec.mjs similarity index 79% rename from client/modules/user-menu/get-user-menu.spec.js rename to client/modules/user-menu/get-user-menu.spec.mjs index 20f2e11e..aae42909 100644 --- a/client/modules/user-menu/get-user-menu.spec.js +++ b/client/modules/user-menu/get-user-menu.spec.mjs @@ -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 = { diff --git a/client/modules/user-menu/index.js b/client/modules/user-menu/index.mjs similarity index 79% rename from client/modules/user-menu/index.js rename to client/modules/user-menu/index.mjs index 19d7e064..9b85612c 100644 --- a/client/modules/user-menu/index.js +++ b/client/modules/user-menu/index.mjs @@ -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(); } diff --git a/client/modules/user-menu/navigate.js b/client/modules/user-menu/navigate.mjs similarity index 86% rename from client/modules/user-menu/navigate.js rename to client/modules/user-menu/navigate.mjs index 89334ebc..2ebebd17 100644 --- a/client/modules/user-menu/navigate.js +++ b/client/modules/user-menu/navigate.mjs @@ -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)); diff --git a/client/modules/user-menu/navigate.spec.js b/client/modules/user-menu/navigate.spec.mjs similarity index 95% rename from client/modules/user-menu/navigate.spec.js rename to client/modules/user-menu/navigate.spec.mjs index 6fe97d15..a2de328b 100644 --- a/client/modules/user-menu/navigate.spec.js +++ b/client/modules/user-menu/navigate.spec.mjs @@ -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 = { diff --git a/client/modules/user-menu/parse-error.js b/client/modules/user-menu/parse-error.mjs similarity index 92% rename from client/modules/user-menu/parse-error.js rename to client/modules/user-menu/parse-error.mjs index aa7d574a..23d605e0 100644 --- a/client/modules/user-menu/parse-error.js +++ b/client/modules/user-menu/parse-error.mjs @@ -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 diff --git a/client/modules/user-menu/parse-error.spec.js b/client/modules/user-menu/parse-error.spec.mjs similarity index 88% rename from client/modules/user-menu/parse-error.spec.js rename to client/modules/user-menu/parse-error.spec.mjs index cb78fc6d..cef3ae55 100644 --- a/client/modules/user-menu/parse-error.spec.js +++ b/client/modules/user-menu/parse-error.spec.mjs @@ -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({ diff --git a/client/modules/user-menu/parse-user-menu.js b/client/modules/user-menu/parse-user-menu.mjs similarity index 92% rename from client/modules/user-menu/parse-user-menu.js rename to client/modules/user-menu/parse-user-menu.mjs index f97cc109..e4ad39e3 100644 --- a/client/modules/user-menu/parse-user-menu.js +++ b/client/modules/user-menu/parse-user-menu.mjs @@ -1,8 +1,6 @@ -'use strict'; - const {entries, assign} = Object; -module.exports = (userMenu) => { +export const parseUserMenu = (userMenu) => { const names = []; const keys = {}; const items = {}; diff --git a/client/modules/user-menu/parse-user-menu.spec.js b/client/modules/user-menu/parse-user-menu.spec.mjs similarity index 79% rename from client/modules/user-menu/parse-user-menu.spec.js rename to client/modules/user-menu/parse-user-menu.spec.mjs index 0807896f..a7914152 100644 --- a/client/modules/user-menu/parse-user-menu.spec.js +++ b/client/modules/user-menu/parse-user-menu.spec.mjs @@ -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, diff --git a/client/modules/user-menu/run.js b/client/modules/user-menu/run.mjs similarity index 51% rename from client/modules/user-menu/run.js rename to client/modules/user-menu/run.mjs index 61228be9..51e9fe02 100644 --- a/client/modules/user-menu/run.js +++ b/client/modules/user-menu/run.mjs @@ -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]); } diff --git a/client/modules/user-menu/run.spec.js b/client/modules/user-menu/run.spec.mjs similarity index 75% rename from client/modules/user-menu/run.spec.js rename to client/modules/user-menu/run.spec.mjs index 488c6c27..8cac782d 100644 --- a/client/modules/user-menu/run.spec.js +++ b/client/modules/user-menu/run.spec.mjs @@ -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();