muddler
Version:
A minifier for hackmud scripts
120 lines (118 loc) • 3.04 kB
text/typescript
//It's externs time.
const fs = require('fs');
const prefixes = ['$s', '$fs', '$ms', '$ls', '$ns', '$4s', '$3s', '$2s', '$1s']
const scripts = ['accts.balance',
'chats.leave',
'corps.quit',
'gui.vol',
'scripts.ensure_midsec',
'scripts.nullsec',
'sys.loc',
'users.active',
'accts.transactions',
'chats.send',
'corps.top',
'kernel.hardline',
'scripts.ensure_nullsec',
'scripts.sys',
'sys.manage',
'users.last_action',
'accts.xfer_gc_to',
'chats.tell',
'escrow.charge',
'market.browse',
'scripts.fullsec',
'scripts.trust',
'sys.specs',
'users.top',
'accts.xfer_gc_to_caller',
'chats.users',
'escrow.confirm',
'market.buy',
'scripts.get_access_level',
'scripts.user',
'sys.status',
'autos.reset',
'corps.create',
'escrow.stats',
'market.sell',
'scripts.get_level',
'sys.access_log',
'sys.upgrade_log',
'chats.channels',
'corps.hire',
'gui.chats',
'market.stats',
'scripts.highsec',
'sys.breach',
'sys.upgrades',
'chats.create',
'corps.manage',
'gui.quiet',
'scripts.ensure_highsec',
'scripts.lowsec',
'sys.cull',
'sys.xfer_upgrade_to',
'chats.join',
'corps.offers',
'gui.vfx',
'scripts.ensure_lowsec',
'scripts.midsec',
'sys.init',
'trust.me',
"scripts",
"scripts.lib()",
"scripts.lib().ok()",
"scripts.lib().not_impl()",
"scripts.lib().log()",
"scripts.lib().get_log()",
"scripts.lib().rand_int()",
"scripts.lib().are_ids_eq()",
"scripts.lib().is_obj()",
"scripts.lib().is_str()",
"scripts.lib().is_num()",
"scripts.lib().is_int()",
"scripts.lib().is_neg()",
"scripts.lib().is_arr()",
"scripts.lib().is_func()",
"scripts.lib().is_def()",
"scripts.lib().is_valid_name()",
"scripts.lib().dump()",
"scripts.lib().clone()",
"scripts.lib().merge()",
"scripts.lib().get_values()",
"scripts.lib().hash_code()",
"scripts.lib().to_gc_str()",
"scripts.lib().to_gc_num()",
"scripts.lib().to_game_timestr()" ,
"scripts.lib().cap_str_len()",
"scripts.lib().each()",
"scripts.lib().select()",
"scripts.lib().count()",
"scripts.lib().select_one()",
"scripts.lib().map()",
"scripts.lib().shuffle()",
"scripts.lib().sort_asc()",
"scripts.lib().sort_desc()",
"scripts.lib().num_sort_asc()",
"scripts.lib().num_sort_desc()",
"scripts.lib().max_val_index()",
"scripts.lib().add_time()",
"scripts.lib().security_level_names()",
"scripts.lib().get_security_level_name()",
"scripts.lib().create_rand_string()",
"scripts.lib().get_user_from_script()",
"scripts.lib().u_sort_num_arr_desc()",
"scripts.lib().can_continue_execution()",
"scripts.lib().can_continue_execution_error()",
"scripts.lib().date()",
"scripts.lib().get_date()",
"scripts.lib().get_date_utcsecs()",]
const dbs = ['$db', '$db.i()', '$db.r()', '$db.f()', '$db.u()'];
let out = scripts.map(script => prefixes.map(prefix => `${prefix}.${script}`)) as any
out = prefixes.concat(out as any)
out = dbs.concat(out as any);
out = out.reduce((acc, i) => acc.concat(i), [])
let strOut = out.join(';\n');
console.log(JSON.stringify(strOut));
fs.writeFileSync('dist/externs.js', strOut, 'utf8')