UNPKG

@ui5/builder

Version:
40 lines (37 loc) 1.87 kB
const resourceFactory = require("@ui5/fs").resourceFactory; const transformer = require("./lib/transform-apijson-for-sdk"); /** * Transform api.json as created by [jsdocGenerator]{@link module:@ui5/builder.processors.jsdocGenerator} * for usage in a UI5 SDK * * @public * @alias module:@ui5/builder.processors.sdkTransformer * @param {Object} parameters Parameters * @param {string} parameters.apiJsonPath Path to the projects api.json file as created by * [jsdocGenerator]{@link module:@ui5/builder.processors.jsdoc.jsdocGenerator} * @param {string} parameters.dotLibraryPath Path to the projects .library file * @param {string[]} parameters.dependencyApiJsonPaths List of paths to the api.json files of all dependencies of * the project as created by [jsdocGenerator]{@link module:@ui5/builder.processors.jsdoc.jsdocGenerator} * @param {string} parameters.targetApiJsonPath Path to create the new, transformed api.json resource for * @param {fs|module:@ui5/fs.fsInterface} parameters.fs Node fs or * custom [fs interface]{@link module:resources/module:@ui5/fs.fsInterface} to use * * @returns {Promise<module:@ui5/fs.Resource[]>} Promise resolving with created resources */ const sdkTransformer = async function({ apiJsonPath, dotLibraryPath, dependencyApiJsonPaths, targetApiJsonPath, fs} = {} ) { if (!apiJsonPath || !dotLibraryPath || !targetApiJsonPath || !dependencyApiJsonPaths || !fs) { throw new Error("[sdkTransformer]: One or more mandatory parameters not provided"); } const fakeTargetPath = "/ignore/this/path/resource/will/be/returned"; const apiJsonContent = await transformer(apiJsonPath, fakeTargetPath, dotLibraryPath, dependencyApiJsonPaths, { fs, returnOutputFiles: true }); return [resourceFactory.createResource({ path: targetApiJsonPath, string: apiJsonContent })]; }; module.exports = sdkTransformer;