UNPKG

@alexaegis/workspace-tools

Version:

Tools for working with javascript workspaces

51 lines 1.71 kB
import { Nullable } from '@alexaegis/common'; import { JsonMatcherFrom } from '@alexaegis/match'; /** * The archetypical description of a project present in the "archetype" field * of the package.json. It's not the full description as other package.json * fields can be read, most notably the "private" field dictates if a package * is to be published or not. That information is not duplicated. * * node-app * node-lib * web-svelte-app * web-svelte-lib */ export interface PackageArchetype { platform?: Nullable<'node' | 'web'>; /** * @example 'node' | 'svelte' | 'angular' */ framework?: Nullable<string>; /** * @example 'ts' | 'js' */ language?: Nullable<string>; kind?: Nullable<'app' | 'lib' | 'fixture'>; /** * @example 'vite' | 'rollup' */ bundler?: Nullable<string>; /** * @example 'vitest' | 'jest' | 'mocha' */ testing?: Nullable<string>; /** * You can disable specific setup plugins if you wish to skip them in a * specific package, even if it would otherwise match the rest of the * archetype. * * Like define `["@alexaegis/autotool-plugin-vitest"]` if you don't want it * to be applied. * * Each treated as a RegExp */ disabledPlugins?: string[]; } export type PackageJsonArchetypeMatcher = JsonMatcherFrom<PackageArchetype>; /** * This will return names for when you want to denote the archetype in a * filename: `tsconfig.web-svelte-lib.json` or `tsconfig.node-lib.json` */ export declare const getEncodedArchetype: (archetypeMatcher?: PackageJsonArchetypeMatcher | undefined) => string; //# sourceMappingURL=package-archetype.interface.d.ts.map