srcset.ts — vue Source File
Architecture documentation for srcset.ts, a typescript file in the vue codebase. 5 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR b079557f_1b35_1202_e466_a7574ca75db9["srcset.ts"] 2347b93b_5b26_2b27_6743_fe5fed353eb5["utils.ts"] b079557f_1b35_1202_e466_a7574ca75db9 --> 2347b93b_5b26_2b27_6743_fe5fed353eb5 084fbb63_6e20_b1c4_c59e_540beed57a4e["urlToRequire"] b079557f_1b35_1202_e466_a7574ca75db9 --> 084fbb63_6e20_b1c4_c59e_540beed57a4e dcc849a8_8698_9d99_84f0_b76bdf69610c["assetUrl.ts"] b079557f_1b35_1202_e466_a7574ca75db9 --> dcc849a8_8698_9d99_84f0_b76bdf69610c 0220941a_2501_c188_2847_00cf7829329c["TransformAssetUrlsOptions"] b079557f_1b35_1202_e466_a7574ca75db9 --> 0220941a_2501_c188_2847_00cf7829329c 47ae9f26_59d1_fab2_349f_966f5d15495a["compiler"] b079557f_1b35_1202_e466_a7574ca75db9 --> 47ae9f26_59d1_fab2_349f_966f5d15495a ff52d56b_a346_9a70_961a_c5aca0690626["compileTemplate.ts"] ff52d56b_a346_9a70_961a_c5aca0690626 --> b079557f_1b35_1202_e466_a7574ca75db9 style b079557f_1b35_1202_e466_a7574ca75db9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
// vue compiler module for transforming `img:srcset` to a number of `require`s
import { urlToRequire } from './utils'
import { TransformAssetUrlsOptions } from './assetUrl'
import { ASTNode } from 'types/compiler'
interface ImageCandidate {
require: string
descriptor: string
}
export default (transformAssetUrlsOptions?: TransformAssetUrlsOptions) => ({
postTransformNode: (node: ASTNode) => {
transform(node, transformAssetUrlsOptions)
}
})
// http://w3c.github.io/html/semantics-embedded-content.html#ref-for-image-candidate-string-5
const escapedSpaceCharacters = /( |\\t|\\n|\\f|\\r)+/g
function transform(
node: ASTNode,
transformAssetUrlsOptions?: TransformAssetUrlsOptions
) {
if (node.type !== 1 || !node.attrs) {
return
}
if (node.tag === 'img' || node.tag === 'source') {
node.attrs.forEach(attr => {
if (attr.name === 'srcset') {
// same logic as in transform-require.js
const value = attr.value
const isStatic =
value.charAt(0) === '"' && value.charAt(value.length - 1) === '"'
if (!isStatic) {
return
}
const imageCandidates: ImageCandidate[] = value
.slice(1, -1)
.split(',')
.map(s => {
// The attribute value arrives here with all whitespace, except
// normal spaces, represented by escape sequences
const [url, descriptor] = s
.replace(escapedSpaceCharacters, ' ')
.trim()
.split(' ', 2)
return {
require: urlToRequire(url, transformAssetUrlsOptions),
descriptor
}
})
// "require(url1)"
// "require(url1) 1x"
// "require(url1), require(url2)"
// "require(url1), require(url2) 2x"
// "require(url1) 1x, require(url2)"
// "require(url1) 1x, require(url2) 2x"
const code = imageCandidates
.map(
({ require, descriptor }) =>
`${require} + "${descriptor ? ' ' + descriptor : ''}, " + `
)
.join('')
.slice(0, -6)
.concat('"')
.replace(/ \+ ""$/, '')
attr.value = code
}
})
}
}
Domain
Subdomains
Functions
Types
Dependencies
Imported By
Source
Frequently Asked Questions
What does srcset.ts do?
srcset.ts is a source file in the vue codebase, written in typescript. It belongs to the CompilerSFC domain, StyleProcessor subdomain.
What functions are defined in srcset.ts?
srcset.ts defines 1 function(s): transform.
What does srcset.ts depend on?
srcset.ts imports 5 module(s): TransformAssetUrlsOptions, assetUrl.ts, compiler, urlToRequire, utils.ts.
What files import srcset.ts?
srcset.ts is imported by 1 file(s): compileTemplate.ts.
Where is srcset.ts in the architecture?
srcset.ts is located at packages/compiler-sfc/src/templateCompilerModules/srcset.ts (domain: CompilerSFC, subdomain: StyleProcessor, directory: packages/compiler-sfc/src/templateCompilerModules).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free