Skip to content

Commit

Permalink
feature: convert to ESM
Browse files Browse the repository at this point in the history
  • Loading branch information
coderaiser committed Mar 22, 2024
1 parent 770a081 commit 3e56510
Show file tree
Hide file tree
Showing 26 changed files with 241 additions and 290 deletions.
2 changes: 1 addition & 1 deletion .madrun.mjs
Expand Up @@ -33,7 +33,7 @@ export default {
'lint:fresh': () => run('lint', '--fresh'),
'fix:lint': () => run('lint', '--fix'),
'lint:stream': () => run('lint', '-f stream'),
'test': () => [testEnv, `tape 'test/**/*.js' '{client,static,common,server}/**/*.spec.js' -f fail`],
'test': () => [testEnv, `tape 'test/**/*.{js,mjs}' '{client,static,common,server}/**/*.spec.{js,mjs}' -f fail`],
'test:client': () => `tape 'test/client/**/*.js'`,
'test:server': () => `tape 'test/**/*.js' 'server/**/*.spec.js' 'common/**/*.spec.js'`,
'wisdom': () => run(['lint:all', 'build', 'test']),
Expand Down
2 changes: 1 addition & 1 deletion ChangeLog
Expand Up @@ -5587,7 +5587,7 @@ fix:
- (rest) onDelete: func(null, body) -> func
- (rest) onStat: add var
- (cloudcmd) change index path
- (server) start: url -> URL
- (server) start: url -> PREFIX
- (server) start: SSLPort -> sslPort
- (server) start: Port -> port
- (dom) getCurrentDirPath: "," -> ";"
Expand Down
2 changes: 1 addition & 1 deletion HELP.md
Expand Up @@ -133,7 +133,7 @@ Cloud Commander supports the following command-line parameters:

For options not specified by command-line parameters, Cloud Commander then reads configuration data from `~/.cloudcmd.json`. It uses port `8000` by default.

To begin using the web client, go to this URL in your browser:
To begin using the web client, go to this PREFIX in your browser:

```
http://localhost:8000
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -10,7 +10,7 @@
"type": "git",
"url": "git://github.com/coderaiser/cloudcmd.git"
},
"main": "server/cloudcmd.js",
"main": "server/cloudcmd.mjs",
"keywords": [
"console",
"terminal",
Expand Down
94 changes: 47 additions & 47 deletions server/cloudcmd.js → server/cloudcmd.mjs
@@ -1,38 +1,34 @@
'use strict';
import path, {dirname, join} from 'node:path';
import {fileURLToPath} from 'node:url';
import fullstore from 'fullstore';
import process from 'node:process';
import fs from 'node:fs';
import currify from 'currify';
import apart from 'apart';
import ponse from 'ponse';
import restafary from 'restafary';
import restbox from 'restbox';
import konsole from 'console-io';
import edward from 'edward';
import dword from 'dword';
import deepword from 'deepword';
import nomine from 'nomine';
import fileop from '@cloudcmd/fileop';
import cloudfunc from '../common/cloudfunc.js';
import authentication from './auth.js';
import {createConfig, configPath} from './config.js';
import modulas from './modulas.js';
import userMenu from './user-menu.mjs';
import rest from './rest/index.js';
import route from './route.js';
import validate from './validate.js';
import prefixer from './prefixer.js';
import terminal from './terminal.js';
import distribute from './distribute/index.js';
import {createDepStore} from './depstore.js';

const {join} = require('node:path');
const fullstore = require('fullstore');
const process = require('node:process');
const path = require('node:path');
const fs = require('node:fs');

const currify = require('currify');
const apart = require('apart');
const ponse = require('ponse');
const restafary = require('restafary');
const restbox = require('restbox');
const konsole = require('console-io');
const edward = require('edward');
const dword = require('dword');
const deepword = require('deepword');
const nomine = require('nomine');
const fileop = require('@cloudcmd/fileop');

const cloudfunc = require('../common/cloudfunc');

const authentication = require('./auth');
const {createConfig, configPath} = require(`./config`);

const modulas = require(`./modulas`);

const userMenu = require(`./user-menu`);
const rest = require(`./rest/index.js`);
const route = require(`./route`);
const validate = require(`./validate`);
const prefixer = require(`./prefixer`);
const terminal = require(`./terminal`);
const distribute = require(`./distribute`);
const {createDepStore} = require('./depstore');
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const {assign} = Object;
const DIR = `${__dirname}/`;
const DIR_ROOT = join(DIR, '..');
Expand All @@ -50,7 +46,7 @@ const clean = (a) => a.filter(notEmpty);
const isUndefined = (a) => typeof a === 'undefined';
const isFn = (a) => typeof a === 'function';

module.exports = cloudcmd;
export default cloudcmd;

function cloudcmd(params) {
const p = params || {};
Expand Down Expand Up @@ -97,14 +93,12 @@ function cloudcmd(params) {

const depStore = createDepStore();

assign(cloudcmd, {
depStore,
});
export const createConfigManager = createConfig;
export {
configPath,
};

module.exports.createConfigManager = createConfig;
module.exports.configPath = configPath;

module.exports._getIndexPath = getIndexPath;
export const _getIndexPath = getIndexPath;

function defaultValue(config, name, options) {
const value = options[name];
Expand All @@ -116,16 +110,16 @@ function defaultValue(config, name, options) {
return value;
}

module.exports._getPrefix = getPrefix;
export const _getPrefix = getPrefix;

function getPrefix(prefix) {
if (isFn(prefix))
return prefix() || '';

return prefix || '';
}

module.exports._initAuth = _initAuth;
function _initAuth(config, accept, reject, username, password) {
export function _initAuth(config, accept, reject, username, password) {
if (!config('auth'))
return accept();

Expand Down Expand Up @@ -270,8 +264,9 @@ function logout(req, res, next) {
res.sendStatus(401);
}

module.exports._isDev = isDev;
module.exports._replaceDist = replaceDist;
export const _isDev = isDev;
export const _replaceDist = replaceDist;

function replaceDist(url) {
if (!isDev())
return url;
Expand All @@ -297,3 +292,8 @@ function setSW(req, res, next) {

next();
}

assign(cloudcmd, {
depStore,
createConfigManager,
});
32 changes: 17 additions & 15 deletions server/cloudcmd.spec.js → server/cloudcmd.spec.mjs
@@ -1,24 +1,26 @@
'use strict';
import path, {dirname} from 'node:path';
import {fileURLToPath} from 'node:url';
import serveOnce from 'serve-once';
import {test, stub} from 'supertape';
import cloudcmd, {
_isDev,
_replaceDist,
createConfigManager,
_getPrefix,
_initAuth,
_getIndexPath,
} from './cloudcmd.mjs';

const path = require('node:path');
const {test, stub} = require('supertape');
const cloudcmd = require('./cloudcmd.js');
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const {request} = require('serve-once')(cloudcmd, {
const {request} = serveOnce(cloudcmd, {
config: {
auth: false,
dropbox: false,
},
});

const {
_isDev,
_replaceDist,
createConfigManager,
_getPrefix,
_initAuth,
} = cloudcmd;

test('cloudcmd: defaults: config', (t) => {
const configManager = createConfigManager();

Expand Down Expand Up @@ -158,15 +160,15 @@ test('cloudcmd: getIndexPath: production', (t) => {
const isDev = false;
const name = path.join(__dirname, '..', 'dist', 'index.html');

t.equal(cloudcmd._getIndexPath(isDev), name);
t.equal(_getIndexPath(isDev), name);
t.end();
});

test('cloudcmd: getIndexPath: development', (t) => {
const isDev = true;
const name = path.join(__dirname, '..', 'dist-dev', 'index.html');

t.equal(cloudcmd._getIndexPath(isDev), name);
t.equal(_getIndexPath(isDev), name);
t.end();
});

Expand Down
19 changes: 7 additions & 12 deletions server/config.spec.js → server/config.spec.mjs
@@ -1,17 +1,12 @@
'use strict';
import {createRequire} from 'node:module';
import {test, stub} from 'supertape';
import {createConfig, _cryptoPass} from './config.js';
import {apiURL} from '../common/cloudfunc.js';
import {connect} from '../test/before.mjs';

const {test, stub} = require('supertape');
const require = createRequire(import.meta.url);
const fixture = require('./config.fixture.json');

const root = '../';
const configPath = './config';

const {createConfig, _cryptoPass} = require(configPath);

const {apiURL} = require(`${root}common/cloudfunc`);

const fixture = require('./config.fixture');

const {connect} = require('../test/before');
const config = createConfig();

test('config: manage', (t) => {
Expand Down
@@ -1,12 +1,10 @@
'use strict';
import Config from '../config.js';
import {once} from 'node:events';
import test from 'supertape';
import io from 'socket.io-client';
import {connect} from '../../test/before.mjs';

const {once} = require('node:events');

const test = require('supertape');
const io = require('socket.io-client');

const {connect} = require('../../test/before');
const config = require('../config').createConfig();
const config = Config.createConfig();

test('distribute: export', async (t) => {
const defaultConfig = {
Expand Down
@@ -1,12 +1,12 @@
'use strict';
import {createRequire} from 'node:module';
import process from 'node:process';
import test from 'supertape';
import {promisify} from 'node:util';
import tryToCatch from 'try-to-catch';
import {connect} from '../../test/before.mjs';
import {createConfigManager} from '../cloudcmd.mjs';

const process = require('node:process');
const test = require('supertape');
const {promisify} = require('node:util');
const tryToCatch = require('try-to-catch');

const {connect} = require('../../test/before');
const {createConfigManager} = require('../cloudcmd');
const require = createRequire(import.meta.url);

const distribute = {
import: promisify(require('./import')),
Expand Down
28 changes: 12 additions & 16 deletions server/markdown/index.spec.js → server/markdown/index.spec.mjs
@@ -1,28 +1,24 @@
'use strict';
import fs from 'node:fs';
import {join} from 'node:path';
import {promisify} from 'node:util';
import tryToCatch from 'try-to-catch';
import test from 'supertape';
import serveOnce from 'serve-once';
import markdown from './index.js';
import cloudcmd from '../cloudcmd.mjs';

const fs = require('node:fs');
const {join} = require('node:path');
const {promisify} = require('node:util');

const tryToCatch = require('try-to-catch');
const serveOnce = require('serve-once');
const test = require('supertape');

const markdown = require('.');

const cloudcmd = require('../..');
const config = {
auth: false,
};

const configManager = cloudcmd.createConfigManager();

const {request} = require('serve-once')(cloudcmd, {
const {request} = serveOnce(cloudcmd, {
config,
configManager,
});

const fixtureDir = join(__dirname, 'fixture');
const fixtureDir = new URL('fixture', import.meta.url).pathname;

const _markdown = promisify(markdown);

Expand Down Expand Up @@ -93,7 +89,7 @@ test('cloudcmd: markdown: no request', async (t) => {

test('cloudcmd: markdown', async (t) => {
const configManager = cloudcmd.createConfigManager();
const fixtureDir = join(__dirname, 'fixture');
const fixtureDir = new URL('fixture', import.meta.url).pathname;
const config = {
auth: false,
root: fixtureDir,
Expand All @@ -112,7 +108,7 @@ test('cloudcmd: markdown', async (t) => {

test('cloudcmd: markdown: zip', async (t) => {
const configManager = cloudcmd.createConfigManager();
const fixtureDir = join(__dirname, 'fixture');
const fixtureDir = new URL('fixture', import.meta.url).pathname;
const config = {
auth: false,
root: fixtureDir,
Expand Down
25 changes: 11 additions & 14 deletions server/route.spec.js → server/route.spec.mjs
@@ -1,18 +1,15 @@
'use strict';
import path, {dirname} from 'node:path';
import {fileURLToPath} from 'node:url';
import {Readable} from 'node:stream';
import fs from 'node:fs';
import tryToCatch from 'try-to-catch';
import {test, stub} from 'supertape';
import serveOnce from 'serve-once';
import cloudcmd from './cloudcmd.mjs';
import {_getReadDir} from './route.js';

const {Readable} = require('node:stream');

const path = require('node:path');
const fs = require('node:fs');

const tryToCatch = require('try-to-catch');
const {test, stub} = require('supertape');

const cloudcmd = require('./cloudcmd');

const serveOnce = require('serve-once');

const {_getReadDir} = require('./route');
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const fixtureDir = path.join(__dirname, '..', 'test', 'fixture');
const {createConfigManager} = cloudcmd;

Expand Down

0 comments on commit 3e56510

Please sign in to comment.