From 265c0b491acd5e368745fc9c3c48e1bd6b0623cf Mon Sep 17 00:00:00 2001 From: coderiaser Date: Wed, 28 Jan 2026 23:00:50 +0200 Subject: [PATCH] feature: client: key: vim: migrate to ESM --- client/key/index.mjs | 2 +- client/key/index.spec.mjs | 2 +- client/key/vim/{find.js => find.mjs} | 16 +++++++--------- client/key/vim/{find.spec.js => find.spec.mjs} | 11 +++-------- .../{globals.fixture.js => globals.fixture.mjs} | 6 ++---- client/key/vim/{index.js => index.mjs} | 14 ++++++-------- client/key/vim/{index.spec.js => index.spec.mjs} | 14 +++++--------- .../key/vim/{set-current.js => set-current.mjs} | 7 ++----- client/key/vim/{vim.js => vim.mjs} | 5 ++--- client/key/vim/{vim.spec.js => vim.spec.mjs} | 7 ++----- 10 files changed, 31 insertions(+), 53 deletions(-) rename client/key/vim/{find.js => find.mjs} (72%) rename client/key/vim/{find.spec.js => find.spec.mjs} (65%) rename client/key/vim/{globals.fixture.js => globals.fixture.mjs} (90%) rename client/key/vim/{index.js => index.mjs} (94%) rename client/key/vim/{index.spec.js => index.spec.mjs} (98%) rename client/key/vim/{set-current.js => set-current.mjs} (68%) rename client/key/vim/{vim.js => vim.mjs} (97%) rename client/key/vim/{vim.spec.js => vim.spec.mjs} (93%) diff --git a/client/key/index.mjs b/client/key/index.mjs index 587ba7d9..ee61f1f9 100644 --- a/client/key/index.mjs +++ b/client/key/index.mjs @@ -4,7 +4,7 @@ import {fullstore} from 'fullstore'; import * as Events from '#dom/events'; import * as Buffer from '../dom/buffer.mjs'; import * as KEY from './key.mjs'; -import _vim from './vim/index.js'; +import _vim from './vim/index.mjs'; import setCurrentByChar from './set-current-by-char.mjs'; import {createBinder} from './binder.mjs'; diff --git a/client/key/index.spec.mjs b/client/key/index.spec.mjs index 9d7440a9..ad4753fb 100644 --- a/client/key/index.spec.mjs +++ b/client/key/index.spec.mjs @@ -2,7 +2,7 @@ import autoGlobals from 'auto-globals'; import supertape from 'supertape'; import {ESC} from './key.mjs'; import {Key, _listener} from './index.mjs'; -import {getDOM, getCloudCmd} from './vim/globals.fixture.js'; +import {getDOM, getCloudCmd} from './vim/globals.fixture.mjs'; const test = autoGlobals(supertape); const {stub} = supertape; diff --git a/client/key/vim/find.js b/client/key/vim/find.mjs similarity index 72% rename from client/key/vim/find.js rename to client/key/vim/find.mjs index d8b517c1..e8db825a 100644 --- a/client/key/vim/find.js +++ b/client/key/vim/find.mjs @@ -1,12 +1,10 @@ -'use strict'; - -const {fullstore} = require('fullstore'); -const limier = require('limier'); +import {fullstore} from 'fullstore'; +import limier from 'limier'; const searchStore = fullstore([]); const searchIndex = fullstore(0); -module.exports.find = (value, names) => { +export const find = (value, names) => { const result = limier(value, names); searchStore(result); @@ -15,7 +13,7 @@ module.exports.find = (value, names) => { return result; }; -module.exports.findNext = () => { +export const findNext = () => { const names = searchStore(); const index = next(searchIndex(), names.length); @@ -23,7 +21,7 @@ module.exports.findNext = () => { return names[searchIndex()]; }; -module.exports.findPrevious = () => { +export const findPrevious = () => { const names = searchStore(); const index = previous(searchIndex(), names.length); @@ -31,8 +29,8 @@ module.exports.findPrevious = () => { return names[index]; }; -module.exports._next = next; -module.exports._previous = previous; +export const _next = next; +export const _previous = previous; function next(index, length) { if (index === length - 1) diff --git a/client/key/vim/find.spec.js b/client/key/vim/find.spec.mjs similarity index 65% rename from client/key/vim/find.spec.js rename to client/key/vim/find.spec.mjs index 74cc7fb1..ee9a9458 100644 --- a/client/key/vim/find.spec.js +++ b/client/key/vim/find.spec.mjs @@ -1,14 +1,9 @@ -'use strict'; - -const test = require('supertape'); -const dir = './'; - -const {getDOM} = require('./globals.fixture'); +import test from 'supertape'; +import {getDOM} from './globals.fixture.mjs'; +import {_next, _previous} from './find.mjs'; globalThis.DOM = getDOM(); -const {_next, _previous} = require(`${dir}find`); - test('cloudcmd: client: vim: _next', (t) => { const result = _next(1, 2); diff --git a/client/key/vim/globals.fixture.js b/client/key/vim/globals.fixture.mjs similarity index 90% rename from client/key/vim/globals.fixture.js rename to client/key/vim/globals.fixture.mjs index 3882e477..c49894d7 100644 --- a/client/key/vim/globals.fixture.js +++ b/client/key/vim/globals.fixture.mjs @@ -1,8 +1,6 @@ -'use strict'; - const noop = () => {}; -module.exports.getDOM = () => { +export const getDOM = () => { const prompt = Promise.resolve.bind(Promise); const CurrentInfo = { element: {}, @@ -34,7 +32,7 @@ module.exports.getDOM = () => { }; }; -module.exports.getCloudCmd = () => { +export const getCloudCmd = () => { const show = () => {}; return { diff --git a/client/key/vim/index.js b/client/key/vim/index.mjs similarity index 94% rename from client/key/vim/index.js rename to client/key/vim/index.mjs index c7d21a27..2bff53ee 100644 --- a/client/key/vim/index.js +++ b/client/key/vim/index.mjs @@ -1,15 +1,13 @@ -'use strict'; - /* global CloudCmd */ /* global DOM */ -const vim = require('./vim'); -const finder = require('./find'); -const { +import vim from './vim.mjs'; +import * as finder from './find.mjs'; +import { setCurrent, selectFileNotParent, -} = require('./set-current'); +} from './set-current.mjs'; -module.exports = (key, event, overrides = {}) => { +export default (key, event, overrides = {}) => { const defaults = { ...globalThis.DOM, ...globalThis.CloudCmd, @@ -131,7 +129,7 @@ const getOperations = (event, deps) => { }; }; -module.exports.selectFile = selectFileNotParent; +export const selectFile = selectFileNotParent; const _createFindPrevious = (overrides = {}) => () => { const {setCurrentByName} = overrides; diff --git a/client/key/vim/index.spec.js b/client/key/vim/index.spec.mjs similarity index 98% rename from client/key/vim/index.spec.js rename to client/key/vim/index.spec.mjs index 6c203c6c..10392c32 100644 --- a/client/key/vim/index.spec.js +++ b/client/key/vim/index.spec.mjs @@ -1,14 +1,10 @@ -'use strict'; - -const {test, stub} = require('supertape'); - -const {getDOM, getCloudCmd} = require('./globals.fixture'); +import {test, stub} from 'supertape'; +import {getDOM, getCloudCmd} from './globals.fixture.mjs'; +import vim, {selectFile as vimSelectFile} from './index.mjs'; globalThis.DOM = getDOM(); globalThis.CloudCmd = getCloudCmd(); -const vim = require('./index.js'); - const {assign} = Object; const {DOM} = globalThis; const {Buffer} = DOM; @@ -312,7 +308,7 @@ test('cloudcmd: client: key: selectFile: ..', (t) => { const selectFile = stub(); const current = {}; - vim.selectFile(current, { + vimSelectFile(current, { selectFile, getCurrentName, }); @@ -326,7 +322,7 @@ test('cloudcmd: client: key: selectFile', (t) => { const getCurrentName = stub().returns('x'); const current = {}; - vim.selectFile(current, { + vimSelectFile(current, { selectFile, getCurrentName, }); diff --git a/client/key/vim/set-current.js b/client/key/vim/set-current.mjs similarity index 68% rename from client/key/vim/set-current.js rename to client/key/vim/set-current.mjs index b761cc07..a2fc8646 100644 --- a/client/key/vim/set-current.js +++ b/client/key/vim/set-current.mjs @@ -1,8 +1,5 @@ -'use strict'; - /* global DOM */ -module.exports.selectFileNotParent = selectFileNotParent; -function selectFileNotParent(current, {getCurrentName, selectFile} = DOM) { +export function selectFileNotParent(current, {getCurrentName, selectFile} = DOM) { const name = getCurrentName(current); if (name === '..') @@ -11,7 +8,7 @@ function selectFileNotParent(current, {getCurrentName, selectFile} = DOM) { selectFile(current); } -module.exports.setCurrent = (sibling, {count, isVisual, isDelete}, {Info, setCurrentFile, unselectFiles, Operation}) => { +export const setCurrent = (sibling, {count, isVisual, isDelete}, {Info, setCurrentFile, unselectFiles, Operation}) => { let current = Info.element; const select = isVisual ? selectFileNotParent : unselectFiles; diff --git a/client/key/vim/vim.js b/client/key/vim/vim.mjs similarity index 97% rename from client/key/vim/vim.js rename to client/key/vim/vim.mjs index 175f36ac..0d0404c3 100644 --- a/client/key/vim/vim.js +++ b/client/key/vim/vim.mjs @@ -1,6 +1,5 @@ -'use strict'; +import {fullstore} from 'fullstore'; -const {fullstore} = require('fullstore'); const store = fullstore(''); const visual = fullstore(false); @@ -21,7 +20,7 @@ const rmFirst = (a) => { const noop = () => {}; -module.exports = (key, operations = {}) => { +export default (key, operations = {}) => { const prevStore = store(); const isVisual = visual(); const value = store(prevStore.concat(key)); diff --git a/client/key/vim/vim.spec.js b/client/key/vim/vim.spec.mjs similarity index 93% rename from client/key/vim/vim.spec.js rename to client/key/vim/vim.spec.mjs index f4ea0683..180f114f 100644 --- a/client/key/vim/vim.spec.js +++ b/client/key/vim/vim.spec.mjs @@ -1,8 +1,5 @@ -'use strict'; - -const {test, stub} = require('supertape'); - -const vim = require('./vim'); +import {test, stub} from 'supertape'; +import vim from './vim.mjs'; test('vim: no operations', (t) => { const result = vim('hello', {});