From 22e46c16f538619b387275253f33baf897a356b7 Mon Sep 17 00:00:00 2001 From: zernonia Date: Mon, 18 Sep 2023 23:47:43 +0800 Subject: [PATCH] fix: babel/core required --- .../registry/styles/new-york/command.json | 2 +- packages/cli/src/commands/init.ts | 2 +- .../src/utils/transformers/transform-sfc.ts | 20 ++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/apps/www/src/public/registry/styles/new-york/command.json b/apps/www/src/public/registry/styles/new-york/command.json index 2a263163..e693ff89 100644 --- a/apps/www/src/public/registry/styles/new-york/command.json +++ b/apps/www/src/public/registry/styles/new-york/command.json @@ -22,7 +22,7 @@ }, { "name": "CommandGroup.vue", - "content": "\n\n\n" + "content": "\n\n\n" }, { "name": "CommandInput.vue", diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts index bdb0d18f..fdb49afb 100644 --- a/packages/cli/src/commands/init.ts +++ b/packages/cli/src/commands/init.ts @@ -8,7 +8,6 @@ import template from 'lodash.template' import ora from 'ora' import prompts from 'prompts' import * as z from 'zod' -import { transform as transformByDetype } from 'detype' import * as templates from '../utils/templates' import { getRegistryBaseColor, @@ -18,6 +17,7 @@ import { import { logger } from '../utils/logger' import { handleError } from '../utils/handle-error' import { getPackageManager } from '../utils/get-package-manager' +import { transformByDetype } from '../utils/transformers/transform-sfc' import { type Config, DEFAULT_COMPONENTS, diff --git a/packages/cli/src/utils/transformers/transform-sfc.ts b/packages/cli/src/utils/transformers/transform-sfc.ts index b8faa92e..193e0069 100644 --- a/packages/cli/src/utils/transformers/transform-sfc.ts +++ b/packages/cli/src/utils/transformers/transform-sfc.ts @@ -1,18 +1,20 @@ import { createRequire } from 'node:module' -import { type SourceFile, SyntaxKind } from 'ts-morph' -import { transform as transformByDetype } from 'detype' -import type { Config } from '../get-config' -import { transformImport } from './transform-import' import type { Transformer } from '@/src/utils/transformers' +// required cause Error: Dynamic require of "@babel/core" is not supported +const require = createRequire(import.meta.url) +const { transform } = require('detype') + +export async function transformByDetype(content: string, filename: string) { + return await transform(content, filename, { + removeTsComments: true, + }) +} + export const transformSFC: Transformer = async ({ sourceFile, config }) => { const output = sourceFile?.getFullText() if (config?.typescript) return output - const clean = await transformByDetype(output, 'app.vue', { - removeTsComments: true, - }) - - return clean + return await transformByDetype(output, 'app.vue') }