🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@ismartify/cli

Package Overview
Dependencies
Maintainers
2
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ismartify/cli - npm Package Compare versions

Comparing version
1.0.14
to
1.0.15
+32
-8
dist/index.js

@@ -20,3 +20,3 @@ #!/usr/bin/env node

async function loadScripts(scriptsDir) {
const jiti = createJiti(import.meta.url);
const jiti = createJiti(cwd());
const files = await glob("**/*.ts", { cwd: scriptsDir });

@@ -29,9 +29,6 @@ const scripts = [];

scripts.push({
name: file.replace(".ts", ""),
title: script.get("title") || file.replace(".ts", ""),
description: script.get("description") || "",
setup: script.get("setup") || (() => {
}),
main: script.get("main") || (() => {
})
setup: script.get("setup"),
main: script.get("main")
});

@@ -45,4 +42,31 @@ }

}
async function runScript(scriptName, context) {
const jiti = createJiti(import.meta.url);
try {
const script = await jiti.import(`./scripts/${scriptName}.ts`, { default: true });
if (script instanceof Map) {
console.log(`
\u6B63\u5728\u8FD0\u884C\u5185\u5D4C\u811A\u672C: ${scriptName}`);
if (script.get("setup")) {
await script.get("setup")(context);
}
await script.get("main")(context);
}
} catch (error) {
console.error(`\u65E0\u6CD5\u8FD0\u884C\u5185\u5D4C\u811A\u672C ${scriptName}:`, error);
process.exit(1);
}
}
async function main() {
const config = await loadConfig();
const context = {
name: "ismartify",
version: "1.0.14",
config
};
const args = process.argv.slice(2);
if (args.length > 0) {
await runScript(args[0], context);
return;
}
const scripts = await loadScripts(join(cwd(), "scripts"));

@@ -87,6 +111,6 @@ const { action } = await inquirer.prompt([

if (script.setup) {
await script.setup(config);
await script.setup(context);
}
if (script.main) {
await script.main(config);
await script.main(context);
}

@@ -93,0 +117,0 @@ break;

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport inquirer from 'inquirer';\nimport { createJiti } from 'jiti';\nimport { glob } from 'glob';\nimport { join } from 'path';\nimport { cwd } from 'process';\n\ninterface Config {\n [key: string]: any;\n}\n\ninterface ScriptContext {\n name: string;\n version: string;\n config: Config;\n}\n\ninterface ScriptModule {\n title: string;\n description: string;\n setup?: (context: ScriptContext) => Promise<void>;\n main: (context: ScriptContext) => Promise<void>;\n}\n\nasync function loadConfig(): Promise<Config> {\n const jiti = createJiti(cwd());\n try {\n const config = await jiti.import('./ismartify.config.js', { default: true }) as Config;\n return config;\n } catch (error) {\n console.log('未找到配置文件,使用空配置');\n return {};\n }\n}\n\nasync function loadScripts(scriptsDir: string) {\n const jiti = createJiti(import.meta.url);\n const files = await glob('**/*.ts', { cwd: scriptsDir });\n \n const scripts = [];\n for (const file of files) {\n try {\n const script = await jiti.import(join(scriptsDir, file), { default: true });\n if (script instanceof Map) {\n scripts.push({\n name: file.replace('.ts', ''),\n title: script.get('title') || file.replace('.ts', ''),\n description: script.get('description') || '',\n setup: script.get('setup') || (() => {}),\n main: script.get('main') || (() => {})\n });\n }\n } catch (error) {\n console.error(`无法加载脚本 ${file}:`, error);\n }\n }\n return scripts;\n}\n\nasync function main() {\n const config = await loadConfig();\n const scripts = await loadScripts(join(cwd(), 'scripts'));\n\n const { action } = await inquirer.prompt([\n {\n type: 'list',\n name: 'action',\n message: '请选择操作:',\n choices: [\n { name: '显示环境设置', value: 'setup' },\n { name: '运行脚本', value: 'run' },\n { name: '退出', value: 'exit' }\n ]\n }\n ]);\n\n switch (action) {\n case 'setup':\n console.log('\\n当前环境设置:');\n console.log(JSON.stringify(config, null, 2));\n break;\n case 'run':\n if (scripts.length === 0) {\n console.log('没有找到可用的脚本');\n break;\n }\n const { script } = await inquirer.prompt([\n {\n type: 'list',\n name: 'script',\n message: '请选择要运行的脚本:',\n choices: scripts.map(s => ({ \n name: `${s.title} - ${s.description}`, \n value: s \n }))\n }\n ]);\n\n console.log(`\\n正在运行: ${script.title}`);\n console.log(`描述: ${script.description}\\n`);\n\n // 先运行 setup(如果有)\n if (script.setup) {\n await script.setup(config);\n }\n // 再运行 main\n if (script.main) {\n await script.main(config);\n }\n break;\n case 'exit':\n console.log('感谢使用,再见!');\n process.exit(0);\n break;\n }\n}\n\nmain().catch((err) => {\n console.error('发生错误:', err);\n process.exit(1);\n});\n"],"mappings":"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","names":[]}
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport inquirer from 'inquirer';\nimport { createJiti } from 'jiti';\nimport { glob } from 'glob';\nimport { join } from 'path';\nimport { cwd } from 'process';\n\ninterface Config {\n [key: string]: any;\n}\n\ninterface ScriptContext {\n name: string;\n version: string;\n config: Config;\n}\n\ninterface ScriptModule {\n title: string;\n description: string;\n setup?: (context: ScriptContext) => Promise<void>;\n main: (context: ScriptContext) => Promise<void>;\n}\n\nasync function loadConfig(): Promise<Config> {\n const jiti = createJiti(cwd());\n try {\n const config = await jiti.import('./ismartify.config.js', { default: true }) as Config;\n return config;\n } catch (error) {\n console.log('未找到配置文件,使用空配置');\n return {};\n }\n}\n\nasync function loadScripts(scriptsDir: string): Promise<ScriptModule[]> {\n const jiti = createJiti(cwd());\n const files = await glob('**/*.ts', { cwd: scriptsDir });\n \n const scripts: ScriptModule[] = [];\n for (const file of files) {\n try {\n const script = await jiti.import(join(scriptsDir, file), { default: true });\n if (script instanceof Map) {\n scripts.push({\n title: script.get('title') || file.replace('.ts', ''),\n description: script.get('description') || '',\n setup: script.get('setup'),\n main: script.get('main')\n });\n }\n } catch (error) {\n console.error(`无法加载脚本 ${file}:`, error);\n }\n }\n return scripts;\n}\n\nasync function runScript(scriptName: string, context: ScriptContext) {\n const jiti = createJiti(import.meta.url);\n try {\n const script = await jiti.import(`./scripts/${scriptName}.ts`, { default: true });\n if (script instanceof Map) {\n console.log(`\\n正在运行内嵌脚本: ${scriptName}`);\n if (script.get('setup')) {\n await script.get('setup')(context);\n }\n await script.get('main')(context);\n }\n } catch (error) {\n console.error(`无法运行内嵌脚本 ${scriptName}:`, error);\n process.exit(1);\n }\n}\n\nasync function main() {\n const config = await loadConfig();\n const context: ScriptContext = {\n name: 'ismartify',\n version: '1.0.14',\n config\n };\n\n // 检查是否有命令行参数\n const args = process.argv.slice(2);\n if (args.length > 0) {\n // 如果有参数,尝试运行内嵌脚本\n await runScript(args[0], context);\n return;\n }\n\n const scripts = await loadScripts(join(cwd(), 'scripts'));\n\n const { action } = await inquirer.prompt([\n {\n type: 'list',\n name: 'action',\n message: '请选择操作:',\n choices: [\n { name: '显示环境设置', value: 'setup' },\n { name: '运行脚本', value: 'run' },\n { name: '退出', value: 'exit' }\n ]\n }\n ]);\n\n switch (action) {\n case 'setup':\n console.log('\\n当前环境设置:');\n console.log(JSON.stringify(config, null, 2));\n break;\n case 'run':\n if (scripts.length === 0) {\n console.log('没有找到可用的脚本');\n break;\n }\n const { script } = await inquirer.prompt([\n {\n type: 'list',\n name: 'script',\n message: '请选择要运行的脚本:',\n choices: scripts.map(s => ({ \n name: `${s.title} - ${s.description}`, \n value: s \n }))\n }\n ]);\n\n console.log(`\\n正在运行: ${script.title}`);\n console.log(`描述: ${script.description}\\n`);\n\n // 先运行 setup(如果有)\n if (script.setup) {\n await script.setup(context);\n }\n // 再运行 main\n if (script.main) {\n await script.main(context);\n }\n break;\n case 'exit':\n console.log('感谢使用,再见!');\n process.exit(0);\n break;\n }\n}\n\nmain().catch((err) => {\n console.error('发生错误:', err);\n process.exit(1);\n});\n"],"mappings":";;;AAEA,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AACrB,SAAS,YAAY;AACrB,SAAS,WAAW;AAmBpB,eAAe,aAA8B;AAC3C,QAAM,OAAO,WAAW,IAAI,CAAC;AAC7B,MAAI;AACF,UAAM,SAAS,MAAM,KAAK,OAAO,yBAAyB,EAAE,SAAS,KAAK,CAAC;AAC3E,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,IAAI,gFAAe;AAC3B,WAAO,CAAC;AAAA,EACV;AACF;AAEA,eAAe,YAAY,YAA6C;AACtE,QAAM,OAAO,WAAW,IAAI,CAAC;AAC7B,QAAM,QAAQ,MAAM,KAAK,WAAW,EAAE,KAAK,WAAW,CAAC;AAEvD,QAAM,UAA0B,CAAC;AACjC,aAAW,QAAQ,OAAO;AACxB,QAAI;AACF,YAAM,SAAS,MAAM,KAAK,OAAO,KAAK,YAAY,IAAI,GAAG,EAAE,SAAS,KAAK,CAAC;AAC1E,UAAI,kBAAkB,KAAK;AACzB,gBAAQ,KAAK;AAAA,UACX,OAAO,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,OAAO,EAAE;AAAA,UACpD,aAAa,OAAO,IAAI,aAAa,KAAK;AAAA,UAC1C,OAAO,OAAO,IAAI,OAAO;AAAA,UACzB,MAAM,OAAO,IAAI,MAAM;AAAA,QACzB,CAAC;AAAA,MACH;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,MAAM,wCAAU,IAAI,KAAK,KAAK;AAAA,IACxC;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAe,UAAU,YAAoB,SAAwB;AACnE,QAAM,OAAO,WAAW,YAAY,GAAG;AACvC,MAAI;AACF,UAAM,SAAS,MAAM,KAAK,OAAO,aAAa,UAAU,OAAO,EAAE,SAAS,KAAK,CAAC;AAChF,QAAI,kBAAkB,KAAK;AACzB,cAAQ,IAAI;AAAA,oDAAe,UAAU,EAAE;AACvC,UAAI,OAAO,IAAI,OAAO,GAAG;AACvB,cAAM,OAAO,IAAI,OAAO,EAAE,OAAO;AAAA,MACnC;AACA,YAAM,OAAO,IAAI,MAAM,EAAE,OAAO;AAAA,IAClC;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,oDAAY,UAAU,KAAK,KAAK;AAC9C,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAEA,eAAe,OAAO;AACpB,QAAM,SAAS,MAAM,WAAW;AAChC,QAAM,UAAyB;AAAA,IAC7B,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,EACF;AAGA,QAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;AACjC,MAAI,KAAK,SAAS,GAAG;AAEnB,UAAM,UAAU,KAAK,CAAC,GAAG,OAAO;AAChC;AAAA,EACF;AAEA,QAAM,UAAU,MAAM,YAAY,KAAK,IAAI,GAAG,SAAS,CAAC;AAExD,QAAM,EAAE,OAAO,IAAI,MAAM,SAAS,OAAO;AAAA,IACvC;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,QACP,EAAE,MAAM,wCAAU,OAAO,QAAQ;AAAA,QACjC,EAAE,MAAM,4BAAQ,OAAO,MAAM;AAAA,QAC7B,EAAE,MAAM,gBAAM,OAAO,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,EACF,CAAC;AAED,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,cAAQ,IAAI,yCAAW;AACvB,cAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3C;AAAA,IACF,KAAK;AACH,UAAI,QAAQ,WAAW,GAAG;AACxB,gBAAQ,IAAI,wDAAW;AACvB;AAAA,MACF;AACA,YAAM,EAAE,OAAO,IAAI,MAAM,SAAS,OAAO;AAAA,QACvC;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,SAAS,QAAQ,IAAI,QAAM;AAAA,YACzB,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,WAAW;AAAA,YACnC,OAAO;AAAA,UACT,EAAE;AAAA,QACJ;AAAA,MACF,CAAC;AAED,cAAQ,IAAI;AAAA,4BAAW,OAAO,KAAK,EAAE;AACrC,cAAQ,IAAI,iBAAO,OAAO,WAAW;AAAA,CAAI;AAGzC,UAAI,OAAO,OAAO;AAChB,cAAM,OAAO,MAAM,OAAO;AAAA,MAC5B;AAEA,UAAI,OAAO,MAAM;AACf,cAAM,OAAO,KAAK,OAAO;AAAA,MAC3B;AACA;AAAA,IACF,KAAK;AACH,cAAQ,IAAI,kDAAU;AACtB,cAAQ,KAAK,CAAC;AACd;AAAA,EACJ;AACF;AAEA,KAAK,EAAE,MAAM,CAAC,QAAQ;AACpB,UAAQ,MAAM,kCAAS,GAAG;AAC1B,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
{
"name": "@ismartify/cli",
"version": "1.0.14",
"version": "1.0.15",
"description": "iSmartify CLI 工具",

@@ -5,0 +5,0 @@ "type": "module",