From 71c3462d0d5aec93f7806dea656e97dadcba16a0 Mon Sep 17 00:00:00 2001 From: yuyinws Date: Mon, 22 Jul 2024 17:55:49 +0800 Subject: [PATCH 1/4] refactor: utils --- src/core/utils.ts | 242 ---------------------- src/core/utils/codegen.ts | 135 ++++++++++++ src/core/utils/common.ts | 106 ++++++++++ src/core/utils/index.ts | 2 + src/core/utils/themes.ts | 80 +++++++ test/__snapshots__/comment.test.ts.snap | 8 +- test/__snapshots__/options.test.ts.snap | 16 +- test/__snapshots__/transform.test.ts.snap | 26 +-- test/themes.test.ts | 8 + 9 files changed, 356 insertions(+), 267 deletions(-) delete mode 100644 src/core/utils.ts create mode 100644 src/core/utils/codegen.ts create mode 100644 src/core/utils/common.ts create mode 100644 src/core/utils/index.ts create mode 100644 src/core/utils/themes.ts create mode 100644 test/themes.test.ts diff --git a/src/core/utils.ts b/src/core/utils.ts deleted file mode 100644 index efbf989..0000000 --- a/src/core/utils.ts +++ /dev/null @@ -1,242 +0,0 @@ -import { cwd } from 'node:process' -import { extname, relative } from 'pathe' -import { createFilter } from '@rollup/pluginutils' -import type { Comment, Node } from '@babel/types' -import type { Compiler, GenContext, Options } from '../types' -import { PLUGIN_NAME } from './constants' - -export const filter = createFilter( - [/\.vue$/, /\.vue\?vue/, /\.vue\?v=/, /\.ts$/, /\.tsx$/, /\.js$/, /\.jsx$/, /\.svelte$/, /\.astro$/], - [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/], -) - -const commonStyle = 'padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;' - -const consoleStyles: Record = { - '.js': `${commonStyle}color: #111827; background: #F7DF1E`, - '.jsx': `${commonStyle}color: #111827; background: #F7DF1E`, - '.ts': `${commonStyle}color: #fff; background: #3178C6`, - '.tsx': `${commonStyle}color: #fff; background: #3178C6`, - '.vue': `${commonStyle}color: #fff; background: #4FC08D`, - '.svelte': `${commonStyle}color: #fff; background: #FF3E00`, - '.astro': `${commonStyle}color: #fff; background: #FF5D01`, - 'default': `${commonStyle}color: #111827; background: #F7DF1E`, -} - -export function getConsoleStyle(fileType: string): string { - return consoleStyles[fileType] ?? consoleStyles.default -} - -export const launchEditorStyle = 'background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px' - -export function printInfo(options: Options, spacing: string = ' ') { - if (options.disableLaunchEditor || options.silent) - return false - // eslint-disable-next-line no-console - console.log(` \x1B[32m鉃淺x1B[39m${spacing}\x1B[1mTurboConsole\x1B[22m: \x1B[36mhttp://localhost:\x1B[1m${options.port}\x1B[22m/inspect\x1B[39m`) -} - -export function getFileNameWithoutExtension(fileName: string) { - if (!fileName) - return '' - return fileName.replace(/\.[^/.]+$/, '') -} - -export function getExtendedPath(filePath: string, extendedPathFileNames?: string[]) { - const sep = filePath.includes('\\') ? '\\' : '/' - const arr = filePath.split(sep) - let basename = arr.pop() || '' - const basenameWithoutExt = getFileNameWithoutExtension(basename).toLowerCase() - if (extendedPathFileNames && extendedPathFileNames?.length > 0) { - let isEnd = false - if (extendedPathFileNames.some(name => basenameWithoutExt === name.toLowerCase())) { - while (!isEnd) { - const fileName = arr.pop() - basename = `${fileName}/${basename}` - if (extendedPathFileNames.every(name => name.toLowerCase() !== fileName?.toLowerCase())) - isEnd = true - } - } - } - return basename -} - -export async function getCompiler(id: string): Promise { - const urlObject = new URL(id, 'file://') - const fileType = extname(urlObject.pathname) - - switch (fileType) { - case '.vue': { - const Vue = await import('vue') - if (!Vue || typeof Vue.version !== 'string') { - console.warn(`[${PLUGIN_NAME}]: Vue is not installed`) - return undefined - } - else if (Vue.version.startsWith('2.')) { - return 'vue2' - } - else if (Vue.version.startsWith('3.')) { - return 'vue3' - } - else { - console.warn(`[${PLUGIN_NAME}]: Unsupported Vue version: ${Vue.version}`) - return undefined - } - } - case '.svelte': - return 'svelte' - case '.js': - return 'vanilla' - case '.jsx': - return 'vanilla' - case '.ts': - return 'vanilla' - case '.tsx': - return 'vanilla' - case '.astro': - return 'vanilla' - default: - return undefined - } -} - -export function isPluginDisable(meta: { - comments: Comment[] - originalLine: number - id: string - type: 'top-file' | 'inline-file' - compiler: Compiler -}) { - const { comments, originalLine, type, compiler } = meta - - if (comments?.length === 0) - return false - - if (type === 'top-file') { - const startLine = compiler === 'vanilla' ? 1 : 2 - - const disablePluginComment = comments?.find(comment => comment.value.includes('turbo-console-disable')) - - if (disablePluginComment && disablePluginComment.loc!.start.line <= startLine) - return true - } - else if (type === 'inline-file') { - const currentLineComment = comments?.find(comment => comment.value.includes('turbo-console-disable-line') && comment.loc!.start.line === originalLine) - const nextLineComment = comments?.find(comment => comment.value.includes('turbo-console-disable-next-line') && comment.loc!.start.line === originalLine - 1) - - if (currentLineComment || nextLineComment) - return true - } - - return false -} - -export function setFilePathMap(filePath: string): string { - let filePathMap = globalThis.TurboConsoleFilePathMap - - if (typeof filePathMap === 'undefined') - filePathMap = new Map() - - if (filePathMap.has(filePath)) - return filePathMap.get(filePath)! - - function getRandomString() { - const randomString = Math.random().toString(20).substring(2, 6) - - for (const [_, value] of filePathMap) { - if (value === randomString) - return getRandomString() - } - - return randomString - } - - const randomString = getRandomString() - filePathMap.set(filePath, randomString) - globalThis.TurboConsoleFilePathMap = filePathMap - - return randomString -} - -export function genConsoleString(genContext: GenContext) { - const { options, originalColumn, originalLine, argType, id } = genContext - let { argsName } = genContext - const { prefix, suffix, disableLaunchEditor, port, disableHighlight, extendedPathFileNames } = options - const _prefix = prefix ? `${prefix}\\n` : '' - const _suffix = suffix ? `\\n${suffix}` : '' - - const urlObject = new URL(id, 'file://') - const filePath = urlObject.pathname - const fileName = getExtendedPath(filePath, extendedPathFileNames) - const fileType = extname(filePath) - - const relativePath = relative(cwd(), filePath) - const filePathMapString = disableLaunchEditor ? '' : setFilePathMap(relativePath) - - // Parsing escaped unicode symbols - try { - argsName = JSON.parse(`"${argsName}"`) - } - catch (error) { - console.error(`${PLUGIN_NAME}:${error}`) - } - - if (argsName?.length > 30) - argsName = `${argsName.slice(0, 30)}...` - - // not output when argtype is string or number - const lineInfo = `%c馃殌 ${fileName}\u00B7${originalLine}${['StringLiteral', 'NumericLiteral'].includes(argType) ? '' : ` ~ ${argsName}`}` - const codePosition = `${filePathMapString},${originalLine},${(originalColumn || 0) + 1}` - - const launchEditorString = `%c馃敠 http://localhost:${port}#${codePosition}` - - let consoleString = '' - - if (!disableHighlight && !disableHighlight) { - consoleString = _prefix - ? `"${_prefix}${lineInfo}${launchEditorString}","${getConsoleStyle(fileType)}","${launchEditorStyle}","\\n",` - : `"${lineInfo}${launchEditorString}","${getConsoleStyle(fileType)}","${launchEditorStyle}","\\n",` - } - - if (disableHighlight && !disableLaunchEditor) { - consoleString = _prefix - ? `"${_prefix}${launchEditorString}","${launchEditorStyle}","\\n",` - : `"${launchEditorString}","${launchEditorStyle}","\\n",` - } - - if (!disableHighlight && disableLaunchEditor) { - consoleString = _prefix - ? `"${_prefix}${lineInfo}","${getConsoleStyle(fileType)}","\\n",` - : `"${lineInfo}","${getConsoleStyle(fileType)}","\\n",` - } - - if (disableHighlight && disableLaunchEditor) { - consoleString = _prefix - ? `"${_prefix}",` - : '' - } - - return { - consoleString, - _suffix, - } -} - -export function isConsoleExpression(node: Node) { - return node.type === 'CallExpression' - && node.callee.type === 'MemberExpression' - && node.callee.object.type === 'Identifier' - && node.callee.object.name === 'console' - && node.callee.property.type === 'Identifier' - && node.arguments?.length > 0 -} - -export async function loadPkg(pkg: string) { - try { - await import(pkg) - return true - } - catch (error) { - return false - } -} diff --git a/src/core/utils/codegen.ts b/src/core/utils/codegen.ts new file mode 100644 index 0000000..dbd6348 --- /dev/null +++ b/src/core/utils/codegen.ts @@ -0,0 +1,135 @@ +import { cwd } from 'node:process' +import { extname, relative } from 'pathe' +import type { GenContext } from '../../types' +import { PLUGIN_NAME } from '../constants' +import type { FileExt } from './themes' +import { builtInThemes, getStyleCode } from './themes' + +// const commonStyle = 'padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;' + +// const consoleStyles: Record = { +// '.js': `${commonStyle}color: #111827; background: #F7DF1E`, +// '.jsx': `${commonStyle}color: #111827; background: #F7DF1E`, +// '.ts': `${commonStyle}color: #fff; background: #3178C6`, +// '.tsx': `${commonStyle}color: #fff; background: #3178C6`, +// '.vue': `${commonStyle}color: #fff; background: #4FC08D`, +// '.svelte': `${commonStyle}color: #fff; background: #FF3E00`, +// '.astro': `${commonStyle}color: #fff; background: #FF5D01`, +// 'default': `${commonStyle}color: #111827; background: #F7DF1E`, +// } + +// function getStyleCode(fileType: string): string { +// return consoleStyles[fileType] ?? consoleStyles.default +// } + +const launchEditorStyle = 'background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px' + +function getExtendedPath(filePath: string, extendedPathFileNames?: string[]) { + const sep = filePath.includes('\\') ? '\\' : '/' + const arr = filePath.split(sep) + let basename = arr.pop() || '' + const basenameWithoutExt = basename.replace(/\.[^/.]+$/, '').toLowerCase() + if (extendedPathFileNames && extendedPathFileNames?.length > 0) { + let isEnd = false + if (extendedPathFileNames.some(name => basenameWithoutExt === name.toLowerCase())) { + while (!isEnd) { + const fileName = arr.pop() + basename = `${fileName}/${basename}` + if (extendedPathFileNames.every(name => name.toLowerCase() !== fileName?.toLowerCase())) + isEnd = true + } + } + } + return basename +} + +export function setFilePathMap(filePath: string): string { + let filePathMap = globalThis.TurboConsoleFilePathMap + + if (typeof filePathMap === 'undefined') + filePathMap = new Map() + + if (filePathMap.has(filePath)) + return filePathMap.get(filePath)! + + function getRandomString() { + const randomString = Math.random().toString(20).substring(2, 6) + + for (const [_, value] of filePathMap) { + if (value === randomString) + return getRandomString() + } + + return randomString + } + + const randomString = getRandomString() + filePathMap.set(filePath, randomString) + globalThis.TurboConsoleFilePathMap = filePathMap + + return randomString +} + +export function genConsoleString(genContext: GenContext) { + const { options, originalColumn, originalLine, argType, id } = genContext + let { argsName } = genContext + const { prefix, suffix, disableLaunchEditor, port, disableHighlight, extendedPathFileNames } = options + const _prefix = prefix ? `${prefix}\\n` : '' + const _suffix = suffix ? `\\n${suffix}` : '' + + const urlObject = new URL(id, 'file://') + const filePath = urlObject.pathname + const fileName = getExtendedPath(filePath, extendedPathFileNames) + const fileType = extname(filePath).slice(1) as FileExt + + const relativePath = relative(cwd(), filePath) + const filePathMapString = disableLaunchEditor ? '' : setFilePathMap(relativePath) + + // Parsing escaped unicode symbols + try { + argsName = JSON.parse(`"${argsName}"`) + } + catch (error) { + console.error(`${PLUGIN_NAME}:${error}`) + } + + if (argsName?.length > 30) + argsName = `${argsName.slice(0, 30)}...` + + // not output when argtype is string or number + const lineInfo = `%c${builtInThemes.highlight.icon} ${fileName}\u00B7${originalLine}${['StringLiteral', 'NumericLiteral'].includes(argType) ? '' : ` ~ ${argsName}`}` + const codePosition = `${filePathMapString},${originalLine},${(originalColumn || 0) + 1}` + + const launchEditorString = `%c${builtInThemes.launchEditor.icon} http://localhost:${port}#${codePosition}` + + let consoleString = '' + + if (!disableHighlight && !disableHighlight) { + consoleString = _prefix + ? `"${_prefix}${lineInfo}${launchEditorString}","${getStyleCode(fileType)}","${launchEditorStyle}","\\n",` + : `"${lineInfo}${launchEditorString}","${getStyleCode(fileType)}","${launchEditorStyle}","\\n",` + } + + if (disableHighlight && !disableLaunchEditor) { + consoleString = _prefix + ? `"${_prefix}${launchEditorString}","${launchEditorStyle}","\\n",` + : `"${launchEditorString}","${launchEditorStyle}","\\n",` + } + + if (!disableHighlight && disableLaunchEditor) { + consoleString = _prefix + ? `"${_prefix}${lineInfo}","${getStyleCode(fileType)}","\\n",` + : `"${lineInfo}","${getStyleCode(fileType)}","\\n",` + } + + if (disableHighlight && disableLaunchEditor) { + consoleString = _prefix + ? `"${_prefix}",` + : '' + } + + return { + consoleString, + _suffix, + } +} diff --git a/src/core/utils/common.ts b/src/core/utils/common.ts new file mode 100644 index 0000000..fe0a1a0 --- /dev/null +++ b/src/core/utils/common.ts @@ -0,0 +1,106 @@ +import { createFilter } from '@rollup/pluginutils' +import { extname } from 'pathe' +import type { Comment, Node } from '@babel/types' +import type { Compiler, Options } from '../../types' +import { PLUGIN_NAME } from '../constants' + +export const filter = createFilter( + [/\.vue$/, /\.vue\?vue/, /\.vue\?v=/, /\.ts$/, /\.tsx$/, /\.js$/, /\.jsx$/, /\.svelte$/, /\.astro$/], + [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/], +) + +export function printInfo(options: Options, spacing: string = ' ') { + if (options.disableLaunchEditor || options.silent) + return false + // eslint-disable-next-line no-console + console.log(` \x1B[32m鉃淺x1B[39m${spacing}\x1B[1mTurboConsole\x1B[22m: \x1B[36mhttp://localhost:\x1B[1m${options.port}\x1B[22m/inspect\x1B[39m`) +} + +export async function getCompiler(id: string): Promise { + const urlObject = new URL(id, 'file://') + const fileType = extname(urlObject.pathname) + + switch (fileType) { + case '.vue': { + const Vue = await import('vue') + if (!Vue || typeof Vue.version !== 'string') { + console.warn(`[${PLUGIN_NAME}]: Vue is not installed`) + return undefined + } + else if (Vue.version.startsWith('2.')) { + return 'vue2' + } + else if (Vue.version.startsWith('3.')) { + return 'vue3' + } + else { + console.warn(`[${PLUGIN_NAME}]: Unsupported Vue version: ${Vue.version}`) + return undefined + } + } + case '.svelte': + return 'svelte' + case '.js': + return 'vanilla' + case '.jsx': + return 'vanilla' + case '.ts': + return 'vanilla' + case '.tsx': + return 'vanilla' + case '.astro': + return 'vanilla' + default: + return undefined + } +} + +export function isPluginDisable(meta: { + comments: Comment[] + originalLine: number + id: string + type: 'top-file' | 'inline-file' + compiler: Compiler +}) { + const { comments, originalLine, type, compiler } = meta + + if (comments?.length === 0) + return false + + if (type === 'top-file') { + const startLine = compiler === 'vanilla' ? 1 : 2 + + const disablePluginComment = comments?.find(comment => comment.value.includes('turbo-console-disable')) + + if (disablePluginComment && disablePluginComment.loc!.start.line <= startLine) + return true + } + else if (type === 'inline-file') { + const currentLineComment = comments?.find(comment => comment.value.includes('turbo-console-disable-line') && comment.loc!.start.line === originalLine) + const nextLineComment = comments?.find(comment => comment.value.includes('turbo-console-disable-next-line') && comment.loc!.start.line === originalLine - 1) + + if (currentLineComment || nextLineComment) + return true + } + + return false +} + +export function isConsoleExpression(node: Node) { + return node.type === 'CallExpression' + && node.callee.type === 'MemberExpression' + && node.callee.object.type === 'Identifier' + && node.callee.object.name === 'console' + && node.callee.property.type === 'Identifier' + && node.arguments?.length > 0 +} + +export async function loadPkg(pkg: string) { + try { + await import(pkg) + return true + } + catch (error) { + return false + } +} diff --git a/src/core/utils/index.ts b/src/core/utils/index.ts new file mode 100644 index 0000000..e0d20af --- /dev/null +++ b/src/core/utils/index.ts @@ -0,0 +1,2 @@ +export * from './codegen' +export * from './common' diff --git a/src/core/utils/themes.ts b/src/core/utils/themes.ts new file mode 100644 index 0000000..48a3672 --- /dev/null +++ b/src/core/utils/themes.ts @@ -0,0 +1,80 @@ +export type FileExt = 'js' | 'jsx' | 'ts' | 'tsx' | 'vue' | 'svelte' | 'astro' + +interface HighlightTheme { + 'padding'?: string + 'color'?: string + 'background'?: string + 'border-radius'?: string + 'margin'?: string +} + +interface Themes { + highlight: { + [key in FileExt]?: HighlightTheme + } & { + icon?: string + } + launchEditor: { + icon?: string + } +} + +const commonStyle = { + 'padding': '2px 5px', + 'border-radius': '3px 0 0 3px', + 'margin': '0 0 5px 0', +} + +export const builtInThemes: Themes = { + highlight: { + icon: '馃殌', + js: { + ...commonStyle, + color: '#fff', + background: '#4FC08D', + }, + jsx: { + ...commonStyle, + color: '#fff', + background: '#4FC08D', + }, + ts: { + ...commonStyle, + color: '#fff', + background: '#3178C6', + }, + tsx: { + ...commonStyle, + color: '#fff', + background: '#3178C6', + }, + svelte: { + ...commonStyle, + color: '#fff', + background: '#FF3E00', + }, + astro: { + ...commonStyle, + color: '#fff', + background: '#FF5D01', + }, + vue: { + ...commonStyle, + color: '#fff', + background: '#4FC08D', + }, + }, + launchEditor: { + icon: '馃敠', + }, +} + +export function getStyleCode(fileType: FileExt) { + const theme = builtInThemes.highlight[fileType]! + + const highlight = Object.entries(theme).map(([key, value]) => { + return `${key}:${value};` + }).join('') + + return highlight +} diff --git a/test/__snapshots__/comment.test.ts.snap b/test/__snapshots__/comment.test.ts.snap index 04fc2d6..17e68aa 100644 --- a/test/__snapshots__/comment.test.ts.snap +++ b/test/__snapshots__/comment.test.ts.snap @@ -2,12 +2,12 @@ exports[`disable by comments > on current line 1`] = ` { - "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #111827; background: #F7DF1E","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript') + "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript') console.log('hello javascript2') // turbo-console-disable-line ", "map": SourceMap { "file": "comments.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC", "names": [], "sources": [ "comments.js", @@ -24,13 +24,13 @@ exports[`disable by comments > on current line 1`] = ` exports[`disable by comments > on next line 1`] = ` { - "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #111827; background: #F7DF1E","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript') + "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript') // turbo-console-disable-next-line console.log('hello javascript2') ", "map": SourceMap { "file": "comments.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC", "names": [], "sources": [ "comments.js", diff --git a/test/__snapshots__/options.test.ts.snap b/test/__snapshots__/options.test.ts.snap index 2173dcd..724da9e 100644 --- a/test/__snapshots__/options.test.ts.snap +++ b/test/__snapshots__/options.test.ts.snap @@ -38,10 +38,10 @@ exports[`transform options > disable highlight 1`] = ` exports[`transform options > disable launch editor 1`] = ` { - "code": "console.log("%c馃殌 main.js路1","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #111827; background: #F7DF1E","\\n",'hello javascript')", + "code": "console.log("%c馃殌 main.js路1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","\\n",'hello javascript')", "map": SourceMap { "file": "main.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0HAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mHAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", "names": [], "sources": [ "main.js", @@ -56,10 +56,10 @@ exports[`transform options > disable launch editor 1`] = ` exports[`transform options > empty option 1`] = ` { - "code": "console.log("%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #111827; background: #F7DF1E","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript')", + "code": "console.log("%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript')", "map": SourceMap { "file": "main.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", "names": [], "sources": [ "main.js", @@ -74,10 +74,10 @@ exports[`transform options > empty option 1`] = ` exports[`transform options > extended path option 1`] = ` { - "code": "console.log("%c馃殌 runner/index.js路1%c馃敠 http://localhost:3070#sfgha,1,1","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #111827; background: #F7DF1E","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript')", + "code": "console.log("%c馃殌 runner/index.js路1%c馃敠 http://localhost:3070#sfgha,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript')", "map": SourceMap { "file": "index.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0PAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", "names": [], "sources": [ "index.js", @@ -92,10 +92,10 @@ exports[`transform options > extended path option 1`] = ` exports[`transform options > with prefix suffix 1`] = ` { - "code": "console.log("-------\\n%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #111827; background: #F7DF1E","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript',"\\n-------")", + "code": "console.log("-------\\n%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript',"\\n-------")", "map": SourceMap { "file": "main.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2PAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAC", "names": [], "sources": [ "main.js", diff --git a/test/__snapshots__/transform.test.ts.snap b/test/__snapshots__/transform.test.ts.snap index 77ad4ef..2bc044a 100644 --- a/test/__snapshots__/transform.test.ts.snap +++ b/test/__snapshots__/transform.test.ts.snap @@ -26,12 +26,12 @@ exports[`edge case > win path 1`] = ` ", "map": SourceMap { "file": "App.vue", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", "names": [], "sources": [ "App.vue", @@ -57,7 +57,7 @@ exports[`svelte transform > svelte 1`] = ` "code": "

Welcome to SvelteKit

@@ -66,7 +66,7 @@ exports[`svelte transform > svelte 1`] = `

", "map": SourceMap { "file": "+page.svelte", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yPAAC,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qPAAC,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC", "names": [], "sources": [ "+page.svelte", @@ -93,9 +93,9 @@ exports[`vanilla transform > tsx 1`] = ` "code": ""use client"; export default function Home() { - console.log("%c馃殌 page.tsx路4%c馃敠 http://localhost:3070#svelte,4,5","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #fff; background: #3178C6","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n","hello nextjs"); + console.log("%c馃殌 page.tsx路4%c馃敠 http://localhost:3070#svelte,4,5","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n","hello nextjs"); function hello() { - console.log("%c馃殌 page.tsx路6%c馃敠 http://localhost:3070#svelte,6,7","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #fff; background: #3178C6","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n","hello nextjs"); + console.log("%c馃殌 page.tsx路6%c馃敠 http://localhost:3070#svelte,6,7","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n","hello nextjs"); } return
page.tsx
; @@ -103,7 +103,7 @@ exports[`vanilla transform > tsx 1`] = ` ", "map": SourceMap { "file": "page.tsx", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AACH,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AACH,CAAC", "names": [], "sources": [ "page.tsx", @@ -129,11 +129,11 @@ exports[`vanilla transform > tsx 1`] = ` exports[`vanilla transform > typescript 1`] = ` { "code": "const msg: string = "hello TypeScript" - console.log("%c馃殌 main.ts路2 ~ msg%c馃敠 http://localhost:3070#maints,2,3","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #fff; background: #3178C6","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",msg) + console.log("%c馃殌 main.ts路2 ~ msg%c馃敠 http://localhost:3070#maints,2,3","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",msg) ", "map": SourceMap { "file": "main.ts", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC", "names": [], "sources": [ "main.ts", @@ -159,7 +159,7 @@ exports[`vue transform > options 1`] = ` }, mounted() { const msg = "hello vue" - console.log("%c馃殌 App.vue路10 ~ msg%c馃敠 http://localhost:3070#appvue,10,7","padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;color: #fff; background: #4FC08D","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",msg) + console.log("%c馃殌 App.vue路10 ~ msg%c馃敠 http://localhost:3070#appvue,10,7","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",msg) } } @@ -170,7 +170,7 @@ exports[`vue transform > options 1`] = ` ", "map": SourceMap { "file": "App.vue", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wPAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oPAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", "names": [], "sources": [ "App.vue", @@ -208,12 +208,12 @@ exports[`vue transform > script setup 1`] = ` ", "map": SourceMap { "file": "App.vue", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", "names": [], "sources": [ "App.vue", diff --git a/test/themes.test.ts b/test/themes.test.ts new file mode 100644 index 0000000..c7a39b3 --- /dev/null +++ b/test/themes.test.ts @@ -0,0 +1,8 @@ +import { describe, expect, it, vi } from 'vitest' +import { getStyleCode } from '../src/core/utils/themes' + +describe('themes', () => { + it('get style code', () => { + expect(getStyleCode('vue')).toMatchInlineSnapshot(`"padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;"`) + }) +}) From 033cb56f2c7a6504f67df40c2458477682009b6e Mon Sep 17 00:00:00 2001 From: yuyinws Date: Thu, 25 Jul 2024 15:32:39 +0800 Subject: [PATCH 2/4] refactor: utils --- src/core/utils/codegen.ts | 31 +++++------------------ src/core/utils/themes.ts | 23 ++++++++++++++--- test/__snapshots__/comment.test.ts.snap | 8 +++--- test/__snapshots__/options.test.ts.snap | 16 ++++++------ test/__snapshots__/transform.test.ts.snap | 26 +++++++++---------- test/themes.test.ts | 7 ++++- 6 files changed, 57 insertions(+), 54 deletions(-) diff --git a/src/core/utils/codegen.ts b/src/core/utils/codegen.ts index dbd6348..798f78d 100644 --- a/src/core/utils/codegen.ts +++ b/src/core/utils/codegen.ts @@ -5,25 +5,6 @@ import { PLUGIN_NAME } from '../constants' import type { FileExt } from './themes' import { builtInThemes, getStyleCode } from './themes' -// const commonStyle = 'padding:2px 5px; border-radius:3px 0 0 3px;margin-bottom:5px;' - -// const consoleStyles: Record = { -// '.js': `${commonStyle}color: #111827; background: #F7DF1E`, -// '.jsx': `${commonStyle}color: #111827; background: #F7DF1E`, -// '.ts': `${commonStyle}color: #fff; background: #3178C6`, -// '.tsx': `${commonStyle}color: #fff; background: #3178C6`, -// '.vue': `${commonStyle}color: #fff; background: #4FC08D`, -// '.svelte': `${commonStyle}color: #fff; background: #FF3E00`, -// '.astro': `${commonStyle}color: #fff; background: #FF5D01`, -// 'default': `${commonStyle}color: #111827; background: #F7DF1E`, -// } - -// function getStyleCode(fileType: string): string { -// return consoleStyles[fileType] ?? consoleStyles.default -// } - -const launchEditorStyle = 'background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px' - function getExtendedPath(filePath: string, extendedPathFileNames?: string[]) { const sep = filePath.includes('\\') ? '\\' : '/' const arr = filePath.split(sep) @@ -106,20 +87,20 @@ export function genConsoleString(genContext: GenContext) { if (!disableHighlight && !disableHighlight) { consoleString = _prefix - ? `"${_prefix}${lineInfo}${launchEditorString}","${getStyleCode(fileType)}","${launchEditorStyle}","\\n",` - : `"${lineInfo}${launchEditorString}","${getStyleCode(fileType)}","${launchEditorStyle}","\\n",` + ? `"${_prefix}${lineInfo}${launchEditorString}","${getStyleCode(fileType).highlight}","${getStyleCode(fileType).launchEditor}","\\n",` + : `"${lineInfo}${launchEditorString}","${getStyleCode(fileType).highlight}","${getStyleCode(fileType).launchEditor}","\\n",` } if (disableHighlight && !disableLaunchEditor) { consoleString = _prefix - ? `"${_prefix}${launchEditorString}","${launchEditorStyle}","\\n",` - : `"${launchEditorString}","${launchEditorStyle}","\\n",` + ? `"${_prefix}${launchEditorString}","${getStyleCode(fileType).launchEditor}","\\n",` + : `"${launchEditorString}","${getStyleCode(fileType).launchEditor}","\\n",` } if (!disableHighlight && disableLaunchEditor) { consoleString = _prefix - ? `"${_prefix}${lineInfo}","${getStyleCode(fileType)}","\\n",` - : `"${lineInfo}","${getStyleCode(fileType)}","\\n",` + ? `"${_prefix}${lineInfo}","${getStyleCode(fileType).highlight}","\\n",` + : `"${lineInfo}","${getStyleCode(fileType).highlight}","\\n",` } if (disableHighlight && disableLaunchEditor) { diff --git a/src/core/utils/themes.ts b/src/core/utils/themes.ts index 48a3672..2b87d8a 100644 --- a/src/core/utils/themes.ts +++ b/src/core/utils/themes.ts @@ -15,7 +15,11 @@ interface Themes { icon?: string } launchEditor: { - icon?: string + 'icon'?: string + 'padding'?: string + 'border-radius'?: string + 'margin'?: string + 'background'?: string } } @@ -65,7 +69,11 @@ export const builtInThemes: Themes = { }, }, launchEditor: { - icon: '馃敠', + 'icon': '馃敠', + 'background': '#00DC8250', + 'padding': '2px 5px', + 'border-radius': '0 3px 3px 0', + 'margin': '0 0 5px 0', }, } @@ -76,5 +84,14 @@ export function getStyleCode(fileType: FileExt) { return `${key}:${value};` }).join('') - return highlight + const launchEditor = Object.entries(builtInThemes.launchEditor).map(([key, value]) => { + if (key !== 'icon') + return `${key}:${value};` + return '' + }).join('') + + return { + launchEditor, + highlight, + } } diff --git a/test/__snapshots__/comment.test.ts.snap b/test/__snapshots__/comment.test.ts.snap index 17e68aa..77c84cd 100644 --- a/test/__snapshots__/comment.test.ts.snap +++ b/test/__snapshots__/comment.test.ts.snap @@ -2,12 +2,12 @@ exports[`disable by comments > on current line 1`] = ` { - "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript') + "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",'hello javascript') console.log('hello javascript2') // turbo-console-disable-line ", "map": SourceMap { "file": "comments.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC", "names": [], "sources": [ "comments.js", @@ -24,13 +24,13 @@ exports[`disable by comments > on current line 1`] = ` exports[`disable by comments > on next line 1`] = ` { - "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript') + "code": "console.log("%c馃殌 comments.js路1%c馃敠 http://localhost:3070#commsx,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",'hello javascript') // turbo-console-disable-next-line console.log('hello javascript2') ", "map": SourceMap { "file": "comments.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC", "names": [], "sources": [ "comments.js", diff --git a/test/__snapshots__/options.test.ts.snap b/test/__snapshots__/options.test.ts.snap index 724da9e..0ff21b1 100644 --- a/test/__snapshots__/options.test.ts.snap +++ b/test/__snapshots__/options.test.ts.snap @@ -20,10 +20,10 @@ exports[`transform options > disable all 1`] = ` exports[`transform options > disable highlight 1`] = ` { - "code": "console.log("%c馃敠 http://localhost:3070#fgsss,1,1","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript')", + "code": "console.log("%c馃敠 http://localhost:3070#fgsss,1,1","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",'hello javascript')", "map": SourceMap { "file": "main.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iIAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gIAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", "names": [], "sources": [ "main.js", @@ -56,10 +56,10 @@ exports[`transform options > disable launch editor 1`] = ` exports[`transform options > empty option 1`] = ` { - "code": "console.log("%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript')", + "code": "console.log("%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",'hello javascript')", "map": SourceMap { "file": "main.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", "names": [], "sources": [ "main.js", @@ -74,10 +74,10 @@ exports[`transform options > empty option 1`] = ` exports[`transform options > extended path option 1`] = ` { - "code": "console.log("%c馃殌 runner/index.js路1%c馃敠 http://localhost:3070#sfgha,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript')", + "code": "console.log("%c馃殌 runner/index.js路1%c馃敠 http://localhost:3070#sfgha,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",'hello javascript')", "map": SourceMap { "file": "index.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC", "names": [], "sources": [ "index.js", @@ -92,10 +92,10 @@ exports[`transform options > extended path option 1`] = ` exports[`transform options > with prefix suffix 1`] = ` { - "code": "console.log("-------\\n%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",'hello javascript',"\\n-------")", + "code": "console.log("-------\\n%c馃殌 main.js路1%c馃敠 http://localhost:3070#fgsss,1,1","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",'hello javascript',"\\n-------")", "map": SourceMap { "file": "main.js", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mPAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAC", "names": [], "sources": [ "main.js", diff --git a/test/__snapshots__/transform.test.ts.snap b/test/__snapshots__/transform.test.ts.snap index 2bc044a..382b735 100644 --- a/test/__snapshots__/transform.test.ts.snap +++ b/test/__snapshots__/transform.test.ts.snap @@ -26,12 +26,12 @@ exports[`edge case > win path 1`] = ` ", "map": SourceMap { "file": "App.vue", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", "names": [], "sources": [ "App.vue", @@ -57,7 +57,7 @@ exports[`svelte transform > svelte 1`] = ` "code": "

Welcome to SvelteKit

@@ -66,7 +66,7 @@ exports[`svelte transform > svelte 1`] = `

", "map": SourceMap { "file": "+page.svelte", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qPAAC,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oPAAC,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC", "names": [], "sources": [ "+page.svelte", @@ -93,9 +93,9 @@ exports[`vanilla transform > tsx 1`] = ` "code": ""use client"; export default function Home() { - console.log("%c馃殌 page.tsx路4%c馃敠 http://localhost:3070#svelte,4,5","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n","hello nextjs"); + console.log("%c馃殌 page.tsx路4%c馃敠 http://localhost:3070#svelte,4,5","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n","hello nextjs"); function hello() { - console.log("%c馃殌 page.tsx路6%c馃敠 http://localhost:3070#svelte,6,7","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n","hello nextjs"); + console.log("%c馃殌 page.tsx路6%c馃敠 http://localhost:3070#svelte,6,7","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n","hello nextjs"); } return
page.tsx
; @@ -103,7 +103,7 @@ exports[`vanilla transform > tsx 1`] = ` ", "map": SourceMap { "file": "page.tsx", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AACH,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4OAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AACH,CAAC", "names": [], "sources": [ "page.tsx", @@ -129,11 +129,11 @@ exports[`vanilla transform > tsx 1`] = ` exports[`vanilla transform > typescript 1`] = ` { "code": "const msg: string = "hello TypeScript" - console.log("%c馃殌 main.ts路2 ~ msg%c馃敠 http://localhost:3070#maints,2,3","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",msg) + console.log("%c馃殌 main.ts路2 ~ msg%c馃敠 http://localhost:3070#maints,2,3","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#3178C6;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",msg) ", "map": SourceMap { "file": "main.ts", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC", "names": [], "sources": [ "main.ts", @@ -159,7 +159,7 @@ exports[`vue transform > options 1`] = ` }, mounted() { const msg = "hello vue" - console.log("%c馃殌 App.vue路10 ~ msg%c馃敠 http://localhost:3070#appvue,10,7","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background: #00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin-bottom:5px","\\n",msg) + console.log("%c馃殌 App.vue路10 ~ msg%c馃敠 http://localhost:3070#appvue,10,7","padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;","background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;","\\n",msg) } } @@ -170,7 +170,7 @@ exports[`vue transform > options 1`] = ` ", "map": SourceMap { "file": "App.vue", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oPAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mPAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AACH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", "names": [], "sources": [ "App.vue", @@ -208,12 +208,12 @@ exports[`vue transform > script setup 1`] = ` ", "map": SourceMap { "file": "App.vue", - "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", + "mappings": "AAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iPAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;", "names": [], "sources": [ "App.vue", diff --git a/test/themes.test.ts b/test/themes.test.ts index c7a39b3..7618d6b 100644 --- a/test/themes.test.ts +++ b/test/themes.test.ts @@ -3,6 +3,11 @@ import { getStyleCode } from '../src/core/utils/themes' describe('themes', () => { it('get style code', () => { - expect(getStyleCode('vue')).toMatchInlineSnapshot(`"padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;"`) + expect(getStyleCode('vue')).toMatchInlineSnapshot(` + { + "highlight": "padding:2px 5px;border-radius:3px 0 0 3px;margin:0 0 5px 0;color:#fff;background:#4FC08D;", + "launchEditor": "background:#00DC8250;padding:2px 5px;border-radius:0 3px 3px 0;margin:0 0 5px 0;", + } + `) }) }) From 87b1d22da89e4143b99bc10b0288af1e6107bdf5 Mon Sep 17 00:00:00 2001 From: yuyinws Date: Thu, 25 Jul 2024 15:37:43 +0800 Subject: [PATCH 3/4] chore: expose theme utils --- src/core/utils/index.ts | 1 + test/themes.test.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/utils/index.ts b/src/core/utils/index.ts index e0d20af..b2ceb8d 100644 --- a/src/core/utils/index.ts +++ b/src/core/utils/index.ts @@ -1,2 +1,3 @@ export * from './codegen' export * from './common' +export * from './themes' diff --git a/test/themes.test.ts b/test/themes.test.ts index 7618d6b..2ad276a 100644 --- a/test/themes.test.ts +++ b/test/themes.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import { getStyleCode } from '../src/core/utils/themes' +import { getStyleCode } from '../src/core/utils' describe('themes', () => { it('get style code', () => { From b958eb91625aa4224471955dae82a75ef3edf177 Mon Sep 17 00:00:00 2001 From: yuyinws Date: Thu, 25 Jul 2024 15:41:13 +0800 Subject: [PATCH 4/4] chore: fix lint error --- test/themes.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/themes.test.ts b/test/themes.test.ts index 2ad276a..f8612db 100644 --- a/test/themes.test.ts +++ b/test/themes.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from 'vitest' +import { describe, expect, it } from 'vitest' import { getStyleCode } from '../src/core/utils' describe('themes', () => {