mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-22 05:32:44 -04:00
Add eslint-plugin-simple-import-sort to enforce consistent import ordering: - Node.js builtins first - External packages second - Relative imports last - Named imports sorted alphabetically within each statement
28 lines
913 B
TypeScript
28 lines
913 B
TypeScript
import type { ConfigDependencies } from '@pnpm/types'
|
|
import { pick } from 'ramda'
|
|
|
|
import { type ProjectsList, WORKSPACE_STATE_SETTING_KEYS, type WorkspaceState, type WorkspaceStateSettings } from './types.js'
|
|
|
|
export interface CreateWorkspaceStateOptions {
|
|
allProjects: ProjectsList
|
|
pnpmfiles: string[]
|
|
filteredInstall: boolean
|
|
settings: WorkspaceStateSettings
|
|
configDependencies?: ConfigDependencies
|
|
}
|
|
|
|
export const createWorkspaceState = (opts: CreateWorkspaceStateOptions): WorkspaceState => ({
|
|
lastValidatedTimestamp: Date.now(),
|
|
projects: Object.fromEntries(opts.allProjects.map(project => [
|
|
project.rootDir,
|
|
{
|
|
name: project.manifest.name,
|
|
version: project.manifest.version,
|
|
},
|
|
])),
|
|
pnpmfiles: opts.pnpmfiles,
|
|
settings: pick(WORKSPACE_STATE_SETTING_KEYS, opts.settings),
|
|
filteredInstall: opts.filteredInstall,
|
|
configDependencies: opts.configDependencies,
|
|
})
|