| | import * as buildTools from "turbo-gulp"; |
| | import { LibTarget, registerLibTasks } from "turbo-gulp/targets/lib"; |
| | import { MochaTarget, registerMochaTasks } from "turbo-gulp/targets/mocha"; |
| |
|
| | import gulp from "gulp"; |
| | import minimist from "minimist"; |
| |
|
| | interface Options { |
| | devDist?: string; |
| | } |
| |
|
| | const options: Options & minimist.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", |
| | typescript: {} |
| | }; |
| |
|
| | const lib: 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", |
| | }, |
| | }, |
| | tscOptions: { |
| | declaration: true, |
| | skipLibCheck: true, |
| | }, |
| | typedoc: { |
| | dir: "typedoc", |
| | name: "Helpers for V8 coverage files", |
| | deploy: { |
| | repository: "git@github.com:demurgos/v8-coverage.git", |
| | branch: "gh-pages", |
| | }, |
| | }, |
| | copy: [ |
| | { |
| | files: ["**/*.json"], |
| | }, |
| | ], |
| | clean: { |
| | dirs: ["build/lib", "dist/lib"], |
| | }, |
| | }; |
| |
|
| | const test: MochaTarget = { |
| | project, |
| | name: "test", |
| | srcDir: "src", |
| | scripts: ["test/**/*.ts", "lib/**/*.ts", "e2e/*/*.ts"], |
| | customTypingsDir: "src/custom-typings", |
| | tscOptions: { |
| | allowSyntheticDefaultImports: true, |
| | esModuleInterop: true, |
| | skipLibCheck: true, |
| | }, |
| | |
| | copy: [ |
| | { |
| | src: "e2e", |
| | |
| | files: ["*/project/**/*", "*/test-resources/**/*"], |
| | dest: "e2e", |
| | }, |
| | ], |
| | clean: { |
| | dirs: ["build/test"], |
| | }, |
| | }; |
| |
|
| | const libTasks: any = registerLibTasks(gulp, lib); |
| | registerMochaTasks(gulp, test); |
| | buildTools.projectTasks.registerAll(gulp, project); |
| |
|
| | gulp.task("all:tsconfig.json", gulp.parallel("lib:tsconfig.json", "test:tsconfig.json")); |
| | gulp.task("dist", libTasks.dist); |
| | gulp.task("default", libTasks.dist); |
| |
|