Utility TypeScript @ 2.0.0-beta
    Preparing search index...

    Utility TypeScript Changelog

    All notable changes to this project will be documented in this file after/on each release.

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning, i.e.:

    Given a version number [MAJOR].[MINOR].[PATCH], increment the:

    • [MAJOR] version when you make incompatible changes
    • [MINOR] version when you add backwards-compatible functionality
    • [PATCH] version when you make backwards-compatible bug fixes

    External testing complete, upgrading to beta.

    • Added NodeFiles.exists() checks to NodeFiles.copyFile(), NodeFiles.mkdir(), NodeFiles.readDir(), NodeFiles.readFile()
    • Fixed NodeFiles.mkdir() to be recursive by default
    • AbstractBuildStage.runStage() changed name to runSubStage()
    • Meta type namespace was changed to Debug
    • NodeFiles methods:
      • deleteFiles() → delete()
      • writeFiles() → write()
    • NodeFiles types:
      • NodeFiles.Args.copyFileArgs → NodeFiles.Args.copyFile
      • NodeFiles.Args.readDirArgs → NodeFiles.Args.readDir
      • NodeFiles.Args.readFileArgs → NodeFiles.Args.readFile
      • NodeFiles.Args.writeFileArgs → NodeFiles.Args.writeFile
    • The following type namespaces’ contents are now global:
      • Arrays, Functions, Node, StringLiterals
    • Removed distinguishArrays option from typeOf() and removed typeOf args completely (now empty)
    • compileTypescript() method from AbstractStage (in build scripts)
    • abstractArgs() static method from AbstractConfigurableClass
    • abstractArgs() static method from AbstractBuildStage
    • NodeFunctions class removed
    • Functions class removed
    • Types:
      • mergeArgs namespace
      • MergeObjects
      • Node namespace (now had no contents)
      • NodeConsole.CmdErrorHandler
    • NodeConsole.prompt is now an instance of NodeConsole_Prompt and not a method
    • AbstractConfigurableClass method - valueOf()
    • NodeFiles methods (untested):
      • basename()
      • copyFile()
      • dirname()
      • exists()
      • getStats()
      • isDirectory()
      • isFile()
      • isSymLink()
      • mkdir()
      • readDir()
    • Additional NodeConsole_Prompt and NodeConsole_Error classes
    • Basic testing for NodeConsole.prompt (including types)
    • Added cmd method to AbstractStage (in build scripts) - better error handling
    • Types:
      • Json namespace with common schemas - TsConfig, PackageJson
      • Classify (with tests)
      • RecursiveRequired (with tests)
      • KeysOptional & KeysRequired (with tests)
      • PartialExcept & RecursivePartialExcept (with tests)
      • RequiredPartially & RecursiveRequiredPartially (with tests)
    • NodeConsole - Better errors and error handling (incluing prompt timeouts and cntl + C)
    • Added constructor params optional param to AnyClass type
    • Improved documentation
    • Improved Classify type
    • Corrected vulnerable outdated inherited dependencies — cross-spawn, lodash, minimatch
    • MessageMaker - default node painter now checks for the existance of process.stdout.getColorDepth function
    • Added tests Test types namespace

    First full release!

    • Changed ts output directory from dist/js to dist
    • Some exports for subpaths were missing the js/ subfolder in dist/
    • Release script was replacing the placeholders in the replacement script
    • Minor build script improvements
    • Fixed @inquirer/prompts dependency (was erroneously in devDependencies)
    • Snapshot stage's files weren't limited to files only, which slowed it significantly
    • AbstractBuildStage new method - isSubStageIncluded()
    • Added AbstractBuildStage - and updated build scripts accordingly
    • Added object type - MergeObjects - allows prettier types for merged objects (e.g., in mergeArgs())
    • Moved AbstractStage (build script) properties to AbstractBuildStage - fns, stages
    • Moved AbstractStage (build script) methods to AbstractBuildStage - buildArgs(), msgArgs(), progressLog(), run(), runStage(), startEndNotice(), verboseLog()
    • Slight improvements to mergeArgs() typing
    • Removed replace-in-files-cli dependency and updated AbstractStage with custom implementation
    • Removed start npm scripts
    • Removed browser-sync dev dependency
    • Removed BuildFunctions
    • Moved BuildFunctions.releasePath and BuildFunctions.pkgVersion to AbstractStage
    • Moved BuildFunctions methods to AbstractStage - copyFiles(), datestamp(), datetimestamp(), glob(), timestamp()
    • Moved BuildFunctions.implodeWithIndent() to MessageMaker
    • Moved BuildFunctions.cmd() to NodeConsole
    • NodeFiles methods - deleteFiles(), readFile(), writeFile()
    • NodeConsole (beta) method - cmdArgs()
    • NodeFiles.uniquePath() - slight performance improvements
    • Minor build script improvements
    • Removed minify, prettify, catchErrCLI methods from AbstractStage (build scripts) - was unused
    • Removed hangingIndent methods from BuildFunctions (build scripts) - was protected
    • NodeFiles class for paths & files within node
    • NodeFiles methods - changeBaseName(), pathRelative(), pathResolve(), uniquePath()
    • Removed minimize in Build script — seemed to be causing occasaional issues

    Final quick fix and test to package publishing.

    Trying to fix npm publish workflow.

    Initial release; everything is new!

    • Set up the template from template-npm-library
    • Complete build scripts and system, including stages: Compile, Build, Test, Document, Snapshot, Package, Release
      • Publishes package to NPM (via GitHub workflow), updates GitHub repo meta, and creates a GitHub release
    • Automated documentation via TypeDoc
    • Testing with Jest and custom utility types
    • ./abstract - AbstractConfigurableClass
    • Some untested beta classes:
      • Functions, MessageMaker, VariableInspector
      • ./node - NodeConsole, NodeFunctions
    • ./arrays - arrayUnique()
    • ./objects - mergeArgs()
    • ./regex - escRegExp(), escRegExpReplace()
    • ./strings - slugify(), softWrapText(), timestamp(), toTitleCase()
    • typeOf()
    • Type submodules: Arrays, Functions, Meta, Node, Objects, StringLiterals, Test
    • Some simple utility types