-
Notifications
You must be signed in to change notification settings - Fork 24
/
gulpfile.ts
103 lines (94 loc) · 2.49 KB
/
gulpfile.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import * as buildTools from "turbo-gulp";
import gulp from "gulp";
import minimist, { ParsedArgs } from "minimist";
interface Options {
devDist?: string;
}
const options: Options & ParsedArgs = minimist(process.argv.slice(2), {
string: ["devDist"],
default: {devDist: undefined},
alias: {devDist: "dev-dist"},
});
const project: buildTools.Project = {
root: __dirname,
packageJson: "package.json",
buildDir: "build",
distDir: "dist",
srcDir: "src",
tslint: {
configuration: {
rules: {
"number-literal-format": false,
},
},
},
};
const lib: buildTools.LibTarget = {
project,
name: "lib",
srcDir: "src/lib",
scripts: ["**/*.ts"],
mainModule: "index",
dist: {
packageJsonMap: (old: buildTools.PackageJson): buildTools.PackageJson => {
const version: string = options.devDist !== undefined ? `${old.version}-build.${options.devDist}` : old.version;
return <any> {...old, version, scripts: undefined, private: false};
},
npmPublish: {
tag: options.devDist !== undefined ? "next" : "latest",
},
},
customTypingsDir: "src/custom-typings",
tscOptions: {
skipLibCheck: true,
},
typedoc: {
dir: "typedoc",
name: "Skype Http",
deploy: {
repository: "[email protected]:ocilo/skype-http.git",
branch: "gh-pages",
},
},
clean: {
dirs: ["build/lib", "dist/lib"],
},
};
const example: buildTools.NodeTarget = {
project,
name: "example",
srcDir: "src",
scripts: ["example/**/*.ts", "lib/**/*.ts"],
tsconfigJson: "src/example/tsconfig.json",
mainModule: "example/main",
customTypingsDir: "src/custom-typings",
outModules: buildTools.OutModules.Both,
tscOptions: {
skipLibCheck: true,
},
clean: {
dirs: ["build/example", "dist/example"],
},
};
const test: buildTools.MochaTarget = {
project,
name: "test",
srcDir: "src",
scripts: ["test/**/*.ts", "lib/**/*.ts"],
customTypingsDir: "src/custom-typings",
tsconfigJson: "src/test/tsconfig.json",
outModules: buildTools.OutModules.Both,
tscOptions: {
skipLibCheck: true,
},
copy: [{files: ["test/test-resources/**/*"]}],
clean: {
dirs: ["build/test"],
},
};
const libTasks: any = buildTools.registerLibTasks(gulp, lib);
buildTools.registerMochaTasks(gulp, test);
buildTools.registerNodeTasks(gulp, example);
buildTools.projectTasks.registerAll(gulp, project);
gulp.task("all:tsconfig.json", gulp.parallel("lib:tsconfig.json", "test:tsconfig.json", "example:tsconfig.json"));
gulp.task("dist", libTasks.dist);