123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import * as fs from "fs";
- import { watch, dest, src, series } from "gulp";
- import * as nodemon from "gulp-nodemon";
- import * as ts from "gulp-typescript";
- import * as rename from "gulp-rename";
- const jest = require("gulp-jest").default;
- const tsProject = ts.createProject("tsconfig.json");
- export function test() {
- // Unlike the jest CLI tool, gulp-jest does not automatically set process.env.NODE_ENV to be test
- process.env.NODE_ENV = "test";
- if (!fs.existsSync("src/test/conf.test.env")) {
- src("conf.env.example")
- .pipe(rename("conf.test.env"))
- .pipe(dest("src/test"));
- }
- return src("src/test").pipe(
- jest({
- detectOpenHandles: true,
- coverage: true
- })
- );
- }
- function createConf(cb: any) {
- if (!fs.existsSync("dist/conf.env")) {
- return src("conf.env.example")
- .pipe(rename("conf.env"))
- .pipe(dest("dist"));
- }
- cb();
- }
- function copyDocs() {
- return src("src/docs/**/*.yml").pipe(dest("dist/docs"));
- }
- function transpile() {
- process.env.NODE_ENV = "dev";
- return src(["src/**/*.ts", "!src/**/*.test.ts"])
- .pipe(tsProject())
- .pipe(dest("dist"));
- }
- function livereload(cb: any) {
- process.env.NODE_ENV = "dev";
- nodemon({ script: "dist/index.js", ext: "js, yml", delay: 1000, done: cb });
- watch(["src/**/*.ts", "!**/*.test.ts"], transpile);
- watch("src/**/*.test.ts", test);
- watch("src/docs/**/*.yml", copyDocs);
- }
- export default series(createConf, transpile, copyDocs, livereload);
- export const dev = series(createConf, transpile, copyDocs, livereload);
- export const build = series(test, transpile, createConf, copyDocs);
|