Skip to content

Commit

Permalink
refactor: Clean up utility functions
Browse files Browse the repository at this point in the history
  • Loading branch information
joachimvh committed Nov 18, 2020
1 parent 82f3aa0 commit 1073c2f
Show file tree
Hide file tree
Showing 54 changed files with 482 additions and 646 deletions.
3 changes: 0 additions & 3 deletions config/presets/acl.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@
"WebAclAuthorizer:_aclManager": {
"@id": "urn:solid-server:default:AclManager"
},
"WebAclAuthorizer:_containerManager": {
"@id": "urn:solid-server:default:UrlContainerManager"
},
"WebAclAuthorizer:_resourceStore": {
"@id": "urn:solid-server:default:ResourceStore_Patching"
}
Expand Down
8 changes: 0 additions & 8 deletions config/presets/storage-wrapper.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,6 @@
"RepresentationConvertingStore:_outConverter": {
"@id": "urn:solid-server:default:RepresentationConverter"
}
},

{
"@id": "urn:solid-server:default:UrlContainerManager",
"@type": "UrlContainerManager",
"UrlContainerManager:_base": {
"@id": "urn:solid-server:default:variable:base"
}
}
]
}
13 changes: 0 additions & 13 deletions config/presets/storage/backend/storage-filesystem.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
{
"@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^1.0.0/components/context.jsonld",
"@graph": [
{
"@id": "urn:solid-server:default:MetadataController",
"@type": "MetadataController"
},
{
"@id": "urn:solid-server:default:FileIdentifierMapper",
"@type": "ExtensionBasedMapper",
Expand All @@ -22,9 +18,6 @@
"@type": "FileDataAccessor",
"FileDataAccessor:_resourceMapper": {
"@id": "urn:solid-server:default:FileIdentifierMapper"
},
"FileDataAccessor:_metadataController": {
"@id": "urn:solid-server:default:MetadataController"
}
},
{
Expand All @@ -35,12 +28,6 @@
},
"DataAccessorBasedStore:_base": {
"@id": "urn:solid-server:default:variable:base"
},
"DataAccessorBasedStore:_metadataController": {
"@id": "urn:solid-server:default:MetadataController"
},
"DataAccessorBasedStore:_containerManager": {
"@id": "urn:solid-server:default:UrlContainerManager"
}
}
]
Expand Down
13 changes: 0 additions & 13 deletions config/presets/storage/backend/storage-memory.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
{
"@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^1.0.0/components/context.jsonld",
"@graph": [
{
"@id": "urn:solid-server:default:MetadataController",
"@type": "MetadataController"
},
{
"@id": "urn:solid-server:default:MemoryDataAccessor",
"@type": "InMemoryDataAccessor",
"InMemoryDataAccessor:_base": {
"@id": "urn:solid-server:default:variable:base"
},
"InMemoryDataAccessor:_metadataController": {
"@id": "urn:solid-server:default:MetadataController"
}
},
{
Expand All @@ -23,12 +16,6 @@
},
"DataAccessorBasedStore:_base": {
"@id": "urn:solid-server:default:variable:base"
},
"DataAccessorBasedStore:_metadataController": {
"@id": "urn:solid-server:default:MetadataController"
},
"DataAccessorBasedStore:_containerManager": {
"@id": "urn:solid-server:default:UrlContainerManager"
}
}
]
Expand Down
17 changes: 0 additions & 17 deletions config/presets/storage/backend/storage-sparql-endpoint.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
{
"@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^1.0.0/components/context.jsonld",
"@graph": [
{
"@id": "urn:solid-server:default:MetadataController",
"@type": "MetadataController"
},

{
"@id": "urn:solid-server:default:SparqlDataAccessor",
"@type": "SparqlDataAccessor",
Expand All @@ -14,12 +9,6 @@
},
"SparqlDataAccessor:_base": {
"@id": "urn:solid-server:default:variable:base"
},
"SparqlDataAccessor:_containerManager": {
"@id": "urn:solid-server:default:UrlContainerManager"
},
"SparqlDataAccessor:_metadataController": {
"@id": "urn:solid-server:default:MetadataController"
}
},

Expand All @@ -31,12 +20,6 @@
},
"DataAccessorBasedStore:_base": {
"@id": "urn:solid-server:default:variable:base"
},
"DataAccessorBasedStore:_metadataController": {
"@id": "urn:solid-server:default:MetadataController"
},
"DataAccessorBasedStore:_containerManager": {
"@id": "urn:solid-server:default:UrlContainerManager"
}
},

