MCPcopy Index your code
hub / github.com/nodeSolidServer/node-solid-server / getAvailableUrl

Method getAvailableUrl

lib/ldp.mjs:796–816  ·  view source on GitHub ↗
(hostname, containerURI, { slug = uuid(), extension, container } = {})

Source from the content-addressed store, hash-verified

794 }
795
796 async getAvailableUrl (hostname, containerURI, { slug = uuid(), extension, container } = {}) {
797 let requestUrl = this.resourceMapper.resolveUrl(hostname, containerURI)
798 requestUrl = requestUrl.replace(/\/*$/, '/')
799
800 let itemName = slug.endsWith(extension) || slug.endsWith(this.suffixAcl) || slug.endsWith(this.suffixMeta) ? slug : slug + extension
801 try {
802 // check whether resource exists
803 const context = container ? '/' : ''
804 await this.resourceMapper.mapUrlToFile({ url: (requestUrl + itemName + context) })
805 itemName = `${uuid()}-${itemName}`
806 } catch (e) {
807 try {
808 // check whether resource with same name exists
809 const context = !container ? '/' : ''
810 await this.resourceMapper.mapUrlToFile({ url: (requestUrl + itemName + context) })
811 itemName = `${uuid()}-${itemName}`
812 } catch (e) {}
813 }
814 if (container) itemName += '/'
815 return requestUrl + itemName
816 }
817
818 getTrustedOrigins (req) {
819 const trustedOrigins = [this.resourceMapper.resolveUrl(req.hostname)].concat(this.trustedOrigins)

Callers 3

testNoExistingResourceFunction · 0.95
postMethod · 0.80

Calls 2

resolveUrlMethod · 0.80
mapUrlToFileMethod · 0.80

Tested by

no test coverage detected