mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
refactor: Remove Setup.
This commit is contained in:
parent
04a91858c2
commit
badbe0032b
@ -3,6 +3,7 @@
|
|||||||
"import": [
|
"import": [
|
||||||
"files-scs:config/presets/acl.json",
|
"files-scs:config/presets/acl.json",
|
||||||
"files-scs:config/presets/http.json",
|
"files-scs:config/presets/http.json",
|
||||||
|
"files-scs:config/presets/init.json",
|
||||||
"files-scs:config/presets/ldp.json",
|
"files-scs:config/presets/ldp.json",
|
||||||
"files-scs:config/presets/ldp/credentials-extractor.json",
|
"files-scs:config/presets/ldp/credentials-extractor.json",
|
||||||
"files-scs:config/presets/ldp/metadata-handler.json",
|
"files-scs:config/presets/ldp/metadata-handler.json",
|
||||||
@ -15,7 +16,6 @@
|
|||||||
"files-scs:config/presets/middleware.json",
|
"files-scs:config/presets/middleware.json",
|
||||||
"files-scs:config/presets/pod-management.json",
|
"files-scs:config/presets/pod-management.json",
|
||||||
"files-scs:config/presets/representation-conversion.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/backend/storage-memory.json",
|
||||||
"files-scs:config/presets/storage/routing/no-routing.json",
|
"files-scs:config/presets/storage/routing/no-routing.json",
|
||||||
"files-scs:config/presets/storage-wrapper.json",
|
"files-scs:config/presets/storage-wrapper.json",
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
"import": [
|
"import": [
|
||||||
"files-scs:config/presets/acl.json",
|
"files-scs:config/presets/acl.json",
|
||||||
"files-scs:config/presets/http.json",
|
"files-scs:config/presets/http.json",
|
||||||
|
"files-scs:config/presets/init.json",
|
||||||
"files-scs:config/presets/ldp.json",
|
"files-scs:config/presets/ldp.json",
|
||||||
"files-scs:config/presets/ldp/credentials-extractor.json",
|
"files-scs:config/presets/ldp/credentials-extractor.json",
|
||||||
"files-scs:config/presets/ldp/metadata-handler.json",
|
"files-scs:config/presets/ldp/metadata-handler.json",
|
||||||
@ -15,7 +16,6 @@
|
|||||||
"files-scs:config/presets/middleware.json",
|
"files-scs:config/presets/middleware.json",
|
||||||
"files-scs:config/presets/pod-management.json",
|
"files-scs:config/presets/pod-management.json",
|
||||||
"files-scs:config/presets/representation-conversion.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-filesystem.json",
|
||||||
"files-scs:config/presets/storage/routing/no-routing.json",
|
"files-scs:config/presets/storage/routing/no-routing.json",
|
||||||
"files-scs:config/presets/storage-wrapper.json",
|
"files-scs:config/presets/storage-wrapper.json",
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
"import": [
|
"import": [
|
||||||
"files-scs:config/presets/acl.json",
|
"files-scs:config/presets/acl.json",
|
||||||
"files-scs:config/presets/http.json",
|
"files-scs:config/presets/http.json",
|
||||||
|
"files-scs:config/presets/init.json",
|
||||||
"files-scs:config/presets/ldp.json",
|
"files-scs:config/presets/ldp.json",
|
||||||
"files-scs:config/presets/ldp/credentials-extractor.json",
|
"files-scs:config/presets/ldp/credentials-extractor.json",
|
||||||
"files-scs:config/presets/ldp/metadata-handler.json",
|
"files-scs:config/presets/ldp/metadata-handler.json",
|
||||||
@ -15,7 +16,6 @@
|
|||||||
"files-scs:config/presets/middleware.json",
|
"files-scs:config/presets/middleware.json",
|
||||||
"files-scs:config/presets/pod-management.json",
|
"files-scs:config/presets/pod-management.json",
|
||||||
"files-scs:config/presets/representation-conversion.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-filesystem.json",
|
||||||
"files-scs:config/presets/storage/backend/storage-memory.json",
|
"files-scs:config/presets/storage/backend/storage-memory.json",
|
||||||
"files-scs:config/presets/storage/backend/storage-sparql-endpoint.json",
|
"files-scs:config/presets/storage/backend/storage-sparql-endpoint.json",
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
"import": [
|
"import": [
|
||||||
"files-scs:config/presets/acl.json",
|
"files-scs:config/presets/acl.json",
|
||||||
"files-scs:config/presets/http.json",
|
"files-scs:config/presets/http.json",
|
||||||
|
"files-scs:config/presets/init.json",
|
||||||
"files-scs:config/presets/ldp.json",
|
"files-scs:config/presets/ldp.json",
|
||||||
"files-scs:config/presets/ldp/credentials-extractor.json",
|
"files-scs:config/presets/ldp/credentials-extractor.json",
|
||||||
"files-scs:config/presets/ldp/metadata-handler.json",
|
"files-scs:config/presets/ldp/metadata-handler.json",
|
||||||
@ -15,7 +16,6 @@
|
|||||||
"files-scs:config/presets/middleware.json",
|
"files-scs:config/presets/middleware.json",
|
||||||
"files-scs:config/presets/pod-management.json",
|
"files-scs:config/presets/pod-management.json",
|
||||||
"files-scs:config/presets/representation-conversion.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-filesystem.json",
|
||||||
"files-scs:config/presets/storage/backend/storage-sparql-endpoint.json",
|
"files-scs:config/presets/storage/backend/storage-sparql-endpoint.json",
|
||||||
"files-scs:config/presets/storage/routing/quad-type-routing.json",
|
"files-scs:config/presets/storage/routing/quad-type-routing.json",
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
"import": [
|
"import": [
|
||||||
"files-scs:config/presets/acl.json",
|
"files-scs:config/presets/acl.json",
|
||||||
"files-scs:config/presets/http.json",
|
"files-scs:config/presets/http.json",
|
||||||
|
"files-scs:config/presets/init.json",
|
||||||
"files-scs:config/presets/ldp.json",
|
"files-scs:config/presets/ldp.json",
|
||||||
"files-scs:config/presets/ldp/credentials-extractor.json",
|
"files-scs:config/presets/ldp/credentials-extractor.json",
|
||||||
"files-scs:config/presets/ldp/metadata-handler.json",
|
"files-scs:config/presets/ldp/metadata-handler.json",
|
||||||
@ -15,7 +16,6 @@
|
|||||||
"files-scs:config/presets/middleware.json",
|
"files-scs:config/presets/middleware.json",
|
||||||
"files-scs:config/presets/pod-management.json",
|
"files-scs:config/presets/pod-management.json",
|
||||||
"files-scs:config/presets/representation-conversion.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/backend/storage-sparql-endpoint.json",
|
||||||
"files-scs:config/presets/storage/routing/no-routing.json",
|
"files-scs:config/presets/storage/routing/no-routing.json",
|
||||||
"files-scs:config/presets/storage-wrapper.json",
|
"files-scs:config/presets/storage-wrapper.json",
|
||||||
|
@ -1,13 +1,6 @@
|
|||||||
{
|
{
|
||||||
"@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^1.0.0/components/context.jsonld",
|
"@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^1.0.0/components/context.jsonld",
|
||||||
"@graph": [
|
"@graph": [
|
||||||
{
|
|
||||||
"@id": "urn:solid-server:default",
|
|
||||||
"@type": "Setup",
|
|
||||||
"Setup:_initializer": {
|
|
||||||
"@id": "urn:solid-server:default:Initializer"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"@id": "urn:solid-server:default:Initializer",
|
"@id": "urn:solid-server:default:Initializer",
|
||||||
"@type": "AllVoidCompositeHandler",
|
"@type": "AllVoidCompositeHandler",
|
@ -54,7 +54,7 @@
|
|||||||
"test:deploy": "test/deploy/validate-package.sh",
|
"test:deploy": "test/deploy/validate-package.sh",
|
||||||
"test:integration": "jest --coverageThreshold '{}' test/integration",
|
"test:integration": "jest --coverageThreshold '{}' test/integration",
|
||||||
"test:unit": "jest test/unit",
|
"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",
|
"version": "manual-git-changelog onversion",
|
||||||
"watch": "nodemon --watch \"dist/**/*.js\" --exec npm start"
|
"watch": "nodemon --watch \"dist/**/*.js\" --exec npm start"
|
||||||
},
|
},
|
||||||
|
@ -18,7 +18,6 @@ export * from './init/CliRunner';
|
|||||||
export * from './init/Initializer';
|
export * from './init/Initializer';
|
||||||
export * from './init/LoggerInitializer';
|
export * from './init/LoggerInitializer';
|
||||||
export * from './init/ServerInitializer';
|
export * from './init/ServerInitializer';
|
||||||
export * from './init/Setup';
|
|
||||||
|
|
||||||
// LDP/HTTP/Metadata
|
// LDP/HTTP/Metadata
|
||||||
export * from './ldp/http/metadata/BasicMetadataExtractor';
|
export * from './ldp/http/metadata/BasicMetadataExtractor';
|
||||||
|
@ -4,7 +4,7 @@ import type { LoaderProperties } from 'componentsjs';
|
|||||||
import { Loader } from 'componentsjs';
|
import { Loader } from 'componentsjs';
|
||||||
import yargs from 'yargs';
|
import yargs from 'yargs';
|
||||||
import { ensureTrailingSlash } from '../util/PathUtil';
|
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
|
* Generic run function for starting the server from a given config
|
||||||
@ -47,8 +47,8 @@ export const runCli = function({
|
|||||||
// Setup from config file
|
// Setup from config file
|
||||||
const loader = new Loader(properties);
|
const loader = new Loader(properties);
|
||||||
await loader.registerAvailableModuleResources();
|
await loader.registerAvailableModuleResources();
|
||||||
const setup: Setup = await loader
|
const initializer: Initializer = await loader
|
||||||
.instantiateFromUrl('urn:solid-server:default', configPath, undefined, {
|
.instantiateFromUrl('urn:solid-server:default:Initializer', configPath, undefined, {
|
||||||
variables: {
|
variables: {
|
||||||
'urn:solid-server:default:variable:baseUrl':
|
'urn:solid-server:default:variable:baseUrl':
|
||||||
params.baseUrl ? ensureTrailingSlash(params.baseUrl) : `http://localhost:${params.port}/`,
|
params.baseUrl ? ensureTrailingSlash(params.baseUrl) : `http://localhost:${params.port}/`,
|
||||||
@ -59,8 +59,8 @@ export const runCli = function({
|
|||||||
'urn:solid-server:default:variable:podTemplateFolder':
|
'urn:solid-server:default:variable:podTemplateFolder':
|
||||||
params.podTemplateFolder ?? path.join(__dirname, '../../templates'),
|
params.podTemplateFolder ?? path.join(__dirname, '../../templates'),
|
||||||
},
|
},
|
||||||
}) as Setup;
|
}) as Initializer;
|
||||||
await setup.setup();
|
await initializer.handleSafe();
|
||||||
})().catch((error): void => {
|
})().catch((error): void => {
|
||||||
// This is the only time we can *not* use the logger to print error messages, as dependency injection has failed.
|
// This is the only time we can *not* use the logger to print error messages, as dependency injection has failed.
|
||||||
stderr.write(`${error}\n`);
|
stderr.write(`${error}\n`);
|
||||||
|
@ -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<void> {
|
|
||||||
await this.initializer.handleSafe();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +1,19 @@
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { Loader } from 'componentsjs';
|
import { Loader } from 'componentsjs';
|
||||||
import { runCli } from '../../../src/init/CliRunner';
|
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 mainModulePath = path.join(__dirname, '../../../');
|
||||||
|
|
||||||
const mockSetup: jest.Mocked<Setup> = {
|
const initializer: jest.Mocked<Initializer> = {
|
||||||
setup: jest.fn(async(): Promise<any> => null),
|
handleSafe: jest.fn(),
|
||||||
} as any;
|
} as any;
|
||||||
const loader: jest.Mocked<Loader> = {
|
|
||||||
instantiateFromUrl: jest.fn(async(): Promise<any> => mockSetup),
|
const loader: jest.Mocked<Loader> = {
|
||||||
registerAvailableModuleResources: jest.fn(async(): Promise<any> => mockSetup),
|
instantiateFromUrl: jest.fn(async(): Promise<any> => initializer),
|
||||||
|
registerAvailableModuleResources: jest.fn(),
|
||||||
} as any;
|
} as any;
|
||||||
|
|
||||||
// Mock the Loader class.
|
|
||||||
jest.mock('componentsjs', (): any => ({
|
jest.mock('componentsjs', (): any => ({
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||||
Loader: jest.fn((): Loader => loader),
|
Loader: jest.fn((): Loader => loader),
|
||||||
@ -28,13 +28,13 @@ describe('CliRunner', (): void => {
|
|||||||
runCli({
|
runCli({
|
||||||
argv: [ 'node', 'script' ],
|
argv: [ 'node', 'script' ],
|
||||||
});
|
});
|
||||||
await mockSetup.setup();
|
await initializer.handleSafe();
|
||||||
|
|
||||||
expect(Loader).toHaveBeenCalledTimes(1);
|
expect(Loader).toHaveBeenCalledTimes(1);
|
||||||
expect(Loader).toHaveBeenCalledWith({ mainModulePath });
|
expect(Loader).toHaveBeenCalledWith({ mainModulePath });
|
||||||
expect(loader.instantiateFromUrl).toHaveBeenCalledTimes(1);
|
expect(loader.instantiateFromUrl).toHaveBeenCalledTimes(1);
|
||||||
expect(loader.instantiateFromUrl).toHaveBeenCalledWith(
|
expect(loader.instantiateFromUrl).toHaveBeenCalledWith(
|
||||||
'urn:solid-server:default',
|
'urn:solid-server:default:Initializer',
|
||||||
path.join(__dirname, '/../../../config/config-default.json'),
|
path.join(__dirname, '/../../../config/config-default.json'),
|
||||||
undefined,
|
undefined,
|
||||||
{
|
{
|
||||||
@ -50,8 +50,8 @@ describe('CliRunner', (): void => {
|
|||||||
);
|
);
|
||||||
expect(loader.registerAvailableModuleResources).toHaveBeenCalledTimes(1);
|
expect(loader.registerAvailableModuleResources).toHaveBeenCalledTimes(1);
|
||||||
expect(loader.registerAvailableModuleResources).toHaveBeenCalledWith();
|
expect(loader.registerAvailableModuleResources).toHaveBeenCalledWith();
|
||||||
expect(mockSetup.setup).toHaveBeenCalledTimes(1);
|
expect(initializer.handleSafe).toHaveBeenCalledTimes(1);
|
||||||
expect(mockSetup.setup).toHaveBeenCalledWith();
|
expect(initializer.handleSafe).toHaveBeenCalledWith();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('accepts abbreviated flags.', async(): Promise<void> => {
|
it('accepts abbreviated flags.', async(): Promise<void> => {
|
||||||
@ -67,10 +67,10 @@ describe('CliRunner', (): void => {
|
|||||||
'-t', 'templates',
|
'-t', 'templates',
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
await mockSetup.setup();
|
await initializer.handleSafe();
|
||||||
|
|
||||||
expect(loader.instantiateFromUrl).toHaveBeenCalledWith(
|
expect(loader.instantiateFromUrl).toHaveBeenCalledWith(
|
||||||
'urn:solid-server:default',
|
'urn:solid-server:default:Initializer',
|
||||||
path.join(process.cwd(), 'myconfig.json'),
|
path.join(process.cwd(), 'myconfig.json'),
|
||||||
undefined,
|
undefined,
|
||||||
{
|
{
|
||||||
@ -99,10 +99,10 @@ describe('CliRunner', (): void => {
|
|||||||
'--podTemplateFolder', 'templates',
|
'--podTemplateFolder', 'templates',
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
await mockSetup.setup();
|
await initializer.handleSafe();
|
||||||
|
|
||||||
expect(loader.instantiateFromUrl).toHaveBeenCalledWith(
|
expect(loader.instantiateFromUrl).toHaveBeenCalledWith(
|
||||||
'urn:solid-server:default',
|
'urn:solid-server:default:Initializer',
|
||||||
path.join(process.cwd(), 'myconfig.json'),
|
path.join(process.cwd(), 'myconfig.json'),
|
||||||
undefined,
|
undefined,
|
||||||
{
|
{
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
import type { Initializer } from '../../../src/init/Initializer';
|
|
||||||
import { Setup } from '../../../src/init/Setup';
|
|
||||||
|
|
||||||
describe('Setup', (): void => {
|
|
||||||
const initializer: jest.Mocked<Initializer> = {
|
|
||||||
handleSafe: jest.fn(),
|
|
||||||
} as any;
|
|
||||||
|
|
||||||
beforeAll(async(): Promise<void> => {
|
|
||||||
const setup = new Setup(initializer);
|
|
||||||
await setup.setup();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('calls the initializer.', async(): Promise<void> => {
|
|
||||||
expect(initializer.handleSafe).toHaveBeenCalledTimes(1);
|
|
||||||
});
|
|
||||||
});
|
|
Loading…
x
Reference in New Issue
Block a user