Expand Down
7 changes: 3 additions & 4 deletions index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ export * from './src/storage/routing/RouterRule';
// Storage
export * from './src/storage/AtomicResourceStore';
export * from './src/storage/Conditions';
export * from './src/storage/ContainerManager';
export * from './src/storage/DataAccessorBasedStore';
export * from './src/storage/ExtensionBasedMapper';
export * from './src/storage/FileIdentifierMapper';
Expand All @@ -128,7 +127,6 @@ export * from './src/storage/ResourceLocker';
export * from './src/storage/ResourceStore';
export * from './src/storage/RoutingResourceStore';
export * from './src/storage/SingleThreadedResourceLocker';
export * from './src/storage/UrlContainerManager';
export * from './src/storage/WrappedExpiringResourceLocker';

// Util/Errors
Expand All @@ -147,5 +145,6 @@ export * from './src/util/AllVoidCompositeHandler';
export * from './src/util/AsyncHandler';
export * from './src/util/FirstCompositeHandler';
export * from './src/util/HeaderUtil';
export * from './src/util/MetadataController';
export * from './src/util/Util';
export * from './src/util/PathUtil';
export * from './src/util/QuadUtil';
export * from './src/util/StreamUtil';
8 changes: 3 additions & 5 deletions src/authorization/WebAclAuthorizer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import type { PermissionSet } from '../ldp/permissions/PermissionSet';
import type { Representation } from '../ldp/representation/Representation';
import type { ResourceIdentifier } from '../ldp/representation/ResourceIdentifier';
import { getLoggerFor } from '../logging/LogUtil';
import type { ContainerManager } from '../storage/ContainerManager';
import type { ResourceStore } from '../storage/ResourceStore';
import { INTERNAL_QUADS } from '../util/ContentTypes';
import { ForbiddenHttpError } from '../util/errors/ForbiddenHttpError';
import { NotFoundHttpError } from '../util/errors/NotFoundHttpError';
import { UnauthorizedHttpError } from '../util/errors/UnauthorizedHttpError';
import { getParentContainer } from '../util/PathUtil';
import { ACL, FOAF } from '../util/UriConstants';
import type { AclManager } from './AclManager';
import type { AuthorizerArgs } from './Authorizer';
Expand All @@ -25,13 +25,11 @@ export class WebAclAuthorizer extends Authorizer {
protected readonly logger = getLoggerFor(this);

private readonly aclManager: AclManager;
private readonly containerManager: ContainerManager;
private readonly resourceStore: ResourceStore;

public constructor(aclManager: AclManager, containerManager: ContainerManager, resourceStore: ResourceStore) {
public constructor(aclManager: AclManager, resourceStore: ResourceStore) {
super();
this.aclManager = aclManager;
this.containerManager = containerManager;
this.resourceStore = resourceStore;
}

Expand Down Expand Up @@ -134,7 +132,7 @@ export class WebAclAuthorizer extends Authorizer {
}

this.logger.debug(`Traversing to the parent of ${id.path}`);
const parent = await this.containerManager.getContainer(id);
const parent = getParentContainer(id);
return this.getAclRecursive(parent, true);
}

Expand Down
4 changes: 2 additions & 2 deletions src/ldp/http/BasicResponseWriter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { getLoggerFor } from '../../logging/LogUtil';
import type { HttpResponse } from '../../server/HttpResponse';
import { INTERNAL_QUADS } from '../../util/ContentTypes';
import { UnsupportedHttpError } from '../../util/errors/UnsupportedHttpError';
import { pipeSafe } from '../../util/Util';
import { pipeSafely } from '../../util/StreamUtil';
import type { MetadataWriter } from './metadata/MetadataWriter';
import type { ResponseDescription } from './response/ResponseDescription';
import { ResponseWriter } from './ResponseWriter';
Expand Down Expand Up @@ -34,7 +34,7 @@ export class BasicResponseWriter extends ResponseWriter {
input.response.writeHead(input.result.statusCode);

if (input.result.data) {
const pipe = pipeSafe(input.result.data, input.response);
const pipe = pipeSafely(input.result.data, input.response);
pipe.on('error', (error): void => {
this.logger.error(`Writing to HttpResponse failed with message ${error.message}`);
});
Expand Down
2 changes: 1 addition & 1 deletion src/ldp/http/BasicTargetExtractor.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { TLSSocket } from 'tls';
import { getLoggerFor } from '../../logging/LogUtil';
import type { HttpRequest } from '../../server/HttpRequest';
import { toCanonicalUriPath } from '../../util/Util';
import { toCanonicalUriPath } from '../../util/PathUtil';
import type { ResourceIdentifier } from '../representation/ResourceIdentifier';
import { TargetExtractor } from './TargetExtractor';

Expand Down
6 changes: 3 additions & 3 deletions src/ldp/http/SparqlUpdateBodyParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { getLoggerFor } from '../../logging/LogUtil';
import { APPLICATION_SPARQL_UPDATE } from '../../util/ContentTypes';
import { UnsupportedHttpError } from '../../util/errors/UnsupportedHttpError';
import { UnsupportedMediaTypeHttpError } from '../../util/errors/UnsupportedMediaTypeHttpError';
import { pipeSafe, readableToString } from '../../util/Util';
import { pipeSafely, readableToString } from '../../util/StreamUtil';
import type { BodyParserArgs } from './BodyParser';
import { BodyParser } from './BodyParser';
import type { SparqlUpdatePatch } from './SparqlUpdatePatch';
Expand All @@ -29,8 +29,8 @@ export class SparqlUpdateBodyParser extends BodyParser {
// Note that readableObjectMode is only defined starting from Node 12
// It is impossible to check if object mode is enabled in Node 10 (without accessing private variables)
const options = { objectMode: request.readableObjectMode };
const toAlgebraStream = pipeSafe(request, new PassThrough(options));
const dataCopy = pipeSafe(request, new PassThrough(options));
const toAlgebraStream = pipeSafely(request, new PassThrough(options));
const dataCopy = pipeSafely(request, new PassThrough(options));
let algebra: Algebra.Operation;
try {
const sparql = await readableToString(toAlgebraStream);
Expand Down
2 changes: 1 addition & 1 deletion src/ldp/http/metadata/LinkRelMetadataWriter.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { HttpResponse } from '../../../server/HttpResponse';
import { addHeader } from '../../../util/Util';
import { addHeader } from '../../../util/HeaderUtil';
import type { RepresentationMetadata } from '../../representation/RepresentationMetadata';
import { MetadataWriter } from './MetadataWriter';

Expand Down
2 changes: 1 addition & 1 deletion src/ldp/http/metadata/MappedMetadataWriter.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { HttpResponse } from '../../../server/HttpResponse';
import { addHeader } from '../../../util/Util';
import { addHeader } from '../../../util/HeaderUtil';
import type { RepresentationMetadata } from '../../representation/RepresentationMetadata';
import { MetadataWriter } from './MetadataWriter';

Expand Down
16 changes: 0 additions & 16 deletions src/storage/ContainerManager.ts

This file was deleted.

21 changes: 8 additions & 13 deletions src/storage/DataAccessorBasedStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ import { MethodNotAllowedHttpError } from '../util/errors/MethodNotAllowedHttpEr
import { NotFoundHttpError } from '../util/errors/NotFoundHttpError';
import { NotImplementedError } from '../util/errors/NotImplementedError';
import { UnsupportedHttpError } from '../util/errors/UnsupportedHttpError';
import type { MetadataController } from '../util/MetadataController';
import { ensureTrailingSlash, getParentContainer, trimTrailingSlashes } from '../util/PathUtil';
import { parseQuads } from '../util/QuadUtil';
import { generateResourceQuads } from '../util/ResourceUtil';
import { CONTENT_TYPE, HTTP, LDP, RDF } from '../util/UriConstants';
import { ensureTrailingSlash, trimTrailingSlashes } from '../util/Util';
import type { DataAccessor } from './accessors/DataAccessor';
import type { ContainerManager } from './ContainerManager';
import type { ResourceStore } from './ResourceStore';

/**
Expand Down Expand Up @@ -45,15 +45,10 @@ import type { ResourceStore } from './ResourceStore';
export class DataAccessorBasedStore implements ResourceStore {
private readonly accessor: DataAccessor;
private readonly base: string;
private readonly metadataController: MetadataController;
private readonly containerManager: ContainerManager;

public constructor(accessor: DataAccessor, base: string, metadataController: MetadataController,
containerManager: ContainerManager) {
public constructor(accessor: DataAccessor, base: string) {
this.accessor = accessor;
this.base = ensureTrailingSlash(base);
this.metadataController = metadataController;
this.containerManager = containerManager;
}

public async getRepresentation(identifier: ResourceIdentifier): Promise<Representation> {
Expand Down Expand Up @@ -219,13 +214,13 @@ export class DataAccessorBasedStore implements ResourceStore {
}

if (createContainers) {
await this.createRecursiveContainers(await this.containerManager.getContainer(identifier));
await this.createRecursiveContainers(getParentContainer(identifier));
}

// Make sure the metadata has the correct identifier and correct type quads
const { metadata } = representation;
metadata.identifier = DataFactory.namedNode(identifier.path);
metadata.addQuads(this.metadataController.generateResourceQuads(metadata.identifier, isContainer));
metadata.addQuads(generateResourceQuads(metadata.identifier, isContainer));

await (isContainer ?
this.accessor.writeContainer(identifier, representation.metadata) :
Expand All @@ -241,7 +236,7 @@ export class DataAccessorBasedStore implements ResourceStore {
protected async handleContainerData(representation: Representation): Promise<void> {
let quads: Quad[];
try {
quads = await this.metadataController.parseQuads(representation.data);
quads = await parseQuads(representation.data);
} catch (error: unknown) {
if (error instanceof Error) {
throw new UnsupportedHttpError(`Can only create containers with RDF data. ${error.message}`);
Expand Down Expand Up @@ -349,7 +344,7 @@ export class DataAccessorBasedStore implements ResourceStore {
} catch (error: unknown) {
if (error instanceof NotFoundHttpError) {
// Make sure the parent exists first
await this.createRecursiveContainers(await this.containerManager.getContainer(container));
await this.createRecursiveContainers(getParentContainer(container));
await this.writeData(container, this.getEmptyContainerRepresentation(container), true);
} else {
throw error;
Expand Down
2 changes: 1 addition & 1 deletion src/storage/ExtensionBasedMapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
encodeUriPathComponents,
ensureTrailingSlash,
trimTrailingSlashes,
} from '../util/Util';
} from '../util/PathUtil';
import type { FileIdentifierMapper, ResourceLink } from './FileIdentifierMapper';

const { join: joinPath, normalize: normalizePath } = posix;
Expand Down
34 changes: 0 additions & 34 deletions src/storage/UrlContainerManager.ts

This file was deleted.

Loading

0 comments on commit 1073c2f

Please sign in to comment.