From 351df88aa630effde2ad41c5a606b8e2a9dd77f5 Mon Sep 17 00:00:00 2001 From: Matt Styles Date: Fri, 17 May 2024 11:26:22 +0100 Subject: [PATCH] update arc pass transform mode to definition transform --- scripts/arc/src/commands/build.ts | 1 + scripts/arc/src/commands/watch.ts | 1 + scripts/arc/src/definition.ts | 12 +++++++++--- scripts/arc/src/transform.ts | 15 ++++++--------- scripts/arc/src/transform/modes.ts | 6 ++++++ 5 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 scripts/arc/src/transform/modes.ts diff --git a/scripts/arc/src/commands/build.ts b/scripts/arc/src/commands/build.ts index d5c7bbd..9a29732 100644 --- a/scripts/arc/src/commands/build.ts +++ b/scripts/arc/src/commands/build.ts @@ -56,6 +56,7 @@ export const buildCommand: CommandModule = { }) const dtsStats = await generateDefinitions(opts.include, { outDir: opts.outDir, + mode: 'build', }) /** diff --git a/scripts/arc/src/commands/watch.ts b/scripts/arc/src/commands/watch.ts index f7d8c5a..c83d41a 100644 --- a/scripts/arc/src/commands/watch.ts +++ b/scripts/arc/src/commands/watch.ts @@ -141,6 +141,7 @@ export const watchCommand: CommandModule = { }) const dtsStats = await generateDefinitions([file.name], { outDir: opts.outDir, + mode: 'watch', }) // Disregard pipeline stats for now diff --git a/scripts/arc/src/definition.ts b/scripts/arc/src/definition.ts index 39a94cd..a716126 100644 --- a/scripts/arc/src/definition.ts +++ b/scripts/arc/src/definition.ts @@ -8,12 +8,16 @@ import ts from 'typescript' import { createLogger } from '@urban-ui/arc-log' import { readFile, writeFile } from './file.ts' import { log } from './log' +import { type TransformMode, TransformModes } from './transform/modes.ts' import { Pipeline } from './transform/pipeline.ts' import { createTask } from './transform/task.ts' const { debug } = createLogger('rk::definition', chalk.green) type FilesDts = Record +type DefinitionTransformContext = { + mode: TransformModes +} /** * Grabs the tsconfig file and writes ts definition files to disk @@ -25,14 +29,16 @@ export async function generateDefinitions( files: Array, options: { outDir: string + mode: TransformMode }, ) { const pipeline = new Pipeline< - // biome-ignore lint/suspicious/noExplicitAny: type gets mapped anyways by the pipeline - any, + DefinitionTransformContext, TaskInputParameters, TaskReturnType - >('dts') + >('dts', { + mode: TransformModes[options.mode], + }) pipeline.addStep(readConfig) pipeline.addStep( compile(files, { diff --git a/scripts/arc/src/transform.ts b/scripts/arc/src/transform.ts index 79ab959..cbd7174 100644 --- a/scripts/arc/src/transform.ts +++ b/scripts/arc/src/transform.ts @@ -19,17 +19,14 @@ import { readFile, writeFile } from './file.ts' import { log } from './log' import { traceFn } from './trace.ts' import { fileEvents, measure } from './transform/analytics.ts' +import { type TransformMode, TransformModes } from './transform/modes.ts' import { Pipeline } from './transform/pipeline.ts' import { createTask } from './transform/task.ts' const gzip = promisify(zlib.gzip) const { debug } = createLogger('rk::transform', chalk.blue) -enum TransformModes { - watch = 'watch', - build = 'build', -} -type TransformContext = { +type TranspileTransformContext = { outDir: string rootDir: string mode: TransformModes @@ -40,12 +37,12 @@ type TransformContext = { */ export async function transformFiles( files: Array, - options: Omit & { - mode: `${TransformModes}` + options: Omit & { + mode: TransformMode }, ) { const pipeline = new Pipeline< - TransformContext, + TranspileTransformContext, TaskInputParameters, TaskReturnType >('transform', { @@ -157,7 +154,7 @@ const compile = createTask( const write = createTask( 'write', async ( - ctx: PipelineContext, + ctx: PipelineContext, files: Awaited>, ) => { if (!(await fs.exists(ctx.outDir))) { diff --git a/scripts/arc/src/transform/modes.ts b/scripts/arc/src/transform/modes.ts new file mode 100644 index 0000000..a80698a --- /dev/null +++ b/scripts/arc/src/transform/modes.ts @@ -0,0 +1,6 @@ +export enum TransformModes { + watch = 'watch', + build = 'build', +} + +export type TransformMode = `${TransformModes}`