UNPKG

@ui5/builder

Version:
59 lines (52 loc) 2.16 kB
import versionInfoGenerator from "../processors/versionInfoGenerator.js"; const MANIFEST_JSON = "manifest.json"; /** * @public * @module @ui5/builder/tasks/generateVersionInfo */ /** * Task to create sap-ui-version.json * * @public * @function default * @static * * @param {object} parameters Parameters * @param {@ui5/fs/DuplexCollection} parameters.workspace DuplexCollection to read and write files * @param {@ui5/fs/AbstractReader} parameters.dependencies Reader or Collection to read dependency files * @param {object} parameters.options Options * @param {string} parameters.options.pattern Glob pattern for .library resources * @param {object} parameters.options.rootProject DuplexCollection to read and write files * @returns {Promise<undefined>} Promise resolving with <code>undefined</code> once data has been written */ export default async ({workspace, dependencies, options: {rootProject, pattern}}) => { let resources = await dependencies.byGlob(pattern); resources = resources.filter((res) => res.getProject()?.getType() === "library"); const libraryInfosPromises = resources.map((dotLibResource) => { const namespace = dotLibResource.getProject().getNamespace(); // pass all required resources to the processor // the processor will then filter return dependencies.byGlob(`/resources/${namespace}/**/${MANIFEST_JSON}`).then((manifestResources) => { const libraryManifest = manifestResources.find((manifestResource) => { return manifestResource.getPath() === `/resources/${namespace}/${MANIFEST_JSON}`; }); const embeddedManifests = manifestResources.filter((manifestResource) => manifestResource !== libraryManifest); return { libraryManifest, embeddedManifests, name: dotLibResource.getProject().getName(), version: dotLibResource.getProject().getVersion() }; }); }); const libraryInfos = await Promise.all(libraryInfosPromises); const [versionInfoResource] = await versionInfoGenerator({ options: { rootProjectName: rootProject.getName(), rootProjectVersion: rootProject.getVersion(), libraryInfos } }); return workspace.write(versionInfoResource); };