npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

class-wrapper

v2.2.1

Published

Set of wrappers to define a class like in C++ and few utility functions

Downloads

200

Readme

{class}

The main goal of this library is to automate some construction routines, that a developer is usually writing by himself, and to provide more flexibility to create new classes. This library supplies:

  • ClassBuilder - is the main wrapper that realizes the inheritance, data encapsulation, stores the default values and in result it returns a class. This builder is useful to define custom pre-construction routines by setting the class constructor template.
  • Class - is a ClassBuilder with already predefined construction routines. The resulting behavior of how the objects are constructing is similar to the behaviour in C++ - all parent constructors are executing first, starting from the root parent constructor, without any possibility to alternate the input arguments, only then the constructor function provided for the class will be executed. With this there is no need to always explicitly call the parent constructor in each constructor function and pass there all the arguments. The constructor function can contain only the effective code that is needed for a new class.
  • Interface - is a simple builder of interfaces, that will be passed into Class under property Implements. It allows to extend some parent interface.

Defined class properties are treated as default values for a new instance and they are isolated between instances. For example, if some class has a simple object in properties (Object or Array), then each instance will have its own copy of that object. But this works good only for standard built-in objects, for other objects, created by more complex classes, it will try to copy the whole structure into the object. For such cases it is recommended to set the default value to null and create the needed instance in the constructor function.

Requirements

If this library is planned to be used on some environments which are not passing the requirements, then please use v1.x (even transpilers will not help).

Installation

$ npm install class-wrapper --save

Then just import the required component, for example Class.

import {Class} from 'class-wrapper';

There is also already available AMD module in dest forlder:

  • class-wrapper/dest/class-wrapper.amd.js
  • class-wrapper/dest/class-wrapper.amd.min.js

Usage examples

Example can be found in example.js.

To see it in live, create an empty folder and copy example.js file there. Install class-wrapper package:

npm i class-wrapper

and run the example

node example.js

Links