diff --git a/.core/.cli/commands/reactium/icons/actions.js b/.core/.cli/commands/reactium/icons/actions.js index 450266d..c53f3e9 100644 --- a/.core/.cli/commands/reactium/icons/actions.js +++ b/.core/.cli/commands/reactium/icons/actions.js @@ -1,13 +1,19 @@ -const path = require('path'); -const chalk = require('chalk'); -const fs = require('fs-extra'); -const _ = require('underscore'); -const op = require('object-path'); -const prettier = require('prettier').format; -const handlebars = require('handlebars').compile; -const cc = require('camelcase'); - -module.exports = spinner => { +import chalk from 'chalk'; +import fs from 'fs-extra'; +import hb from 'handlebars'; +import cc from 'camelcase'; +import op from 'object-path'; +import path from 'node:path'; + +// import { fileURLToPath } from 'node:url'; +// const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +import dirname from '../dirname.mjs'; +const __dirname = dirname(import.meta.url); + +const handlebars = hb.compile; + +export default spinner => { const message = text => { if (spinner) { spinner.text = text; @@ -17,7 +23,7 @@ module.exports = spinner => { let svgs = {}; return { - scan: ({ action, params, props }) => { + scan: async ({ action, params }) => { const { source } = params; message( @@ -25,7 +31,7 @@ module.exports = spinner => { ); const filePath = path.normalize(source); - const icons = require(filePath).icons; + const { icons } = await import(filePath); svgs = icons.reduce((obj, item) => { const id = cc(op.get(item, 'properties.name'), { @@ -39,7 +45,7 @@ module.exports = spinner => { return Promise.resolve({ action, status: 200 }); }, - create: ({ action, params, props }) => { + create: ({ action, params }) => { const { destination, name } = params; const dir = path.normalize(path.join(destination, 'svg')); @@ -64,7 +70,7 @@ module.exports = spinner => { return Promise.resolve({ action, status: 200 }); }, - index: ({ action, params, props }) => { + index: ({ action, params }) => { const { destination, name } = params; const dir = path.normalize(path.join(destination, name)); diff --git a/.core/.cli/commands/reactium/icons/generator.js b/.core/.cli/commands/reactium/icons/generator.js index 1abcc10..c23d977 100644 --- a/.core/.cli/commands/reactium/icons/generator.js +++ b/.core/.cli/commands/reactium/icons/generator.js @@ -1,7 +1,8 @@ -const ora = require('ora'); -const ActionSequence = require('action-sequence'); +import ora from 'ora'; +import ACTIONS from './actions.js'; +import ActionSequence from 'action-sequence'; -module.exports = ({ action, params, props }) => { +export default async ({ params, props }) => { const spinner = ora({ spinner: 'dots', color: 'cyan', @@ -9,7 +10,7 @@ module.exports = ({ action, params, props }) => { spinner.start(); - const actions = require('./actions')(spinner); + const actions = ACTIONS(spinner); return ActionSequence({ actions, diff --git a/.core/.cli/commands/reactium/icons/index.js b/.core/.cli/commands/reactium/icons/index.js index 9a81d32..aebff78 100644 --- a/.core/.cli/commands/reactium/icons/index.js +++ b/.core/.cli/commands/reactium/icons/index.js @@ -4,14 +4,16 @@ * ----------------------------------------------------------------------------- */ -const path = require('path'); -const chalk = require('chalk'); -const _ = require('underscore'); -const op = require('object-path'); -const prettier = require('prettier'); -const camelcase = require('camelcase'); -const generator = require('./generator'); -const { error, message } = arcli; +import generator from './generator.js'; +import { fileURLToPath } from 'node:url'; + +const { _, fs, chalk, op, camelcase, message, path, prettier } = arcli; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const pkg = JSON.parse( + fs.readFileSync(path.normalize(`${__dirname}/package.json`)), +); const formatDestination = (val, props) => { const { cwd } = props; @@ -37,7 +39,7 @@ const formatDestination = (val, props) => { const NAME = 'icons'; -const DESC = 'Reactium: Import icons from an Icomoon selection file.'; +const DESC = pkg.description; const CANCELED = 'Action canceled!'; @@ -154,8 +156,6 @@ const PREFLIGHT = ({ params }) => { }; const SCHEMA = () => { - //const { cwd, prompt } = props; - return { properties: { name: { @@ -180,7 +180,7 @@ const SCHEMA = () => { const ACTION = ({ opt, props }) => { let params; - const { cwd, prompt } = props; + const { prompt } = props; const schema = SCHEMA({ props }); const ovr = FLAGS_TO_PARAMS({ opt }); @@ -232,7 +232,4 @@ const COMMAND = ({ program, props }) => .option('-n, --name [name]', 'Name of the icon package.') .on('--help', () => HELP(props)); -module.exports = { - COMMAND, - NAME, -}; +export { COMMAND, NAME }; diff --git a/.core/.cli/commands/reactium/icons/package.json b/.core/.cli/commands/reactium/icons/package.json new file mode 100644 index 0000000..54b7d01 --- /dev/null +++ b/.core/.cli/commands/reactium/icons/package.json @@ -0,0 +1,9 @@ +{ + "type": "module", + "name": "icon-generator", + "version": "0.0.1", + "description": "Reactium: Import icons from an Icomoon selection file.", + "main": "index.js", + "author": "Reactium LLC", + "license": "MIT" +}