mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-25 23:22:02 +00:00
perf(kit,schema,nuxt): refactor startsWith
to array access (#24744)
This commit is contained in:
parent
d99001832f
commit
c2b94d4a16
@ -73,14 +73,16 @@ export async function hasNuxtCompatibility (constraints: NuxtCompatibility, nuxt
|
|||||||
* Check if current nuxt instance is version 2 legacy
|
* Check if current nuxt instance is version 2 legacy
|
||||||
*/
|
*/
|
||||||
export function isNuxt2 (nuxt: Nuxt = useNuxt()) {
|
export function isNuxt2 (nuxt: Nuxt = useNuxt()) {
|
||||||
return getNuxtVersion(nuxt).startsWith('2.')
|
const version = getNuxtVersion(nuxt)
|
||||||
|
return version[0] === '2' && version[1] === '.'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if current nuxt instance is version 3
|
* Check if current nuxt instance is version 3
|
||||||
*/
|
*/
|
||||||
export function isNuxt3 (nuxt: Nuxt = useNuxt()) {
|
export function isNuxt3 (nuxt: Nuxt = useNuxt()) {
|
||||||
return getNuxtVersion(nuxt).startsWith('3.')
|
const version = getNuxtVersion(nuxt)
|
||||||
|
return version[0] === '3' && version[1] === '.'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,7 +22,7 @@ export function isIgnored (pathname: string): boolean {
|
|||||||
const cwds = nuxt.options._layers?.map(layer => layer.cwd).sort((a, b) => b.length - a.length)
|
const cwds = nuxt.options._layers?.map(layer => layer.cwd).sort((a, b) => b.length - a.length)
|
||||||
const layer = cwds?.find(cwd => pathname.startsWith(cwd))
|
const layer = cwds?.find(cwd => pathname.startsWith(cwd))
|
||||||
const relativePath = relative(layer ?? nuxt.options.rootDir, pathname)
|
const relativePath = relative(layer ?? nuxt.options.rootDir, pathname)
|
||||||
if (relativePath.startsWith('..')) {
|
if (relativePath[0] === '.' && relativePath[1] === '.') {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return !!(relativePath && nuxt._ignore.ignores(relativePath))
|
return !!(relativePath && nuxt._ignore.ignores(relativePath))
|
||||||
@ -47,7 +47,8 @@ export function resolveIgnorePatterns (relativePath?: string): string[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (relativePath) {
|
if (relativePath) {
|
||||||
return nuxt._ignorePatterns.map(p => p.startsWith('*') || p.startsWith('!*') ? p : relative(relativePath, resolve(nuxt.options.rootDir, p)))
|
// Map ignore patterns based on if they start with * or !*
|
||||||
|
return nuxt._ignorePatterns.map(p => p[0] === '*' || (p[0] === '!' && p[1] === '*') ? p : relative(relativePath, resolve(nuxt.options.rootDir, p)))
|
||||||
}
|
}
|
||||||
|
|
||||||
return nuxt._ignorePatterns
|
return nuxt._ignorePatterns
|
||||||
|
@ -99,7 +99,7 @@ export function useFetch<
|
|||||||
|
|
||||||
const key = _key === autoKey ? '$f' + _key : _key
|
const key = _key === autoKey ? '$f' + _key : _key
|
||||||
|
|
||||||
if (!opts.baseURL && typeof _request.value === 'string' && _request.value.startsWith('//')) {
|
if (!opts.baseURL && typeof _request.value === 'string' && (_request.value[0] === '/' && _request.value[1] === '/')) {
|
||||||
throw new Error('[nuxt] [useFetch] the request URL must not start with "//".')
|
throw new Error('[nuxt] [useFetch] the request URL must not start with "//".')
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ export function useFetch<
|
|||||||
|
|
||||||
// Use fetch with request context and headers for server direct API calls
|
// Use fetch with request context and headers for server direct API calls
|
||||||
if (import.meta.server && !opts.$fetch) {
|
if (import.meta.server && !opts.$fetch) {
|
||||||
const isLocalFetch = typeof _request.value === 'string' && _request.value.startsWith('/') && (!toValue(opts.baseURL) || toValue(opts.baseURL)!.startsWith('/'))
|
const isLocalFetch = typeof _request.value === 'string' && _request.value[0] === '/' && (!toValue(opts.baseURL) || toValue(opts.baseURL)![0] === '/')
|
||||||
if (isLocalFetch) {
|
if (isLocalFetch) {
|
||||||
_$fetch = useRequestFetch()
|
_$fetch = useRequestFetch()
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ export default defineNuxtPlugin({
|
|||||||
nuxtApp.hook('app:chunkError', ({ error }) => { chunkErrors.add(error) })
|
nuxtApp.hook('app:chunkError', ({ error }) => { chunkErrors.add(error) })
|
||||||
|
|
||||||
function reloadAppAtPath (to: RouteLocationNormalized) {
|
function reloadAppAtPath (to: RouteLocationNormalized) {
|
||||||
const isHash = 'href' in to && (to.href as string).startsWith('#')
|
const isHash = 'href' in to && (to.href as string)[0] === '#'
|
||||||
const path = isHash ? config.app.baseURL + (to as any).href : joinURL(config.app.baseURL, to.fullPath)
|
const path = isHash ? config.app.baseURL + (to as any).href : joinURL(config.app.baseURL, to.fullPath)
|
||||||
reloadNuxtApp({ path, persistState: true })
|
reloadNuxtApp({ path, persistState: true })
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ export const ImportProtectionPlugin = createUnplugin(function (options: ImportPr
|
|||||||
enforce: 'pre',
|
enforce: 'pre',
|
||||||
resolveId (id, importer) {
|
resolveId (id, importer) {
|
||||||
if (!importer) { return }
|
if (!importer) { return }
|
||||||
if (id.startsWith('.')) {
|
if (id[0] === '.') {
|
||||||
id = join(importer, '..', id)
|
id = join(importer, '..', id)
|
||||||
}
|
}
|
||||||
if (isAbsolute(id)) {
|
if (isAbsolute(id)) {
|
||||||
|
@ -152,7 +152,7 @@ export const schemaTemplate: NuxtTemplate<TemplateContext> = {
|
|||||||
})).filter(m => m.configKey && m.name && !adHocModules.includes(m.name))
|
})).filter(m => m.configKey && m.name && !adHocModules.includes(m.name))
|
||||||
|
|
||||||
const relativeRoot = relative(resolve(nuxt.options.buildDir, 'types'), nuxt.options.rootDir)
|
const relativeRoot = relative(resolve(nuxt.options.buildDir, 'types'), nuxt.options.rootDir)
|
||||||
const getImportName = (name: string) => (name.startsWith('.') ? './' + join(relativeRoot, name) : name).replace(/\.\w+$/, '')
|
const getImportName = (name: string) => (name[0] === '.' ? './' + join(relativeRoot, name) : name).replace(/\.\w+$/, '')
|
||||||
const modules = moduleInfo.map(meta => [genString(meta.configKey), getImportName(meta.importName)])
|
const modules = moduleInfo.map(meta => [genString(meta.configKey), getImportName(meta.importName)])
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
@ -279,7 +279,7 @@ function prepareRoutes (routes: NuxtPage[], parent?: NuxtPage, names = new Set<s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove leading / if children route
|
// Remove leading / if children route
|
||||||
if (parent && route.path.startsWith('/')) {
|
if (parent && route.path[0] === '/') {
|
||||||
route.path = route.path.slice(1)
|
route.path = route.path.slice(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ export default defineUntypedSchema({
|
|||||||
css: {
|
css: {
|
||||||
importLoaders: 0,
|
importLoaders: 0,
|
||||||
url: {
|
url: {
|
||||||
filter: (url: string, _resourcePath: string) => !url.startsWith('/')
|
filter: (url: string, _resourcePath: string) => url[0] !== '/'
|
||||||
},
|
},
|
||||||
esModule: false
|
esModule: false
|
||||||
},
|
},
|
||||||
@ -219,7 +219,7 @@ export default defineUntypedSchema({
|
|||||||
cssModules: {
|
cssModules: {
|
||||||
importLoaders: 0,
|
importLoaders: 0,
|
||||||
url: {
|
url: {
|
||||||
filter: (url: string, _resourcePath: string) => !url.startsWith('/')
|
filter: (url: string, _resourcePath: string) => url[0] !== '/'
|
||||||
},
|
},
|
||||||
esModule: false,
|
esModule: false,
|
||||||
modules: {
|
modules: {
|
||||||
|
Loading…
Reference in New Issue
Block a user