• PRODUCT

    PRODUCT

  • PRICING
    PRICING

  • HELP
    HELP

  • BLOG
    BLOG

  • APPSTORE
    APPSTORE

  • COMPANY
    COMPANY

  • LEGAL
    LEGAL

  • LOGIN
    LOGIN

  • Workflow Automation

    Workflow Automation

  • AI Assisted Content Management System
    AI Assisted Content Management System

  • Analytics & Lead Generation
    Analytics & Lead Generation

  • Automation Projects
    Automation Projects

  • Browser Extension Apps
    Browser Extension Apps

  • Dashboard Theme Analysis: LN1
    Dashboard Theme Analysis: LN1

  • Data Exchange Automation Tools
    Data Exchange Automation Tools

  • Getting Started With Building Hybrid Apps
    Getting Started With Building Hybrid Apps

  • Izyware Hybrid UX Design Guidelines
    Izyware Hybrid UX Design Guidelines

  • Onboarding New Organizations Using Izyware
    Onboarding New Organizations Using Izyware

  • Quick Visualization and Monitoring
    Quick Visualization and Monitoring

  • Unified Metrics Stream Pipeline
    Unified Metrics Stream Pipeline

  • Legacy Features and Backward Compatibility
    Legacy Features and Backward Compatibility

  • How does the legacy frame architecture work
    How does the legacy frame architecture work

  • Izyware Legacy UI Circus Engine
    Izyware Legacy UI Circus Engine

  • Case Studies and Knowledge Center
    Case Studies and Knowledge Center

  • Angular and React Embedding Guide
    Angular and React Embedding Guide

  • Build and deploy a content distribution app in less than five minutes: Part II
    Build and deploy a content distribution app in less than five minutes: Part II

  • Comparison of CSS Preprocessors SASS vs LESS vs STYLUS
    Comparison of CSS Preprocessors SASS vs LESS vs STYLUS

  • Comparison of node.js test frameworks and utilities: lab, chai, sinon
    Comparison of node.js test frameworks and utilities: lab, chai, sinon

  • Manage and automate your day to day business tools using IzyCloud Tasks: Part I
    Manage and automate your day to day business tools using IzyCloud Tasks: Part I

  • MySql Performance Optimization
    MySql Performance Optimization

  • Onboarding Tutorial: Creating & publishing an app
    Onboarding Tutorial: Creating & publishing an app

  • Rebranding and Customizing Websites
    Rebranding and Customizing Websites

  • Using IzyCloud on Android: IzyCloud Query App
    Using IzyCloud on Android: IzyCloud Query App

  • Technical Resources
    Technical Resources

  • .NET SDKCore IzyWare
    .NET SDKCore IzyWare

  • av-stream README
    av-stream README

  • ElasticSearch IzyWare Data Console Feature
    ElasticSearch IzyWare Data Console Feature

  • End To End Testing
    End To End Testing

  • End To End Testing, Part II
    End To End Testing, Part II

  • frames and nav (ui/w/shell/navmulti) README
    frames and nav (ui/w/shell/navmulti) README

  • izy-circus README
    izy-circus README

  • izy-idman-tools README
    izy-idman-tools README

  • izy-pop3 README
    izy-pop3 README

  • izy-proxy README
    izy-proxy README

  • izy-sync README
    izy-sync README

  • IzyIDE README
    IzyIDE README

  • izymodtask readme
    izymodtask readme

  • IzyShell readme
    IzyShell readme

  • ReKey Feature Package README for IzyWare SQL Console
    ReKey Feature Package README for IzyWare SQL Console

  • Single Sign-On (SSO) README
    Single Sign-On (SSO) README

  • Tasks Migration : V5 guidelines
    Tasks Migration : V5 guidelines

  • Users & Groups README
    Users & Groups README

  • V5 Migration : apps/pulse guidelines README
    V5 Migration : apps/pulse guidelines README

  • Container Orchestration
    Container Orchestration

  • Izy Kubernetes Internal Networking Troubleshooting
    Izy Kubernetes Internal Networking Troubleshooting

  • Application Hosting
    Application Hosting

  • Content Publisher
    Content Publisher

  • Domain Registration
    Domain Registration

  • Email Hosting
    Email Hosting

  • Izyware Browser Extension
    Izyware Browser Extension

  • Izyware Deployment Engine
    Izyware Deployment Engine

  • Izyware Session Management
    Izyware Session Management

  • Messaging System APIs and functionality
    Messaging System APIs and functionality

  • Single SignOn
    Single SignOn

  • Integration APIs
    Integration APIs

  • iOS SDK
    iOS SDK

  • Azure and .NET
    Azure and .NET

  • izy-devops
    izy-devops

  • << IzyIDE README
    << IzyIDE README

  • IzyShell readme >>
    IzyShell readme >>

  • izymodtask readme

  • see markdown

  • izymodtask

    Node.js modtask component for Izyware.

    INSTALLATION

    If you are using npm (the Node.js package manager) always ensure that your npm is up-to-date by running:

    npm update -g npm

    Then use:

    npm install izymodtask

    USING THE TOOL

    This tool provides libraries for traditional modtask izyware apps. You may use the libraries by referencing the node_modules folder.

    When integrating izyware modtask style components to native node runtime apps and you need to ldmod on a module, you can:

    `

    var mod = require('izymodtask').getRootModule(dir, moduleSearchPaths).ldmod('pathtomodule');

    `

    The paramater are optional and are used for the following purpose:

    • dir: is used to construct the contextualName for the rootmodule. If not specified, it will be set to the dirname for the current izymodtask installation (not the caller).
    • moduleSearchPaths: module resolution paths to try when loadObject is called.

    To see what the module resolution paths are for the context that you are using the code above, you can always use:

    `

    require('izymodtask').getRootModule().ldmod('s_root').cmdlineverbs.sysview();

    `

    If you need to launch cmdline based verbs from the node app, use the following syntax:

    `

    require('izymodtask').runCmd('sysview -- or your verb --')

    `

    When the verb is called inside the g_handler module, you can extract the command line config by:

    `

    modtask.cmdlineverbs.method = function() {

    var config = modtask.ldmod('izymodtask/index').extractConfigFromCmdLine('method');

    ...

    `

    You can customize the izyware modtask search path by creating the following:

    `

    modtask/config/kernel/extstores/file.js

    `

    in the root of your node app.

    Path Resolution Use Cases for kernel/extstores/file

    Note: Current Directory = CD, IzyModtask Directory = ID, Thirdparty Components Directory = TD

    Consider the following setup

    CD = /tmp/curdir

    ID = /plat/p/izymodtask

    TD = /tmp/izymodtaskapp

    node TD/test.js

    rm -rf /tmp/izymodtaskpathtest;

    mkdir -p /tmp/izymodtaskpathtest/curdir;

    mkdir -p /tmp/izymodtaskpathtest/app;

    mkdir -p /tmp/izymodtaskpathtest/thirdpartylib;

    clear; cp -r /plat/p/izymodtask/izymodtaskpathtest/* /tmp/izymodtaskpathtest;cd /tmp/izymodtaskpathtest/curdir;node ../app/main.js

    This is very a typical use case where a thirdparty app that uses izymodtask, is launched from a random location in the system. We will analyze the following scenarios:

    1: getRootModule().ldmod('rel:appdep')
    In this case, rel:... is relative to the rootModule which can vary depending on the platform (i.e. circus front-end will be bootstrap/version/., nodejs modtask will be izymodtask/.).

    That is the reason why contextualName was introduced in the later version to be able to 'position' the rootModule.

    2: getRootModule().ldmod('./appdep')
    should be the same as rel:appdep
    3: getRootModule().ldmod('/appdep')
    This will first use the absolute path to locate and load the module. If not found, then it will remove the begining slash and treat it as number 4 below. The fall back is crucial when reference packageless modules from chains, i.e.

    ['chain.importProcessor', ':test/assert/chain'],

    4: getRootModule().ldmod('appdep')
    will search using the iteratePathsToSearch and external resolver rules

    NOTE

    for more details, visit https://izyware.com

    Change Log

    V5.5

    • 55000006: add chain support to encodedecode/cryptojs
    • 55000005: prioritize usermodule.getModuleSearchPaths over default Kernel search paths
    * customers had reporting module path resolution conflict for rel:build with internal build components.
    • 55000001: support inlining of NodeJS modules
    * swaps module.exports with izyModuleExportsInline and uses Minicore.postProcessNodeJSModule

    V5.4

    • 54000022: implement forceRequireOnLoadFromFile
    • 54000017: add net/mime/validate?validateEmailAddress service
    • 54000016: add autoauth for pkgs with clocksync1 prefix
    • 54000007: add forcemodulereload feature
    • 54000005: add reference to Kernel and module store per module
    • 54000001: implement strict mode

    V5.3

    • 53000478: izy-prozy/izymodtask regression: replace encodedecode/uri uri
    • 5300041: add codegen/jsclosure and make it default
    * will help with memory issues

    * will help debugging and investigating modtask related issues.

    • 5300040: move bootstrap into izy-proxy

    ./ldo.sh mship izy-proxy/izymodtask/build;cp ../build/payloads/build/izymodtask/entrypoint/ljs.js ../izy-proxy/izymodtask/bootstrap.js

    V5

    • implement support for code based module search path definition

    * Kernel.rootModule.usermodule.getModuleSearchPaths was added

    * rootModule can now take an array

    * this will make the modtask/... kernel/extstores/file optional and allow more flexibility in reusing existing modules in different contexts

    • implement _modToPkgMap for kernel/path.toInvokeString
    • implement expandStringEncodedConfigValues to allow passing complex JSON objects at commandline
    • add stacktrace to module load errors
    • added module loader customization feature
    * prior to this 'require' relative paths were broken and all requires would have to have used absolute paths.

    * add this to your module:

    / izy-loadobject nodejs-require /

    ...

    module.exports = modtask;

    • add a simple file look up for modnames that with '/' first before falling back to iteratePathsToSearch.
    • add the contextualName feature modules to allow customization of rel:.. path resolution
    * otherwise ldmod('rel:modname') or ldmod('./modname') would not work
    • improve verbosity control
    • fixed izymodtask so that it does not eval ljs in index.js.
    • full payload customization and manual build for customized solutions.

    ./ldo.sh mship izymodtask/build;cp ../build/payloads/build/izymodtask/entrypoint/ljs.js ../izymodtask/ljs.js;

    cp modtask/kernel/mod.js ../izymodtask/kernel;cp modtask/kernel/path.js ../izymodtask/kernel;

    < V5

    • relrequire is now available

    * it will allow doing node style require using relative paths to the current izy module.

    * this will alleviate the paths and search problems that customers have reported in the past