- ๐ญ Iโm currently working on Mirroware
- ๐ฑ Iโm currently learning WordPress, AngularJS
- ๐ฌ Ask me about TypeScript, JavaScript, NodeJS
- ๐ซ How to reach me [email protected]
- โก Fun fact I am left-handed (That ain't funny though)
A light-weight JavaScript framework designed to create flexible and maintainable projects with a modular and hierarchical approach
License: MIT License
Setting up an application with CASES implies registering components such as: services, collections, events, agent types, etc. Therefore, it would be of great benefit to have a module responsible for initializing the things previously mentioned, so that the initialization process becomes more abstracted from the consumer of the framework. Not only having a built-in initializer would ease this task; there would be more security, as we will be able to check for errors before setting up everything.
Agents-types are registered correctly; the prototype is correctly stored at AgentPool.#types, respecting the classes of objects defined at its attributes, for example:
class Example {
constructor(){
this.field = 'dummy';
}
}
// Attribute A is stored with its class (Example)
typeA: { attributeA : (instance of Example) }
However, when a new agent is created, its attributes (defined as objects) will be set as generic javascript objects, instead of keeping their original class.
// Notice that 'attributeA' is not defined as an instance of Example; it is a JavaScript vanilla Object
agent = { #type : 'typeA', attributeA : { field : 'dummy' } }
This occurs because each agent attribute is assigned by creating a deep copy of the prototype's attributes; it doesn't recognize classes, only vanilla empty objects:
AgentPool.js - line 34
this[field] = Object.assign({},_field);
The execution loop of does not provide information about execution time; it could be a problem when clients with different computer resources attempt to run a program, for example: a video game. Not implementing delta-time functions could vary how the same program executes at different clients; it is an issue especially for online interactive applications, where synchronization is a requirement.
Therefore, it is important to implement the delta-time feature as soon as possible.
First of all, I imported the JavaScript vanilla World class to another project, which utilizes TypeScript; the intention was making a subclass as an extra layer to implement new functionalities on top of the framework's World class. However, Typescript sub-classes only inherit those fields and methods from their super class which are explicitly defined as "public." ECMAScript does not support the reserved word public for classes, therefore, there is not a simple way of letting typescript to inherit those attributes from JavaScript vanilla classes.
Possible solution:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.