Skip to content

Commit 7972cc9

Browse files
Use mtime as ETag; convert response Blob to text
1 parent c15323f commit 7972cc9

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

release/remotestorage.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

release/remotestorage.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/solid.ts

+12-14
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
getFile, overwriteFile, getContentType,
77
getPodUrlAll, deleteFile, getContainedResourceUrlAll, getSolidDataset,
88
FetchError, UrlString,
9-
getThing, getInteger, getDatetime
9+
getThing, getInteger, getDatetime, getDecimal
1010
} from "@inrupt/solid-client";
1111
import BaseClient from './baseclient';
1212
import EventHandling from './eventhandling';
@@ -405,21 +405,19 @@ class Solid extends RemoteBase implements Remote, ConfigObserver {
405405

406406
if (path.slice(-1) === '/') {
407407
return getSolidDataset(fileURL, { fetch: this.session.fetch }).then(containerDataset => {
408+
console.log('container data set', containerDataset);
408409
const URLs: UrlString[] = getContainedResourceUrlAll(containerDataset);
409410
const listing = URLs.reduce((map, item) => {
410411
const itemName = item.substring(fileURL.length);
411-
const isFolder = itemName.slice(-1) === '/';
412+
const fileDataset = getThing(containerDataset, item);
413+
map[itemName] = {
414+
'ETag': getDecimal(fileDataset, 'http://www.w3.org/ns/posix/stat#mtime').toString(),
415+
'Last-Modified': getDatetime(fileDataset, 'http://purl.org/dc/terms/modified').toUTCString(), // date.toUTCString()
416+
};
412417

413-
if (isFolder) {
414-
map[itemName] = { }; // We are skipping ETag
415-
}
416-
else {
417-
const fileDataset = getThing(containerDataset, item);
418-
419-
map[itemName] = {
420-
'Content-Length': getInteger(fileDataset, 'http://www.w3.org/ns/posix/stat#size'),
421-
'Last-Modified': getDatetime(fileDataset, 'http://purl.org/dc/terms/modified').toUTCString(), // date.toUTCString()
422-
};
418+
const isFolder = itemName.slice(-1) === '/';
419+
if (!isFolder) {
420+
map[itemName]['Content-Length'] = getInteger(fileDataset, 'http://www.w3.org/ns/posix/stat#size');
423421
}
424422

425423
return map;
@@ -447,10 +445,10 @@ class Solid extends RemoteBase implements Remote, ConfigObserver {
447445
});
448446
}
449447

450-
return getFile(fileURL, { fetch: this.session.fetch}).then(file => {
448+
return getFile(fileURL, { fetch: this.session.fetch}).then(async file => {
451449
return {
452450
statusCode: 200,
453-
body: file,
451+
body: await file.text(),
454452
contentType: getContentType(file)
455453
} as RemoteResponse;
456454
}).catch(error => {

0 commit comments

Comments
 (0)