123456789101112131415161718192021222324252627282930313233343536 |
- import { pathToFileURL } from 'node:url'
- import path from 'node:path'
- import glob from 'glob'
- export function getPaths (globPath) {
- return new Promise((resolve, reject) => {
- glob(globPath, (error, paths) => {
- if (error) reject(error)
- else resolve(paths)
- })
- })
- }
- export function sortObjectAlphabetically (obj) {
- return Object.fromEntries(
- Object.entries(obj).sort(([keyA], [keyB]) => keyA.localeCompare(keyB)),
- )
- }
- export function omit (object, key) {
- const copy = { ...object }
- delete copy[key]
- return copy
- }
- export async function getLocales (pathPattern) {
- const paths = await getPaths(pathPattern)
- return Object.fromEntries(await Promise.all(paths.map(async filePath => {
- const pluginName = path.basename(path.join(filePath, '..', '..'))
- const { default: locale } = await import(pathToFileURL(filePath))
- return [pluginName, locale]
- })))
- }
|