UNPKG

@seasketch/geoprocessing

Version:

Geoprocessing and reporting framework for SeaSketch 2.0

63 lines 2.25 kB
import slugify from "../../src/util/slugify.js"; /** * Compiles project assets into a single Manifest */ export function generateManifest(config, projectPkg, preprocessingBundles, geoprocessingBundles, version) { const manifest = { title: slugify(projectPkg.name.replaceAll("@", "").replace("gp-", "").replace("/", "-")), author: slugify(config.author.replace(/<.*>/, "")), region: config.region, apiVersion: version, version: projectPkg.version, relatedUri: projectPkg.homepage, sourceUri: projectPkg.repository ? projectPkg.repository.url : undefined, published: new Date().toISOString(), clients: config.clients.map((c) => ({ title: c.name, uri: `https://test.com/${c.name}`, bundleSize: 0, apiVersion: "", tabs: [], })), feedbackClients: [], preprocessingFunctions: [], geoprocessingFunctions: [], preprocessingServices: [], geoprocessingServices: [], uri: "", }; if (preprocessingBundles) { manifest.preprocessingFunctions = preprocessingBundles.map((bundle) => ({ purpose: "preprocessing", ...bundle.options, handlerFilename: bundle.handlerFilename, vectorDataSources: bundle.sources, rateLimited: false, rateLimit: 0, rateLimitPeriod: "daily", rateLimitConsumed: 0, medianDuration: 0, medianCost: 0, type: "javascript", issAllowList: ["*"], })); } if (manifest.geoprocessingFunctions) { manifest.geoprocessingFunctions = geoprocessingBundles.map((bundle) => ({ purpose: "geoprocessing", ...bundle.options, handlerFilename: bundle.handlerFilename, vectorDataSources: bundle.sources, rateLimited: false, rateLimit: 0, rateLimitPeriod: "daily", rateLimitConsumed: 0, medianDuration: 0, medianCost: 0, type: "javascript", issAllowList: ["*"], })); } return manifest; } //# sourceMappingURL=generateManifest.js.map