mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
feat: Remove podTemplateFolder as a variable.
This is now possible due to TemplatedResourcesGenerator accepting path strings relative to the module root.
This commit is contained in:
parent
e9917322e3
commit
1d9b027a57
@ -67,7 +67,6 @@ Additional recipes for configuring and deploying the server can be found at [sol
|
|||||||
| `--config, -c` | `"config/config-default.json"` | `config-default.json` stores all data in memory. If you would like to persist data to your filesystem, try `config-file.json` |
|
| `--config, -c` | `"config/config-default.json"` | `config-default.json` stores all data in memory. If you would like to persist data to your filesystem, try `config-file.json` |
|
||||||
| `--mainModulePath, -m` | | Absolute path to the package root from which ComponentJS module resolution should start. |
|
| `--mainModulePath, -m` | | Absolute path to the package root from which ComponentJS module resolution should start. |
|
||||||
| `--loggingLevel, -l` | `"info"`| |
|
| `--loggingLevel, -l` | `"info"`| |
|
||||||
| `--podTemplateFolder, -t` | `"templates/pod"` | Folder containing the templates used for pod provisioning. |
|
|
||||||
| `--rootFilePath, -f` | `"./"` | Folder to start the server in when using a file-based config. |
|
| `--rootFilePath, -f` | `"./"` | Folder to start the server in when using a file-based config. |
|
||||||
| `--sparqlEndpoint, -s` | | Endpoint to call when using a SPARQL-based config. |
|
| `--sparqlEndpoint, -s` | | Endpoint to call when using a SPARQL-based config. |
|
||||||
| `--podConfigJson` | `"./pod-config.json"` | JSON file to store pod configuration when using a dynamic config. |
|
| `--podConfigJson` | `"./pod-config.json"` | JSON file to store pod configuration when using a dynamic config. |
|
||||||
|
@ -21,10 +21,6 @@
|
|||||||
"@id": "urn:solid-server:default:variable:loggingLevel",
|
"@id": "urn:solid-server:default:variable:loggingLevel",
|
||||||
"@type": "Variable"
|
"@type": "Variable"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"@id": "urn:solid-server:default:variable:podTemplateFolder",
|
|
||||||
"@type": "Variable"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"comment": "Path to the JSON file used to store configuration for dynamic pods.",
|
"comment": "Path to the JSON file used to store configuration for dynamic pods.",
|
||||||
"@id": "urn:solid-server:default:variable:podConfigJson",
|
"@id": "urn:solid-server:default:variable:podConfigJson",
|
||||||
|
@ -79,9 +79,7 @@
|
|||||||
"ConfigPodManager:_resourcesGenerator": {
|
"ConfigPodManager:_resourcesGenerator": {
|
||||||
"@id": "urn:solid-server:default:ResourcesGenerator",
|
"@id": "urn:solid-server:default:ResourcesGenerator",
|
||||||
"@type": "TemplatedResourcesGenerator",
|
"@type": "TemplatedResourcesGenerator",
|
||||||
"TemplatedResourcesGenerator:_templateFolder": {
|
"TemplatedResourcesGenerator:_templateFolder": "$PACKAGE_ROOT/templates/pod",
|
||||||
"@id": "urn:solid-server:default:variable:podTemplateFolder"
|
|
||||||
},
|
|
||||||
"TemplatedResourcesGenerator:_factory": {
|
"TemplatedResourcesGenerator:_factory": {
|
||||||
"@type": "ExtensionBasedMapperFactory"
|
"@type": "ExtensionBasedMapperFactory"
|
||||||
},
|
},
|
||||||
|
@ -4,9 +4,7 @@
|
|||||||
{
|
{
|
||||||
"@id": "urn:solid-server:default:ResourcesGenerator",
|
"@id": "urn:solid-server:default:ResourcesGenerator",
|
||||||
"@type": "TemplatedResourcesGenerator",
|
"@type": "TemplatedResourcesGenerator",
|
||||||
"TemplatedResourcesGenerator:_templateFolder": {
|
"TemplatedResourcesGenerator:_templateFolder": "$PACKAGE_ROOT/templates/pod",
|
||||||
"@id": "urn:solid-server:default:variable:podTemplateFolder"
|
|
||||||
},
|
|
||||||
"TemplatedResourcesGenerator:_factory": {
|
"TemplatedResourcesGenerator:_factory": {
|
||||||
"@type": "ExtensionBasedMapperFactory"
|
"@type": "ExtensionBasedMapperFactory"
|
||||||
},
|
},
|
||||||
|
@ -58,7 +58,6 @@ export class CliRunner {
|
|||||||
config: { type: 'string', alias: 'c' },
|
config: { type: 'string', alias: 'c' },
|
||||||
loggingLevel: { type: 'string', alias: 'l', default: 'info' },
|
loggingLevel: { type: 'string', alias: 'l', default: 'info' },
|
||||||
mainModulePath: { type: 'string', alias: 'm' },
|
mainModulePath: { type: 'string', alias: 'm' },
|
||||||
podTemplateFolder: { type: 'string', alias: 't' },
|
|
||||||
port: { type: 'number', alias: 'p', default: 3000 },
|
port: { type: 'number', alias: 'p', default: 3000 },
|
||||||
rootFilePath: { type: 'string', alias: 'f', default: './' },
|
rootFilePath: { type: 'string', alias: 'f', default: './' },
|
||||||
sparqlEndpoint: { type: 'string', alias: 's' },
|
sparqlEndpoint: { type: 'string', alias: 's' },
|
||||||
@ -113,8 +112,6 @@ export class CliRunner {
|
|||||||
'urn:solid-server:default:variable:rootFilePath':
|
'urn:solid-server:default:variable:rootFilePath':
|
||||||
this.resolveFilePath(params.rootFilePath),
|
this.resolveFilePath(params.rootFilePath),
|
||||||
'urn:solid-server:default:variable:sparqlEndpoint': params.sparqlEndpoint,
|
'urn:solid-server:default:variable:sparqlEndpoint': params.sparqlEndpoint,
|
||||||
'urn:solid-server:default:variable:podTemplateFolder':
|
|
||||||
this.resolveFilePath(params.podTemplateFolder, 'templates/pod'),
|
|
||||||
'urn:solid-server:default:variable:podConfigJson':
|
'urn:solid-server:default:variable:podConfigJson':
|
||||||
this.resolveFilePath(params.podConfigJson),
|
this.resolveFilePath(params.podConfigJson),
|
||||||
};
|
};
|
||||||
|
@ -8,7 +8,7 @@ import type {
|
|||||||
FileIdentifierMapperFactory,
|
FileIdentifierMapperFactory,
|
||||||
ResourceLink,
|
ResourceLink,
|
||||||
} from '../../storage/mapping/FileIdentifierMapper';
|
} from '../../storage/mapping/FileIdentifierMapper';
|
||||||
import { joinFilePath, isContainerIdentifier } from '../../util/PathUtil';
|
import { joinFilePath, isContainerIdentifier, resolveAssetPath } from '../../util/PathUtil';
|
||||||
import type { Resource, ResourcesGenerator } from './ResourcesGenerator';
|
import type { Resource, ResourcesGenerator } from './ResourcesGenerator';
|
||||||
import type { TemplateEngine } from './TemplateEngine';
|
import type { TemplateEngine } from './TemplateEngine';
|
||||||
import Dict = NodeJS.Dict;
|
import Dict = NodeJS.Dict;
|
||||||
@ -18,6 +18,9 @@ import Dict = NodeJS.Dict;
|
|||||||
* The template folder structure will be kept.
|
* The template folder structure will be kept.
|
||||||
* Folders will be interpreted as containers and files as documents.
|
* Folders will be interpreted as containers and files as documents.
|
||||||
* A FileIdentifierMapper will be used to generate identifiers that correspond to the relative structure.
|
* A FileIdentifierMapper will be used to generate identifiers that correspond to the relative structure.
|
||||||
|
*
|
||||||
|
* A relative `templateFolder` is resolved relative to cwd,
|
||||||
|
* unless it's preceded by $PACKAGE_ROOT/, e.g. $PACKAGE_ROOT/foo/bar.
|
||||||
*/
|
*/
|
||||||
export class TemplatedResourcesGenerator implements ResourcesGenerator {
|
export class TemplatedResourcesGenerator implements ResourcesGenerator {
|
||||||
private readonly templateFolder: string;
|
private readonly templateFolder: string;
|
||||||
@ -33,7 +36,7 @@ export class TemplatedResourcesGenerator implements ResourcesGenerator {
|
|||||||
* @param engine - Template engine for generating the resources.
|
* @param engine - Template engine for generating the resources.
|
||||||
*/
|
*/
|
||||||
public constructor(templateFolder: string, factory: FileIdentifierMapperFactory, engine: TemplateEngine) {
|
public constructor(templateFolder: string, factory: FileIdentifierMapperFactory, engine: TemplateEngine) {
|
||||||
this.templateFolder = templateFolder;
|
this.templateFolder = resolveAssetPath(templateFolder);
|
||||||
this.factory = factory;
|
this.factory = factory;
|
||||||
this.engine = engine;
|
this.engine = engine;
|
||||||
}
|
}
|
||||||
|
@ -34,12 +34,11 @@ describe.each(configs)('A dynamic pod server with template config %s', (template
|
|||||||
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
||||||
'urn:solid-server:default:variable:port': port,
|
'urn:solid-server:default:variable:port': port,
|
||||||
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': joinFilePath(__dirname, '../assets/templates'),
|
|
||||||
'urn:solid-server:default:variable:podConfigJson': podConfigJson,
|
'urn:solid-server:default:variable:podConfigJson': podConfigJson,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Need to make sure the temp folder exists so the podConfigJson can be written to it
|
// Need to make sure the temp folder exists so the podConfigJson can be written to it
|
||||||
mkdirSync(rootFilePath);
|
mkdirSync(rootFilePath, { recursive: true });
|
||||||
|
|
||||||
// Create and initialize the HTTP handler and related components
|
// Create and initialize the HTTP handler and related components
|
||||||
const instances = await instantiateFromConfig(
|
const instances = await instantiateFromConfig(
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import type { Server } from 'http';
|
import type { Server } from 'http';
|
||||||
import fetch from 'cross-fetch';
|
import fetch from 'cross-fetch';
|
||||||
import type { HttpServerFactory } from '../../src/server/HttpServerFactory';
|
import type { HttpServerFactory } from '../../src/server/HttpServerFactory';
|
||||||
import { joinFilePath } from '../../src/util/PathUtil';
|
|
||||||
import { readableToString } from '../../src/util/StreamUtil';
|
import { readableToString } from '../../src/util/StreamUtil';
|
||||||
import { instantiateFromConfig } from './Config';
|
import { instantiateFromConfig } from './Config';
|
||||||
|
|
||||||
@ -17,7 +16,6 @@ describe('A server with a pod handler', (): void => {
|
|||||||
'urn:solid-server:default:ServerFactory', 'server-without-auth.json', {
|
'urn:solid-server:default:ServerFactory', 'server-without-auth.json', {
|
||||||
'urn:solid-server:default:variable:port': port,
|
'urn:solid-server:default:variable:port': port,
|
||||||
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': joinFilePath(__dirname, '../assets/templates'),
|
|
||||||
},
|
},
|
||||||
) as HttpServerFactory;
|
) as HttpServerFactory;
|
||||||
server = factory.startServer(port);
|
server = factory.startServer(port);
|
||||||
|
@ -2,7 +2,6 @@ import type { Server } from 'http';
|
|||||||
import fetch from 'cross-fetch';
|
import fetch from 'cross-fetch';
|
||||||
import type { Initializer } from '../../src/init/Initializer';
|
import type { Initializer } from '../../src/init/Initializer';
|
||||||
import type { HttpServerFactory } from '../../src/server/HttpServerFactory';
|
import type { HttpServerFactory } from '../../src/server/HttpServerFactory';
|
||||||
import { joinFilePath } from '../../src/util/PathUtil';
|
|
||||||
import { instantiateFromConfig } from './Config';
|
import { instantiateFromConfig } from './Config';
|
||||||
|
|
||||||
const port = 6004;
|
const port = 6004;
|
||||||
@ -19,7 +18,6 @@ describe('A Solid server', (): void => {
|
|||||||
'urn:solid-server:test:Instances', 'server-memory.json', {
|
'urn:solid-server:test:Instances', 'server-memory.json', {
|
||||||
'urn:solid-server:default:variable:port': port,
|
'urn:solid-server:default:variable:port': port,
|
||||||
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': joinFilePath(__dirname, '../assets/templates'),
|
|
||||||
},
|
},
|
||||||
) as Record<string, any>;
|
) as Record<string, any>;
|
||||||
({ factory, initializer } = instances);
|
({ factory, initializer } = instances);
|
||||||
|
@ -3,7 +3,6 @@ import fetch from 'cross-fetch';
|
|||||||
import type { Initializer } from '../../src/init/Initializer';
|
import type { Initializer } from '../../src/init/Initializer';
|
||||||
import type { HttpServerFactory } from '../../src/server/HttpServerFactory';
|
import type { HttpServerFactory } from '../../src/server/HttpServerFactory';
|
||||||
import type { ResourceStore } from '../../src/storage/ResourceStore';
|
import type { ResourceStore } from '../../src/storage/ResourceStore';
|
||||||
import { joinFilePath } from '../../src/util/PathUtil';
|
|
||||||
import { getTestFolder, instantiateFromConfig, removeFolder } from './Config';
|
import { getTestFolder, instantiateFromConfig, removeFolder } from './Config';
|
||||||
|
|
||||||
const port = 6005;
|
const port = 6005;
|
||||||
@ -35,7 +34,6 @@ describe.each(stores)('A subdomain server with %s', (name, { storeUrn, teardown
|
|||||||
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
'urn:solid-server:default:variable:baseUrl': baseUrl,
|
||||||
'urn:solid-server:default:variable:port': port,
|
'urn:solid-server:default:variable:port': port,
|
||||||
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': joinFilePath(__dirname, '../assets/templates'),
|
|
||||||
};
|
};
|
||||||
const internalStore = await instantiateFromConfig(
|
const internalStore = await instantiateFromConfig(
|
||||||
storeUrn,
|
storeUrn,
|
||||||
|
@ -16,7 +16,6 @@ describe('A server with the Solid WebSockets API behind a proxy', (): void => {
|
|||||||
'urn:solid-server:default:ServerFactory', 'server-without-auth.json', {
|
'urn:solid-server:default:ServerFactory', 'server-without-auth.json', {
|
||||||
'urn:solid-server:default:variable:port': port,
|
'urn:solid-server:default:variable:port': port,
|
||||||
'urn:solid-server:default:variable:baseUrl': 'https://example.pod/',
|
'urn:solid-server:default:variable:baseUrl': 'https://example.pod/',
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': 'templates/pod',
|
|
||||||
},
|
},
|
||||||
) as HttpServerFactory;
|
) as HttpServerFactory;
|
||||||
server = factory.startServer(port);
|
server = factory.startServer(port);
|
||||||
|
@ -76,6 +76,10 @@
|
|||||||
"BaseUrlRouterRule:_baseStore": {
|
"BaseUrlRouterRule:_baseStore": {
|
||||||
"@id": "urn:solid-server:default:MemoryResourceStore"
|
"@id": "urn:solid-server:default:MemoryResourceStore"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@id": "urn:solid-server:default:ResourcesGenerator",
|
||||||
|
"TemplatedResourcesGenerator:_templateFolder": "$PACKAGE_ROOT/test/assets/templates"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,10 @@
|
|||||||
"@id": "urn:solid-server:default:variable:store"
|
"@id": "urn:solid-server:default:variable:store"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"@id": "urn:solid-server:default:ResourcesGenerator",
|
||||||
|
"TemplatedResourcesGenerator:_templateFolder": "$PACKAGE_ROOT/test/assets/templates"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"@id": "urn:solid-server:default:variable:store",
|
"@id": "urn:solid-server:default:variable:store",
|
||||||
"@type": "Variable"
|
"@type": "Variable"
|
||||||
|
@ -48,6 +48,10 @@
|
|||||||
"PassthroughStore:_source": {
|
"PassthroughStore:_source": {
|
||||||
"@id": "urn:solid-server:default:MemoryResourceStore"
|
"@id": "urn:solid-server:default:MemoryResourceStore"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@id": "urn:solid-server:default:ResourcesGenerator",
|
||||||
|
"TemplatedResourcesGenerator:_templateFolder": "$PACKAGE_ROOT/test/assets/templates"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,6 @@ describe('CliRunner', (): void => {
|
|||||||
'urn:solid-server:default:variable:rootFilePath': '/var/cwd/',
|
'urn:solid-server:default:variable:rootFilePath': '/var/cwd/',
|
||||||
'urn:solid-server:default:variable:sparqlEndpoint': undefined,
|
'urn:solid-server:default:variable:sparqlEndpoint': undefined,
|
||||||
'urn:solid-server:default:variable:loggingLevel': 'info',
|
'urn:solid-server:default:variable:loggingLevel': 'info',
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': joinFilePath(__dirname, '../../../templates/pod'),
|
|
||||||
'urn:solid-server:default:variable:podConfigJson': '/var/cwd/pod-config.json',
|
'urn:solid-server:default:variable:podConfigJson': '/var/cwd/pod-config.json',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -80,7 +79,6 @@ describe('CliRunner', (): void => {
|
|||||||
'-m', 'module/path',
|
'-m', 'module/path',
|
||||||
'-p', '4000',
|
'-p', '4000',
|
||||||
'-s', 'http://localhost:5000/sparql',
|
'-s', 'http://localhost:5000/sparql',
|
||||||
'-t', 'templates',
|
|
||||||
'--podConfigJson', '/different-path.json',
|
'--podConfigJson', '/different-path.json',
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
@ -104,7 +102,6 @@ describe('CliRunner', (): void => {
|
|||||||
variables: {
|
variables: {
|
||||||
'urn:solid-server:default:variable:baseUrl': 'http://pod.example/',
|
'urn:solid-server:default:variable:baseUrl': 'http://pod.example/',
|
||||||
'urn:solid-server:default:variable:loggingLevel': 'debug',
|
'urn:solid-server:default:variable:loggingLevel': 'debug',
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': '/var/cwd/templates',
|
|
||||||
'urn:solid-server:default:variable:port': 4000,
|
'urn:solid-server:default:variable:port': 4000,
|
||||||
'urn:solid-server:default:variable:rootFilePath': '/root',
|
'urn:solid-server:default:variable:rootFilePath': '/root',
|
||||||
'urn:solid-server:default:variable:sparqlEndpoint': 'http://localhost:5000/sparql',
|
'urn:solid-server:default:variable:sparqlEndpoint': 'http://localhost:5000/sparql',
|
||||||
@ -122,7 +119,6 @@ describe('CliRunner', (): void => {
|
|||||||
'--config', 'myconfig.json',
|
'--config', 'myconfig.json',
|
||||||
'--loggingLevel', 'debug',
|
'--loggingLevel', 'debug',
|
||||||
'--mainModulePath', 'module/path',
|
'--mainModulePath', 'module/path',
|
||||||
'--podTemplateFolder', 'templates',
|
|
||||||
'--port', '4000',
|
'--port', '4000',
|
||||||
'--rootFilePath', 'root',
|
'--rootFilePath', 'root',
|
||||||
'--sparqlEndpoint', 'http://localhost:5000/sparql',
|
'--sparqlEndpoint', 'http://localhost:5000/sparql',
|
||||||
@ -149,7 +145,6 @@ describe('CliRunner', (): void => {
|
|||||||
variables: {
|
variables: {
|
||||||
'urn:solid-server:default:variable:baseUrl': 'http://pod.example/',
|
'urn:solid-server:default:variable:baseUrl': 'http://pod.example/',
|
||||||
'urn:solid-server:default:variable:loggingLevel': 'debug',
|
'urn:solid-server:default:variable:loggingLevel': 'debug',
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': '/var/cwd/templates',
|
|
||||||
'urn:solid-server:default:variable:port': 4000,
|
'urn:solid-server:default:variable:port': 4000,
|
||||||
'urn:solid-server:default:variable:rootFilePath': '/var/cwd/root',
|
'urn:solid-server:default:variable:rootFilePath': '/var/cwd/root',
|
||||||
'urn:solid-server:default:variable:sparqlEndpoint': 'http://localhost:5000/sparql',
|
'urn:solid-server:default:variable:sparqlEndpoint': 'http://localhost:5000/sparql',
|
||||||
@ -170,7 +165,6 @@ describe('CliRunner', (): void => {
|
|||||||
'-m', 'module/path',
|
'-m', 'module/path',
|
||||||
'-p', '4000',
|
'-p', '4000',
|
||||||
'-s', 'http://localhost:5000/sparql',
|
'-s', 'http://localhost:5000/sparql',
|
||||||
'-t', 'templates',
|
|
||||||
'--podConfigJson', '/different-path.json',
|
'--podConfigJson', '/different-path.json',
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -195,7 +189,6 @@ describe('CliRunner', (): void => {
|
|||||||
variables: {
|
variables: {
|
||||||
'urn:solid-server:default:variable:baseUrl': 'http://pod.example/',
|
'urn:solid-server:default:variable:baseUrl': 'http://pod.example/',
|
||||||
'urn:solid-server:default:variable:loggingLevel': 'debug',
|
'urn:solid-server:default:variable:loggingLevel': 'debug',
|
||||||
'urn:solid-server:default:variable:podTemplateFolder': '/var/cwd/templates',
|
|
||||||
'urn:solid-server:default:variable:port': 4000,
|
'urn:solid-server:default:variable:port': 4000,
|
||||||
'urn:solid-server:default:variable:rootFilePath': '/root',
|
'urn:solid-server:default:variable:rootFilePath': '/root',
|
||||||
'urn:solid-server:default:variable:sparqlEndpoint': 'http://localhost:5000/sparql',
|
'urn:solid-server:default:variable:sparqlEndpoint': 'http://localhost:5000/sparql',
|
||||||
|
@ -38,7 +38,7 @@ async function genToArray<T>(iterable: AsyncIterable<T>): Promise<T[]> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
describe('A TemplatedResourcesGenerator', (): void => {
|
describe('A TemplatedResourcesGenerator', (): void => {
|
||||||
const rootFilePath = 'templates/pod';
|
const rootFilePath = '/templates/pod';
|
||||||
// Using handlebars engine since it's smaller than any possible dummy
|
// Using handlebars engine since it's smaller than any possible dummy
|
||||||
const generator = new TemplatedResourcesGenerator(rootFilePath, new DummyFactory(), new HandlebarsTemplateEngine());
|
const generator = new TemplatedResourcesGenerator(rootFilePath, new DummyFactory(), new HandlebarsTemplateEngine());
|
||||||
let cache: { data: any };
|
let cache: { data: any };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user