diff --git a/gulpfile.ts b/gulpfile.ts index ed01e94..b7ce20c 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -1,3 +1,4 @@ +import { Server, Socket } from "net"; import browserSync = require("browser-sync"); import browserify = require("browserify"); import log = require("fancy-log"); @@ -10,7 +11,6 @@ import sass = require("gulp-sass"); import terser = require("gulp-terser"); import merge = require("merge-stream"); import minimist = require("minimist"); -import { Server, Socket } from "net"; import PromiseQueue = require("promise-queue"); import { parseArgsStringToArgv } from "string-argv"; import Path = require("upath"); @@ -45,8 +45,11 @@ const incrementalMessage = "File change detected. Starting incremental compilati * * @param errorCount * The number of errors which occurred. + * + * @returns + * The formatted message. */ -const watchFinishMessage = (errorCount: number) => +const watchFinishMessage = (errorCount: number): string => { return `Found ${errorCount} errors. Watching for file changes.`; }; @@ -61,8 +64,11 @@ let options = ParseArgs(process.argv.slice(2)); * * @param args * The arguments to parse. + * + * @returns + * The parsed arguments. */ -function ParseArgs(args: string[]) +function ParseArgs(args: string[]): minimist.ParsedArgs { return minimist( args, @@ -87,7 +93,7 @@ let settings = new Settings(options["target"]); /** * Cleans the project. */ -export async function Clean() +export async function Clean(): Promise { let directories = [ "javascript", @@ -108,6 +114,7 @@ export async function Clean() await FileSystem.mkdirp(settings.TestThemePath()); await FileSystem.remove(settings.TestThemePath()); + // eslint-disable-next-line @typescript-eslint/no-var-requires await require("create-symlink")(settings.RootPath(), settings.TestThemePath(), { type: "junction" }); } @@ -115,6 +122,9 @@ Clean.description = "Cleans the project."; /** * Builds the project in watched mode. + * + * @param done + * A callback which is executed once the task has finished. */ export let Watch: TaskFunction = (done) => { @@ -153,6 +163,12 @@ Watch.description = "Builds the project in watched mode."; /** * Reloads all browsers using `browser-sync`. + * + * @param filePath + * A glob-path which points to the files which must be reloaded. + * + * @returns + * The actual task. */ function BrowserSync(filePath?: string): TaskFunction { @@ -176,7 +192,7 @@ function BrowserSync(filePath?: string): TaskFunction /** * Builds the project. */ -export async function Build() +export async function Build(): Promise { if (settings.Watch) { @@ -204,12 +220,16 @@ export async function Build() /** * Builds the TypeScript- and JavaScript-library. + * + * @returns + * The pipeline to execute. */ -export async function Library() +export async function Library(): Promise { let streams: Array> = []; let queue = new PromiseQueue(); let tsConfigFile = settings.TypeScriptProjectRoot("tsconfig.json"); + // eslint-disable-next-line @typescript-eslint/no-var-requires let tsConfig = require(tsConfigFile); let optionBase: browserify.Options = { @@ -242,12 +262,13 @@ export async function Library() } bundler.plugin( + // eslint-disable-next-line @typescript-eslint/no-var-requires require("tsify"), { project: tsConfigFile }); - let bundle = async () => + let bundle = async (): Promise => { return new Promise( (resolve) => @@ -317,7 +338,7 @@ export async function Library() }); } - let build = () => queue.add(bundle); + let build = (): Promise => queue.add(bundle); build.displayName = Build.displayName; build.description = Build.description; streams.push(build()); @@ -331,8 +352,11 @@ Library.description = "Builds the TypeScript- and JavaScript-library."; /** * Builds the theme. + * + * @returns + * The pipeline to execute. */ -export async function Theme() +export async function Theme(): Promise { if (settings.Watch) { @@ -378,8 +402,7 @@ export async function Theme() settings.Debug ? { sourcemaps: true - } - : + } : undefined) ).on( "end", @@ -387,7 +410,7 @@ export async function Theme() { if (settings.Watch) { - console.log("Rebuilding scss-code finished.") + console.log("Rebuilding scss-code finished."); } }); } @@ -396,8 +419,11 @@ Theme.description = "Builds the theme."; /** * Builds the templates. + * + * @returns + * The pipeline to execute. */ -export function Templates() +export function Templates(): NodeJS.ReadWriteStream { return gulp.src( settings.TemplateSource("**")).pipe( @@ -409,7 +435,7 @@ Templates.description = "Builds the templates."; /** * Stops a watch-task. */ -export async function Stop() +export async function Stop(): Promise { try { @@ -436,4 +462,4 @@ export async function Stop() } } -Stop.description = "Stops a watch-task"; \ No newline at end of file +Stop.description = "Stops a watch-task"; diff --git a/src/App/src/main.ts b/src/App/src/main.ts index 7280a9f..f966dff 100644 --- a/src/App/src/main.ts +++ b/src/App/src/main.ts @@ -1,3 +1,3 @@ import "bootstrap"; import "jquery"; -import "popper.js"; \ No newline at end of file +import "popper.js";