/* * local.gulpfile.ts */ import * as gulp from 'gulp' import * as inject from 'gulp-inject' import * as replace from 'gulp-replace' const buildReadMe = () => { // It's not necessary to read the files (will speed up things), we're only after their paths: const timplaConfigInterface = gulp.src('gulpfile.ts/lib/timplaInterfaces.ts') const timplaConfig = gulp.src('.timplaconfig.js').pipe(replace('./lib/public', 'timpla')) const babelConfig = gulp.src('babel.config.js') const transformJSCodeBlock = (filePath: string, file: any) => { const utText = file.contents.toString('utf8') const extractMatches = utText.match(/\/\/(.?)@extract([\s\S]*?)@endextract/gi) const contents = !!extractMatches ? extractMatches.join('').replace(/\/\/.?@(end)?extract/g, '') : utText const extensionMatchers: any = { js: 'javascript', md: 'markdown', sh: 'shell', ts: 'typescript', } const ext = filePath.split('.').pop()! const extToUse = extensionMatchers[ext] || ext // return file contents as string return ['```' + extToUse, contents, '```'].join('\n') } return gulp .src('local.gulpfile.ts/README.md') .pipe( inject(timplaConfigInterface, { starttag: '', transform: transformJSCodeBlock, }) ) .pipe( inject(timplaConfig, { starttag: '', transform: transformJSCodeBlock, }) ) .pipe( inject(babelConfig, { starttag: '', transform: transformJSCodeBlock, }) ) .pipe(gulp.dest('./')) } export default buildReadMe