Git Product home page Git Product logo

gpf-js's Introduction

GitHub stats

Most Used Languages

linkedin

gpf-js's People

Contributors

arnaudbuchholz avatar arnaudbuchholz-sap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

fossabot bmix

gpf-js's Issues

DEBUG Minification generates names collision

This is why the XML test does not work in DEBUG mode: the _Base class is no more the one from XML but it became the one from HTML.
I need to isolate those names the proper way.

XML serialization test

It looks like the $XmlList attribute is ignored since the class rewriting
Need to check why.

Add enumerators on gpf

The same way gpf.forEach is capable of doing array::forEach and an equivalent for objects, the following helpers could be used:

  • every
  • map
  • reduce

What about custom XML serialization?

Today, the IXmlSerializable interface allows any class to customize the XML serialization. When XML attributes are used, this is handled internally. However, there is no call made to 'toXml' on sub objects. As a result, any custom XML serialization would be skipped.

This has to be handled.

Attributes will not work if not on a class generated from gpf.Class

To work properly, attributes rely on several mechanism that are related to gpf.Class inheritance. The same way, they are 'declared' within gpf.Class.extend.

If we want to use attributes outside of this scope, we might need to change the gpf.attributes.add method to verify if the prototype comes from a gpf.Class base. If not, we might have to create specific handling.

Bug in minification - inner function parameter impacts variable

When minifying the websvr.js, I found that the buffer variable defined in ResponseHandler::fromFile was not replaced with its minified name inside the fs.open callback. This is due to the above write function that declares the buffer parameter.
I need to change the minification to handle that properly.

Fix parser/pattern/4

The issue comes from the way a group with a minCount is handled: (a|bc)(de)+

When the input "e" is recognized, the group is considered validated (hence we have a result of 4), we must then branch the analysis between:

  • Next char is matching the beginning of the group
  • XOR next char is matching what is after the group

This is actually not used (like any Pattern class) but will become required for identifier parsing ([a-z][a-z0-9_]*)

Handle multiple instances of GPF

It appears that when I implemented mochaTest, all tests can't be chained because the library alters global objects. I need to figure out a way to limit the impacts on the JavaScript ecosystem: either by providing a way to CLEAN or by being COMPATIBLE with myself (but then, how do I test properly)

tokenizer/basic/3

This comes from the string parsing that is not taking into account carriage returns

add atob and btoa

As I removed gpf.defer to replace it with setTimeout, I should provide handlers for any 'standard'-to be objects: JSON, atob, btoa...

Add a class property validation system

Could be used to restrict usage of properties, such has (naming to be defined)
gpf.$enum("a", "b", ...)
gpf.$range(from, to)
gpf.$notEmpty()

And defines a gpf.check to apply validation rules (each check must generate a custom error message).

I could use it for Parameter loading.

gpf.node.ReadableStream issue

I must control the data flow to fit the GPF model (i.e. when the first read is called, we start reading from the stream).

[tokenizer] Improve symbol recognition

In the tokenizer, the "symbol" type is used for single characters only (one among (){}[]<>|&?,.;:!=+-*/%^). However, I would like the tokenizer to be able to detect JavaScript operators, i.e. ==, ===, ++, -- ...

stringFromFile not working

It generates the error EncodingNotSupported: Encoding not supported
I suspect an issue with scope management in the different callbacks.

Need to debug.

IE10 does not detect when the script does not exist

This has to be tested again as it was found 2 years ago (!).
One workaround would be to use XHR to load the script source and add a script tag inside the head (and finally remove it). Must evaluate the impacts before implementing (knowing that we rarely need to load a script that does not exist).

XML Asynchronous serialization

Initially, the gpf.interfaces.IXmlContentHandler was designed to be synchronous. However, the reality is that it could be used to write on a stream (that would implement gpf.interfaces.IWritableStream).

So the whole XML serialization code must be rewritten to handle that asynchronism (and avoid as much as possible the use of closures).

Re-invent the test framework

I want to be compatible with existing test frameworks.
The idea would be to describe the tests as in Mocha:

describe('User', function(){
    describe('#save()', function(){
        it('should save without error', function(done){
            var user = new User('Luna');
            user.save(function(err){
                if (err) throw err;
                done();
            });
        })
    })
})

The trick here is if the callback has one parameter, then it is asynchronous.

Then, I could implement my own framework (based on what exist) to start with.

Found an issue with Markdown

When the following code is generated:
&lt;path&gt;

A closing tag is also generated (I suspect the use of innerHTML)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.