scripts/generate-lib-files.js
function generatePublicApiTs() {
  const configFile = path.resolve(__dirname, '../src/ng5-slider/lib/public_api.json');
  const tsFile = path.resolve(__dirname, '../src/ng5-slider/lib/public_api.ts');

  const config = JSON.parse(fs.readFileSync(configFile, { encoding: 'utf8' }));

  let tsFileContent = '';

  for (let exportDef of config.exports) {
    if (exportDef.what instanceof Array) {
      const whats = exportDef.what.join(', ');
      tsFileContent += `export { ${whats} } from '${exportDef.file}';\n`;
    } else {
      tsFileContent += `export ${exportDef.what} from '${exportDef.file}';\n`;
    }
  }

  fs.writeFileSync(tsFile, tsFileContent, {encoding: 'utf8'});
}
function generatePublicApiTs() {
  const configFile = path.resolve(__dirname, '../src/ng5-slider/lib/public_api.json');
  const tsFile = path.resolve(__dirname, '../src/ng5-slider/lib/public_api.ts');

  const config = JSON.parse(fs.readFileSync(configFile, { encoding: 'utf8' }));

  let tsFileContent = '';

  for (let exportDef of config.exports) {
    if (exportDef.what instanceof Array) {
      const whats = exportDef.what.join(', ');
      tsFileContent += `export { ${whats} } from '${exportDef.file}';\n`;
    } else {
      tsFileContent += `export ${exportDef.what} from '${exportDef.file}';\n`;
    }
  }

  fs.writeFileSync(tsFile, tsFileContent, {encoding: 'utf8'});
}
Convert public_api.json to public_api.ts