@eljs/create-preset-structure
Version:
Project structure template powered by @eljs/create.
37 lines (30 loc) • 844 B
text/typescript
import { chalk, logger, type PackageJson, readJson, sleep } from '@eljs/utils'
import path from 'node:path'
import { $, argv } from 'zx'
$.verbose = true
main()
.then(() => process.exit(0))
.catch(error => {
console.error(`add owner error: ${error.message}`)
process.exit(1)
})
async function main(): Promise<void> {
const owners = argv._
if (!owners.length) {
logger.printErrorAndExit('please entry owner name.')
}
const { name: pkgName } = await readJson<PackageJson>(
path.resolve(__dirname, '../package.json'),
)
for (const owner of owners) {
try {
await $`pnpm owner add ${owner} ${pkgName}`
logger.ready(
`User ${chalk.bold(owner)} now has the permission of ${pkgName}.`,
)
} catch (err) {
await sleep(200)
await $`npm cache clean --force`
}
}
}