Skip to content

Commit 14b0769

Browse files
Merge branch 'BrunnerLivio-build/gulpfile-to-ts'
2 parents 50083ce + 9832216 commit 14b0769

16 files changed

Lines changed: 282 additions & 16025 deletions

File tree

gulpfile.js

Lines changed: 11 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -1,167 +1,16 @@
1-
const fs = require('fs');
2-
const path = require('path');
3-
const gulp = require('gulp');
4-
const ts = require('gulp-typescript');
5-
const sourcemaps = require('gulp-sourcemaps');
6-
const clean = require('gulp-clean');
7-
const deleteEmpty = require('delete-empty');
8-
const childProcess = require('child_process');
9-
const log = require('fancy-log');
10-
const clc = require('cli-color');
11-
const promiseSeries = require('promise.series');
12-
13-
const { promisify } = require('util');
14-
15-
const exec = promisify(childProcess.exec);
16-
17-
const SAMPLE = path.join(__dirname, 'sample');
1+
'use strict';
2+
/**
3+
* Load the TypeScript compiler, then load the TypeScript gulpfile which simply loads all
4+
* the tasks. The tasks are really inside tools/gulp/tasks.
5+
*/
186

19-
const packages = {
20-
common: ts.createProject('packages/common/tsconfig.json'),
21-
core: ts.createProject('packages/core/tsconfig.json'),
22-
microservices: ts.createProject('packages/microservices/tsconfig.json'),
23-
websockets: ts.createProject('packages/websockets/tsconfig.json'),
24-
testing: ts.createProject('packages/testing/tsconfig.json'),
25-
'platform-express': ts.createProject(
26-
'packages/platform-express/tsconfig.json',
27-
),
28-
'platform-fastify': ts.createProject(
29-
'packages/platform-fastify/tsconfig.json',
30-
),
31-
'platform-socket.io': ts.createProject(
32-
'packages/platform-socket.io/tsconfig.json',
33-
),
34-
'platform-ws': ts.createProject('packages/platform-ws/tsconfig.json'),
35-
};
36-
const modules = Object.keys(packages);
37-
const source = 'packages';
38-
const distId = process.argv.indexOf('--dist');
39-
const dist = distId < 0 ? source : process.argv[distId + 1];
40-
41-
gulp.task('default', function() {
42-
modules.forEach(module => {
43-
gulp.watch(
44-
[`${source}/${module}/**/*.ts`, `${source}/${module}/*.ts`],
45-
[module],
46-
);
47-
});
48-
});
49-
50-
gulp.task('copy-misc', function() {
51-
return gulp
52-
.src(['Readme.md', 'LICENSE', '.npmignore'])
53-
.pipe(gulp.dest(`${source}/common`))
54-
.pipe(gulp.dest(`${source}/core`))
55-
.pipe(gulp.dest(`${source}/microservices`))
56-
.pipe(gulp.dest(`${source}/websockets`))
57-
.pipe(gulp.dest(`${source}/testing`))
58-
.pipe(gulp.dest(`${source}/platform-fastify`))
59-
.pipe(gulp.dest(`${source}/platform-express`))
60-
.pipe(gulp.dest(`${source}/platform-ws`))
61-
.pipe(gulp.dest(`${source}/platform-socket.io`));
62-
});
63-
64-
gulp.task('clean:output', function() {
65-
return gulp
66-
.src(
67-
[`${source}/**/*.js`, `${source}/**/*.d.ts`, `${source}/**/*.js.map`],
68-
{
69-
read: false,
70-
},
71-
)
72-
.pipe(clean());
73-
});
74-
75-
gulp.task('clean:dirs', function(done) {
76-
deleteEmpty.sync(`${source}/`);
77-
done();
78-
});
79-
80-
gulp.task('clean:bundle', gulp.series('clean:output', 'clean:dirs'));
81-
82-
modules.forEach(module => {
83-
gulp.task(module, () => {
84-
return packages[module]
85-
.src()
86-
.pipe(packages[module]())
87-
.pipe(gulp.dest(`${dist}/${module}`));
88-
});
89-
});
90-
91-
modules.forEach(module => {
92-
gulp.task(module + ':dev', () => {
93-
return packages[module]
94-
.src()
95-
.pipe(sourcemaps.init())
96-
.pipe(packages[module]())
97-
.pipe(
98-
sourcemaps.mapSources(sourcePath => './' + sourcePath.split('/').pop()),
99-
)
100-
.pipe(sourcemaps.write('.'))
101-
.pipe(gulp.dest(`${dist}/${module}`));
102-
});
103-
});
104-
105-
gulp.task('common:dev', gulp.series(modules.map(module => module + ':dev')));
106-
gulp.task('build', gulp.series(modules));
107-
gulp.task('build:dev', gulp.series('common:dev'));
108-
109-
function getFolders(dir) {
110-
return fs.readdirSync(dir).filter(function(file) {
111-
return fs.statSync(path.join(dir, file)).isDirectory();
112-
});
113-
}
114-
115-
const getDirs = base => getFolders(base).map(path => `${base}/${path}`);
116-
117-
gulp.task('install:samples', async () => {
118-
const directories = getDirs(SAMPLE);
119-
120-
const promises = directories.map(async dir => {
121-
const dirName = dir.replace(__dirname, '');
122-
log.info(`Installing dependencies of ${clc.magenta(dirName)}`);
123-
try {
124-
await exec(`npm install --no-shrinkwrap --prefix ${dir}`);
125-
log.info(`Finished installing ${clc.magenta(dirName)}`);
126-
} catch (err) {
127-
log.error(`Failed installing dependencies of ${dirName}`);
128-
throw err;
129-
}
130-
});
131-
132-
return await promiseSeries(promises);
133-
});
134-
135-
gulp.task('build:samples', async () => {
136-
const directories = getDirs(SAMPLE);
7+
const path = require('path');
1378

138-
const promises = directories.map(async dir => {
139-
const dirName = dir.replace(__dirname, '');
140-
log.info(`Building ${clc.magenta(dirName)}`);
141-
try {
142-
await exec(`npm run build --prefix ${dir}`);
143-
log.info(`Finished building ${clc.magenta(dirName)}`);
144-
} catch (err) {
145-
log.error(`Failed building ${clc.magenta(dirName)}:`);
146-
if (err.stdout) {
147-
log.error(err.stdout);
148-
}
149-
throw err;
150-
}
151-
});
9+
const projectDir = __dirname;
10+
const tsconfigPath = path.join(projectDir, 'tools/gulp/tsconfig.json');
15211

153-
return await promiseSeries(promises);
12+
require('ts-node').register({
13+
project: tsconfigPath
15414
});
15515

156-
gulp.task('move', function() {
157-
const examplesDirs = getDirs('sample');
158-
const integrationDirs = getDirs('integration');
159-
const directories = examplesDirs.concat(integrationDirs);
160-
161-
let stream = gulp.src(['node_modules/@nestjs/**/*']);
162-
163-
directories.forEach(dir => {
164-
stream = stream.pipe(gulp.dest(dir + '/node_modules/@nestjs'));
165-
});
166-
return stream;
167-
});
16+
require('./tools/gulp/gulpfile');

0 commit comments

Comments
 (0)