nv-facutil-class

nv-facutil-class ================

Usage no npm install needed!

<script type="module">
  import nvFacutilClass from 'https://cdn.skypack.dev/nv-facutil-class';
</script>

README

nv-facutil-class

install

  • npm install nv-facutil-class

usage

var cfg = {
  "name": "nv-facutil-class",
  "version": "1.0.2",
  "lockfileVersion": 2,
  "requires": true,
  Package: {
    "version": "4.3.0",
    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
    Dependency: {
      "color-convert": "^2.0.1"
    },
    Engine: {
      "node": ">=8"
    },
    Funding: {
      "url": "https://github.com/chalk/ansi-styles?sponsor=1"
    }
  }
}


var clses = json_to_clses(cfg,"Main")

> clses
[
  [class Dependency],
  [class Engine],
  [class Funding],
  [class Package],
  [class Main]
]



var dependency = new clses[0]()
var engine = new clses[1]()
var funding = new clses[2]()
var package = new clses[3]()
var main = new clses[4]()


> main
Main {
  name: 'nv-facutil-class',
  version: '1.0.2',
  lockfileVersion: 2,
  requires: true,
  Package: Package {
    version: '4.3.0',
    resolved: 'https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz',
    integrity: 'sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==',
    Dependency: Dependency { 'color-convert': '^2.0.1' },
    Engine: Engine { node: '>=8' },
    Funding: Funding { url: 'https://github.com/chalk/ansi-styles?sponsor=1' }
  }
}

> dependency
Dependency { 'color-convert': '^2.0.1' }

simple_dyn_priv

     //simple_dyn_priv(P,M)
     // P : {[k]:Pdesc}
     // Pdesc:  {private:Boolean; priv_read_only:Boolean,public:Boolean }
     // M : {[k]:method}
     // method: Function 

    var cls = simple_dyn_priv(
          {
              a:{private:true,priv_read_only:true},
              b:{public:true}
          },
          {
              plus:function(){return(this.a+this.b)}
          }
    )
    > cls
    [Function: cls] {
      P: { a: { private: true, priv_read_only: true }, b: { public: true } },
      M: { plus: [Function: plus] }
    }
    > var c = new cls(111,22)
    undefined
    > c
    cls {}
    > c.a
    111
    > c.b
    22
    > c.plus()
    133
    > c.b =200
    200
    > c.b
    200
    > c.plus()
    311
    > c.a = 777
    777
    > c.a
    111
    >
    */

APIS

  • fac_cls.SYM_CONSTRUCT
  • fac_cls.creat_with_mixins(name,BaseCls,...mixins)
  • fac_cls.json_to_clses(json,name='Main')
  • fac_cls.simple_dyn_priv(prop_desc={},method_dict={})

LICENSE

  • ISC