diff --git a/config/config-default.json b/config/config-default.json index 08451604a..dd507f89b 100644 --- a/config/config-default.json +++ b/config/config-default.json @@ -3,6 +3,7 @@ "import": [ "files-scs:config/presets/acl.json", "files-scs:config/presets/http.json", + "files-scs:config/presets/init.json", "files-scs:config/presets/ldp.json", "files-scs:config/presets/ldp/credentials-extractor.json", "files-scs:config/presets/ldp/metadata-handler.json", @@ -15,7 +16,6 @@ "files-scs:config/presets/middleware.json", "files-scs:config/presets/pod-management.json", "files-scs:config/presets/representation-conversion.json", - "files-scs:config/presets/setup.json", "files-scs:config/presets/storage/backend/storage-memory.json", "files-scs:config/presets/storage/routing/no-routing.json", "files-scs:config/presets/storage-wrapper.json", diff --git a/config/config-file.json b/config/config-file.json index e06692afc..e0cec9af0 100644 --- a/config/config-file.json +++ b/config/config-file.json @@ -3,6 +3,7 @@ "import": [ "files-scs:config/presets/acl.json", "files-scs:config/presets/http.json", + "files-scs:config/presets/init.json", "files-scs:config/presets/ldp.json", "files-scs:config/presets/ldp/credentials-extractor.json", "files-scs:config/presets/ldp/metadata-handler.json", @@ -15,7 +16,6 @@ "files-scs:config/presets/middleware.json", "files-scs:config/presets/pod-management.json", "files-scs:config/presets/representation-conversion.json", - "files-scs:config/presets/setup.json", "files-scs:config/presets/storage/backend/storage-filesystem.json", "files-scs:config/presets/storage/routing/no-routing.json", "files-scs:config/presets/storage-wrapper.json", diff --git a/config/config-path-routing.json b/config/config-path-routing.json index e7f9dcbbd..4a26bc36b 100644 --- a/config/config-path-routing.json +++ b/config/config-path-routing.json @@ -3,6 +3,7 @@ "import": [ "files-scs:config/presets/acl.json", "files-scs:config/presets/http.json", + "files-scs:config/presets/init.json", "files-scs:config/presets/ldp.json", "files-scs:config/presets/ldp/credentials-extractor.json", "files-scs:config/presets/ldp/metadata-handler.json", @@ -15,7 +16,6 @@ "files-scs:config/presets/middleware.json", "files-scs:config/presets/pod-management.json", "files-scs:config/presets/representation-conversion.json", - "files-scs:config/presets/setup.json", "files-scs:config/presets/storage/backend/storage-filesystem.json", "files-scs:config/presets/storage/backend/storage-memory.json", "files-scs:config/presets/storage/backend/storage-sparql-endpoint.json", diff --git a/config/config-rdf-to-sparql-endpoint.json b/config/config-rdf-to-sparql-endpoint.json index e27450b64..d7c131fb5 100644 --- a/config/config-rdf-to-sparql-endpoint.json +++ b/config/config-rdf-to-sparql-endpoint.json @@ -3,6 +3,7 @@ "import": [ "files-scs:config/presets/acl.json", "files-scs:config/presets/http.json", + "files-scs:config/presets/init.json", "files-scs:config/presets/ldp.json", "files-scs:config/presets/ldp/credentials-extractor.json", "files-scs:config/presets/ldp/metadata-handler.json", @@ -15,7 +16,6 @@ "files-scs:config/presets/middleware.json", "files-scs:config/presets/pod-management.json", "files-scs:config/presets/representation-conversion.json", - "files-scs:config/presets/setup.json", "files-scs:config/presets/storage/backend/storage-filesystem.json", "files-scs:config/presets/storage/backend/storage-sparql-endpoint.json", "files-scs:config/presets/storage/routing/quad-type-routing.json", diff --git a/config/config-sparql-endpoint.json b/config/config-sparql-endpoint.json index e43705dcf..2f809eeec 100644 --- a/config/config-sparql-endpoint.json +++ b/config/config-sparql-endpoint.json @@ -3,6 +3,7 @@ "import": [ "files-scs:config/presets/acl.json", "files-scs:config/presets/http.json", + "files-scs:config/presets/init.json", "files-scs:config/presets/ldp.json", "files-scs:config/presets/ldp/credentials-extractor.json", "files-scs:config/presets/ldp/metadata-handler.json", @@ -15,7 +16,6 @@ "files-scs:config/presets/middleware.json", "files-scs:config/presets/pod-management.json", "files-scs:config/presets/representation-conversion.json", - "files-scs:config/presets/setup.json", "files-scs:config/presets/storage/backend/storage-sparql-endpoint.json", "files-scs:config/presets/storage/routing/no-routing.json", "files-scs:config/presets/storage-wrapper.json", diff --git a/config/presets/setup.json b/config/presets/init.json similarity index 87% rename from config/presets/setup.json rename to config/presets/init.json index 65d1bb0cc..a29fa7f92 100644 --- a/config/presets/setup.json +++ b/config/presets/init.json @@ -1,13 +1,6 @@ { "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^1.0.0/components/context.jsonld", "@graph": [ - { - "@id": "urn:solid-server:default", - "@type": "Setup", - "Setup:_initializer": { - "@id": "urn:solid-server:default:Initializer" - } - }, { "@id": "urn:solid-server:default:Initializer", "@type": "AllVoidCompositeHandler", diff --git a/package.json b/package.json index 0e3ef2940..241336d2d 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "test:deploy": "test/deploy/validate-package.sh", "test:integration": "jest --coverageThreshold '{}' test/integration", "test:unit": "jest test/unit", - "validate": "componentsjs-compile-config urn:solid-server:default -c config/config-default.json -f > /dev/null", + "validate": "componentsjs-compile-config urn:solid-server:default:Initializer -c config/config-default.json -f > /dev/null", "version": "manual-git-changelog onversion", "watch": "nodemon --watch \"dist/**/*.js\" --exec npm start" }, diff --git a/src/index.ts b/src/index.ts index a9d870861..6d145f8d6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -18,7 +18,6 @@ export * from './init/CliRunner'; export * from './init/Initializer'; export * from './init/LoggerInitializer'; export * from './init/ServerInitializer'; -export * from './init/Setup'; // LDP/HTTP/Metadata export * from './ldp/http/metadata/BasicMetadataExtractor'; diff --git a/src/init/CliRunner.ts b/src/init/CliRunner.ts index 34daf38a0..bbda7786f 100644 --- a/src/init/CliRunner.ts +++ b/src/init/CliRunner.ts @@ -4,7 +4,7 @@ import type { LoaderProperties } from 'componentsjs'; import { Loader } from 'componentsjs'; import yargs from 'yargs'; import { ensureTrailingSlash } from '../util/PathUtil'; -import type { Setup } from './Setup'; +import type { Initializer } from './Initializer'; /** * Generic run function for starting the server from a given config @@ -47,8 +47,8 @@ export const runCli = function({ // Setup from config file const loader = new Loader(properties); await loader.registerAvailableModuleResources(); - const setup: Setup = await loader - .instantiateFromUrl('urn:solid-server:default', configPath, undefined, { + const initializer: Initializer = await loader + .instantiateFromUrl('urn:solid-server:default:Initializer', configPath, undefined, { variables: { 'urn:solid-server:default:variable:baseUrl': params.baseUrl ? ensureTrailingSlash(params.baseUrl) : `http://localhost:${params.port}/`, @@ -59,8 +59,8 @@ export const runCli = function({ 'urn:solid-server:default:variable:podTemplateFolder': params.podTemplateFolder ?? path.join(__dirname, '../../templates'), }, - }) as Setup; - await setup.setup(); + }) as Initializer; + await initializer.handleSafe(); })().catch((error): void => { // This is the only time we can *not* use the logger to print error messages, as dependency injection has failed. stderr.write(`${error}\n`); diff --git a/src/init/Setup.ts b/src/init/Setup.ts deleted file mode 100644 index 1d0a17f80..000000000 --- a/src/init/Setup.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { Initializer } from './Initializer'; - -export class Setup { - private readonly initializer: Initializer; - - public constructor(initializer: Initializer) { - this.initializer = initializer; - } - - public async setup(): Promise { - await this.initializer.handleSafe(); - } -} diff --git a/test/unit/init/CliRunner.test.ts b/test/unit/init/CliRunner.test.ts index 595445a5c..ecbdf045d 100644 --- a/test/unit/init/CliRunner.test.ts +++ b/test/unit/init/CliRunner.test.ts @@ -1,19 +1,19 @@ import * as path from 'path'; import { Loader } from 'componentsjs'; import { runCli } from '../../../src/init/CliRunner'; -import type { Setup } from '../../../src/init/Setup'; +import type { Initializer } from '../../../src/init/Initializer'; const mainModulePath = path.join(__dirname, '../../../'); -const mockSetup: jest.Mocked = { - setup: jest.fn(async(): Promise => null), -} as any; -const loader: jest.Mocked = { - instantiateFromUrl: jest.fn(async(): Promise => mockSetup), - registerAvailableModuleResources: jest.fn(async(): Promise => mockSetup), +const initializer: jest.Mocked = { + handleSafe: jest.fn(), +} as any; + +const loader: jest.Mocked = { + instantiateFromUrl: jest.fn(async(): Promise => initializer), + registerAvailableModuleResources: jest.fn(), } as any; -// Mock the Loader class. jest.mock('componentsjs', (): any => ({ // eslint-disable-next-line @typescript-eslint/naming-convention Loader: jest.fn((): Loader => loader), @@ -28,13 +28,13 @@ describe('CliRunner', (): void => { runCli({ argv: [ 'node', 'script' ], }); - await mockSetup.setup(); + await initializer.handleSafe(); expect(Loader).toHaveBeenCalledTimes(1); expect(Loader).toHaveBeenCalledWith({ mainModulePath }); expect(loader.instantiateFromUrl).toHaveBeenCalledTimes(1); expect(loader.instantiateFromUrl).toHaveBeenCalledWith( - 'urn:solid-server:default', + 'urn:solid-server:default:Initializer', path.join(__dirname, '/../../../config/config-default.json'), undefined, { @@ -50,8 +50,8 @@ describe('CliRunner', (): void => { ); expect(loader.registerAvailableModuleResources).toHaveBeenCalledTimes(1); expect(loader.registerAvailableModuleResources).toHaveBeenCalledWith(); - expect(mockSetup.setup).toHaveBeenCalledTimes(1); - expect(mockSetup.setup).toHaveBeenCalledWith(); + expect(initializer.handleSafe).toHaveBeenCalledTimes(1); + expect(initializer.handleSafe).toHaveBeenCalledWith(); }); it('accepts abbreviated flags.', async(): Promise => { @@ -67,10 +67,10 @@ describe('CliRunner', (): void => { '-t', 'templates', ], }); - await mockSetup.setup(); + await initializer.handleSafe(); expect(loader.instantiateFromUrl).toHaveBeenCalledWith( - 'urn:solid-server:default', + 'urn:solid-server:default:Initializer', path.join(process.cwd(), 'myconfig.json'), undefined, { @@ -99,10 +99,10 @@ describe('CliRunner', (): void => { '--podTemplateFolder', 'templates', ], }); - await mockSetup.setup(); + await initializer.handleSafe(); expect(loader.instantiateFromUrl).toHaveBeenCalledWith( - 'urn:solid-server:default', + 'urn:solid-server:default:Initializer', path.join(process.cwd(), 'myconfig.json'), undefined, { diff --git a/test/unit/init/Setup.test.ts b/test/unit/init/Setup.test.ts deleted file mode 100644 index 320a24a8c..000000000 --- a/test/unit/init/Setup.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { Initializer } from '../../../src/init/Initializer'; -import { Setup } from '../../../src/init/Setup'; - -describe('Setup', (): void => { - const initializer: jest.Mocked = { - handleSafe: jest.fn(), - } as any; - - beforeAll(async(): Promise => { - const setup = new Setup(initializer); - await setup.setup(); - }); - - it('calls the initializer.', async(): Promise => { - expect(initializer.handleSafe).toHaveBeenCalledTimes(1); - }); -});