UNPKG

imagemagick-async

Version:
472 lines (420 loc) 9.35 kB
let Path = require('path'); let PathParts = __dirname.split(Path.sep); let index = PathParts.indexOf('imagemagick-async'); let RootDir_ = PathParts.slice(0, index + 1).join(Path.sep); //-------------------------------- class Filepath { constructor(builder) { this.infos = builder.infos; } /** * @returns {string} Returns the full path. */ String() { let str = this.infos.map(x => x.name).join(Path.sep); return str; } static get Builder() { class Builder { constructor() { this.infos = []; } /** * @param {string} name */ dir(name) { this.infos.push({ name: name, type: 'dir' }); return this; } /** * @param {string} name */ file(name) { this.infos.push({ name: name, type: 'file' }); return this; } /** * @param {string} path */ partialPath(path) { let parts = path.split(Path.sep); parts.forEach(x => { this.infos.push({ name: x, type: 'dir' }); }); return this; } build() { return new Filepath(this); } } return new Builder(); } /** * @returns {string} Returns the path to the project directory. */ static RootDir() { return RootDir_; } /** * @returns {string} Returns a path to this directory. */ static PrivateDir() { return Filepath.Builder .partialPath(Filepath.RootDir()) .dir('private') .build() .String(); } /** * @returns {string} Returns the path to the im_modules folder. */ static ImModulesDir() { return Filepath.Builder .partialPath(Filepath.RootDir()) .dir('im_modules') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static AnimationDir() { return Filepath.Builder .partialPath(Filepath.ImModulesDir()) .dir('Animation') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ConstantsDir() { return Filepath.Builder .partialPath(Filepath.ImModulesDir()) .dir('Constants') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static DrawablesDir() { return Filepath.Builder .partialPath(Filepath.ImModulesDir()) .dir('Drawables') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static CanvasDir() { return Filepath.Builder .partialPath(Filepath.DrawablesDir()) .dir('Canvas') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static PrimitivesDir() { return Filepath.Builder .partialPath(Filepath.DrawablesDir()) .dir('Primitives') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ShapesDir() { return Filepath.Builder .partialPath(Filepath.DrawablesDir()) .dir('Shapes') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static SpecialDir() { return Filepath.Builder .partialPath(Filepath.DrawablesDir()) .dir('Special') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static SpecialChainDir() { return Filepath.Builder .partialPath(Filepath.SpecialDir()) .dir('Chain') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static SpecialCommandDir() { return Filepath.Builder .partialPath(Filepath.SpecialDir()) .dir('Command') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static SpecialSequenceDir() { return Filepath.Builder .partialPath(Filepath.SpecialDir()) .dir('Sequence') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static SpecialProcedureDir() { return Filepath.Builder .partialPath(Filepath.SpecialDir()) .dir('Procedure') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static SpecialImageStackDir() { return Filepath.Builder .partialPath(Filepath.SpecialDir()) .dir('ImageStack') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static EffectsDir() { return Filepath.Builder .partialPath(Filepath.DrawablesDir()) .dir('Effects') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static FxDir() { return Filepath.Builder .partialPath(Filepath.EffectsDir()) .dir('Fx') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ModDir() { return Filepath.Builder .partialPath(Filepath.EffectsDir()) .dir('Mod') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ModColorDir() { return Filepath.Builder .partialPath(Filepath.ModDir()) .dir('Color') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ModCompareDir() { return Filepath.Builder .partialPath(Filepath.ModDir()) .dir('Compare') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ModComposeDir() { return Filepath.Builder .partialPath(Filepath.ModDir()) .dir('Compose') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ModCutDir() { return Filepath.Builder .partialPath(Filepath.ModDir()) .dir('Cut') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static ModMasksDir() { return Filepath.Builder .partialPath(Filepath.ModDir()) .dir('Masks') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static TransformDir() { return Filepath.Builder .partialPath(Filepath.EffectsDir()) .dir('Transform') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static TransformDisplaceDir() { return Filepath.Builder .partialPath(Filepath.TransformDir()) .dir('Displace') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static TransformDistortDir() { return Filepath.Builder .partialPath(Filepath.TransformDir()) .dir('Distort') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static TransformReflectDir() { return Filepath.Builder .partialPath(Filepath.TransformDir()) .dir('Reflect') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static TransformResizeDir() { return Filepath.Builder .partialPath(Filepath.TransformDir()) .dir('Resize') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static InputsDir() { return Filepath.Builder .partialPath(Filepath.ImModulesDir()) .dir('Inputs') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static GradientDir() { return Filepath.Builder .partialPath(Filepath.InputsDir()) .dir('Gradient') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static LineSegmentsDir() { return Filepath.Builder .partialPath(Filepath.InputsDir()) .dir('LineSegments') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static LayerDir() { return Filepath.Builder .partialPath(Filepath.ImModulesDir()) .dir('Layer') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static QueryDir() { return Filepath.Builder .partialPath(Filepath.ImModulesDir()) .dir('Query') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static QueryListDir() { return Filepath.Builder .partialPath(Filepath.QueryDir()) .dir('List') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static QueryInfoDir() { return Filepath.Builder .partialPath(Filepath.QueryDir()) .dir('Info') .build() .String(); } /** * @returns {string} Returns a path to this directory. */ static RenderDir() { return Filepath.Builder .partialPath(Filepath.RootDir()) .dir('Render') .build() .String(); } } //------------------------------- // EXPORTS exports.Filepath = Filepath;