MCPcopy
hub / github.com/formatjs/formatjs / interpolateName

Function interpolateName

packages/ts-transformer/interpolate-name.ts:35–148  ·  view source on GitHub ↗
(
  loaderContext: LoaderContext,
  name: string | NameFn,
  options: Options
)

Source from the content-addressed store, hash-verified

33}
34
35export function interpolateName(
36 loaderContext: LoaderContext,
37 name: string | NameFn,
38 options: Options
39): string {
40 let filename
41
42 const hasQuery =
43 loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1
44
45 if (typeof name === 'function') {
46 filename = name(
47 loaderContext.resourcePath,
48 hasQuery ? loaderContext.resourceQuery : undefined
49 )
50 } else {
51 filename = name || '[hash].[ext]'
52 }
53
54 const context = options.context
55 const content = options.content
56 const regExp = options.regExp
57
58 let ext = 'bin'
59 let basename = 'file'
60 let directory = ''
61 let folder = ''
62 let query = ''
63
64 if (loaderContext.resourcePath) {
65 const parsed = path.parse(loaderContext.resourcePath)
66 let resourcePath = loaderContext.resourcePath
67
68 if (parsed.ext) {
69 ext = parsed.ext.slice(1)
70 }
71
72 if (parsed.dir) {
73 basename = parsed.name
74 resourcePath = parsed.dir + path.sep
75 }
76
77 if (typeof context !== 'undefined') {
78 directory = path
79 .relative(context, resourcePath + '_')
80 .replace(/\\/g, '/')
81 .replace(/\.\.(\/)?/g, '_$1')
82 directory = directory.slice(0, -1)
83 } else {
84 directory = resourcePath.replace(/\\/g, '/').replace(/\.\.(\/)?/g, '_$1')
85 }
86
87 if (directory.length === 1) {
88 directory = ''
89 } else if (directory.length > 1) {
90 folder = path.basename(directory)
91 }
92 }

Callers 9

processDescriptorFunction · 0.90
transform.test.tsFile · 0.90
processFileFunction · 0.90
checkNodeFunction · 0.90
extractMessageDescriptorFunction · 0.85

Calls 2

getHashDigestFunction · 0.85
parseMethod · 0.80

Tested by

no test coverage detected