UNPKG

@-xun/common-dummies

Version:

A collection of dummy projects, packages, and other testable structures

38 lines 1.6 kB
import type { AbsolutePath } from '@-xun/fs'; import type { XPackageJson } from '@-xun/project-types'; import type { Merge } from 'type-fest'; /** * A type representing the name of an available dummy package. */ export type PackageName = 'root' | 'simple' | 'complex' | 'sugared' | 'unlimited' | 'defaults'; /** * Represents the dummy package metadata returned by the `getDummyPackage` * function. */ export type DummyPackageMetadata<RequireObjectImports extends boolean = false, RequireObjectExports extends boolean = false> = { path: AbsolutePath; name: string; packageJson: Merge<XPackageJson, { imports: RequireObjectImports extends true ? Exclude<XPackageJson['imports'], string | undefined | null | unknown[]> : XPackageJson['imports'] | undefined; exports: RequireObjectExports extends true ? Exclude<XPackageJson['exports'], string | undefined | null | unknown[]> : XPackageJson['exports'] | undefined; }>; }; /** * Return metadata about an available dummy package. */ export declare function getDummyPackage<RequireObjectImports extends boolean = false, RequireObjectExports extends boolean = false>(id: PackageName, options?: { /** * If `true`, `imports` must be an object and not `undefined`, `null`, * `string`, or an array. * * @default false */ requireObjectImports?: RequireObjectImports; /** * If `true`, `exports` must be an object and not `undefined`, `null`, * `string`, or an array. * * @default false */ requireObjectExports?: RequireObjectExports; }): DummyPackageMetadata<RequireObjectImports, RequireObjectExports>;