更新若干功能
This commit is contained in:
35
frontend/src/packCmds.js
Normal file
35
frontend/src/packCmds.js
Normal file
@@ -0,0 +1,35 @@
|
||||
// 打包命令本地存储:启动台应用 / 项目各自多条 name+cmd,不进云同步。
|
||||
const PACK_KEY = 'cc-pack-cmds'
|
||||
|
||||
/** @typedef {{ name: string, cmd: string }} PackCmd */
|
||||
|
||||
function loadAll() {
|
||||
try { return JSON.parse(localStorage.getItem(PACK_KEY) || '{}') || {} } catch { return {} }
|
||||
}
|
||||
|
||||
function saveAll(map) {
|
||||
localStorage.setItem(PACK_KEY, JSON.stringify(map))
|
||||
}
|
||||
|
||||
/** @param {'lp'|'proj'} scope @param {number|string} id */
|
||||
export function packKey(scope, id) {
|
||||
return `${scope}:${id}`
|
||||
}
|
||||
|
||||
/** @returns {PackCmd[]} */
|
||||
export function getPackCmds(scope, id) {
|
||||
const list = loadAll()[packKey(scope, id)]
|
||||
return Array.isArray(list) ? list.filter(x => x && String(x.cmd || '').trim()) : []
|
||||
}
|
||||
|
||||
/** @param {PackCmd[]} cmds */
|
||||
export function setPackCmds(scope, id, cmds) {
|
||||
const map = loadAll()
|
||||
const cleaned = (cmds || [])
|
||||
.map(x => ({ name: String(x.name || '').trim(), cmd: String(x.cmd || '').trim() }))
|
||||
.filter(x => x.cmd)
|
||||
const k = packKey(scope, id)
|
||||
if (!cleaned.length) delete map[k]
|
||||
else map[k] = cleaned
|
||||
saveAll(map)
|
||||
}
|
||||
Reference in New Issue
Block a user