contensis-delivery-api
Version:
Client for retrieving content using the read-only Contensis Delivery API
44 lines (34 loc) • 1.6 kB
JavaScript
var path = require('path');
var fs = require('fs');
var processInterfaceDtsDirFn = (interfaceDtsDir, interfaceDtsFile) => {
if (interfaceDtsFile.toLowerCase() === 'index.d.ts' || !interfaceDtsFile.includes('.')) {
return '';
}
var dtsFileContent = fs.readFileSync(path.join(interfaceDtsDir, interfaceDtsFile), 'utf8');
var lines = dtsFileContent
.split('\n')
.filter(line => !line.startsWith('import'))
.map(line => line.startsWith('export ') ? line.substr(7) : line);
var processedDtsFileContent = lines.join('\n') + '\n';
return processedDtsFileContent;
};
var interfaceDtsCoreDirs = [
path.join(__dirname, '../', 'node_modules/contensis-core-api/bundle-es5/models/search'),
path.join(__dirname, '../', 'node_modules/contensis-core-api/bundle-es5/models')];
var interfaceDtsDeliveryDir = path.join(__dirname, '../', 'bundle/es5/models');
var generatedDtsFile = path.join(__dirname, '../', 'bundle/zengenti.contensis-client.d.ts');
var generatedDtsContent = '';
interfaceDtsCoreDirs.forEach(interfaceDtsCoreDir => {
fs
.readdirSync(interfaceDtsCoreDir)
.forEach(interfaceDtsFile => {
generatedDtsContent += processInterfaceDtsDirFn(interfaceDtsCoreDir, interfaceDtsFile, generatedDtsContent)
});
});
fs
.readdirSync(interfaceDtsDeliveryDir)
.forEach(interfaceDtsFile => {
generatedDtsContent += processInterfaceDtsDirFn(interfaceDtsDeliveryDir, interfaceDtsFile, generatedDtsContent)
});
generatedDtsContent += '\ndeclare var Zengenti: ZengentiStatic;';
fs.writeFileSync(generatedDtsFile, generatedDtsContent, 'utf8');