| 1 | import * as buildTools from "turbo-gulp";
|
|---|
| 2 | import { LibTarget, registerLibTasks } from "turbo-gulp/targets/lib";
|
|---|
| 3 | import { MochaTarget, registerMochaTasks } from "turbo-gulp/targets/mocha";
|
|---|
| 4 |
|
|---|
| 5 | import gulp from "gulp";
|
|---|
| 6 | import minimist from "minimist";
|
|---|
| 7 |
|
|---|
| 8 | interface Options {
|
|---|
| 9 | devDist?: string;
|
|---|
| 10 | }
|
|---|
| 11 |
|
|---|
| 12 | const options: Options & minimist.ParsedArgs = minimist(process.argv.slice(2), {
|
|---|
| 13 | string: ["devDist"],
|
|---|
| 14 | default: {devDist: undefined},
|
|---|
| 15 | alias: {devDist: "dev-dist"},
|
|---|
| 16 | });
|
|---|
| 17 |
|
|---|
| 18 | const project: buildTools.Project = {
|
|---|
| 19 | root: __dirname,
|
|---|
| 20 | packageJson: "package.json",
|
|---|
| 21 | buildDir: "build",
|
|---|
| 22 | distDir: "dist",
|
|---|
| 23 | srcDir: "src",
|
|---|
| 24 | typescript: {}
|
|---|
| 25 | };
|
|---|
| 26 |
|
|---|
| 27 | const lib: LibTarget = {
|
|---|
| 28 | project,
|
|---|
| 29 | name: "lib",
|
|---|
| 30 | srcDir: "src/lib",
|
|---|
| 31 | scripts: ["**/*.ts"],
|
|---|
| 32 | mainModule: "index",
|
|---|
| 33 | dist: {
|
|---|
| 34 | packageJsonMap: (old: buildTools.PackageJson): buildTools.PackageJson => {
|
|---|
| 35 | const version: string = options.devDist !== undefined ? `${old.version}-build.${options.devDist}` : old.version;
|
|---|
| 36 | return <any> {...old, version, scripts: undefined, private: false};
|
|---|
| 37 | },
|
|---|
| 38 | npmPublish: {
|
|---|
| 39 | tag: options.devDist !== undefined ? "next" : "latest",
|
|---|
| 40 | },
|
|---|
| 41 | },
|
|---|
| 42 | tscOptions: {
|
|---|
| 43 | declaration: true,
|
|---|
| 44 | skipLibCheck: true,
|
|---|
| 45 | },
|
|---|
| 46 | typedoc: {
|
|---|
| 47 | dir: "typedoc",
|
|---|
| 48 | name: "Helpers for V8 coverage files",
|
|---|
| 49 | deploy: {
|
|---|
| 50 | repository: "git@github.com:demurgos/v8-coverage.git",
|
|---|
| 51 | branch: "gh-pages",
|
|---|
| 52 | },
|
|---|
| 53 | },
|
|---|
| 54 | copy: [
|
|---|
| 55 | {
|
|---|
| 56 | files: ["**/*.json"],
|
|---|
| 57 | },
|
|---|
| 58 | ],
|
|---|
| 59 | clean: {
|
|---|
| 60 | dirs: ["build/lib", "dist/lib"],
|
|---|
| 61 | },
|
|---|
| 62 | };
|
|---|
| 63 |
|
|---|
| 64 | const test: MochaTarget = {
|
|---|
| 65 | project,
|
|---|
| 66 | name: "test",
|
|---|
| 67 | srcDir: "src",
|
|---|
| 68 | scripts: ["test/**/*.ts", "lib/**/*.ts", "e2e/*/*.ts"],
|
|---|
| 69 | customTypingsDir: "src/custom-typings",
|
|---|
| 70 | tscOptions: {
|
|---|
| 71 | allowSyntheticDefaultImports: true,
|
|---|
| 72 | esModuleInterop: true,
|
|---|
| 73 | skipLibCheck: true,
|
|---|
| 74 | },
|
|---|
| 75 | // generateTestMain: true,
|
|---|
| 76 | copy: [
|
|---|
| 77 | {
|
|---|
| 78 | src: "e2e",
|
|---|
| 79 | // <project-name>/(project|test-resources)/<any>
|
|---|
| 80 | files: ["*/project/**/*", "*/test-resources/**/*"],
|
|---|
| 81 | dest: "e2e",
|
|---|
| 82 | },
|
|---|
| 83 | ],
|
|---|
| 84 | clean: {
|
|---|
| 85 | dirs: ["build/test"],
|
|---|
| 86 | },
|
|---|
| 87 | };
|
|---|
| 88 |
|
|---|
| 89 | const libTasks: any = registerLibTasks(gulp, lib);
|
|---|
| 90 | registerMochaTasks(gulp, test);
|
|---|
| 91 | buildTools.projectTasks.registerAll(gulp, project);
|
|---|
| 92 |
|
|---|
| 93 | gulp.task("all:tsconfig.json", gulp.parallel("lib:tsconfig.json", "test:tsconfig.json"));
|
|---|
| 94 | gulp.task("dist", libTasks.dist);
|
|---|
| 95 | gulp.task("default", libTasks.dist);
|
|---|