1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { Logger } from './logger.js';
- import { toChunks } from './utils/array.js';
- import { ConfigParser } from './parsers/config-parser.js';
- import { ManifestParser } from './parsers/manifest-parser.js';
- import { UrlSetBuilder } from './builders/url-set-builder.js';
- import { ExportableBuilder } from './builders/exportable-builder.js';
- export class CLI {
-
- async main() {
-
- const { config, runtimePaths } = await new ConfigParser().loadConfig();
-
- const manifest = await new ManifestParser().loadManifest(runtimePaths);
-
- const urlSet = await new UrlSetBuilder(config, manifest).createUrlSet();
-
- const chunks = toChunks(urlSet, config.sitemapSize);
-
- const expoBuilder = new ExportableBuilder(config, runtimePaths);
-
- await expoBuilder.registerSitemaps(chunks);
-
- if (config.generateIndexSitemap) {
- await expoBuilder.registerIndexSitemap();
- }
-
- if (config?.generateRobotsTxt) {
- await expoBuilder.registerRobotsTxt();
- }
-
- return expoBuilder.exportAll();
- }
-
- async execute() {
- return this.main().then(Logger.generationCompleted);
- }
- }
|