titannanode / applicationframe Goto Github PK
View Code? Open in Web Editor NEWsimple and lightweight library for building ECMAScript applications
Home Page: https://titannano.de
License: Apache License 2.0
simple and lightweight library for building ECMAScript applications
Home Page: https://titannano.de
License: Apache License 2.0
It doesn't make sense to update values on the DOM which didn't change.
There might be situations in which we'd like to close a DB, this should be possible.
I don't like the decisions I made while designing the scope system.
This big prepare function will be depraved and replaced by a smaller and better one.
In addition there will be three types of scope functions public, private and system only.
It should be possible to get the Polymer compatibility to work without the usage Proxies.
The support for proxies is to rare as that we can actually use it in production.
Introduce render engine to be able to directly access the browsers render process.
The render engine allows to insert tasks into the rendering process. They can be added either to the next frame, or after the next frame has been rendered. It's also possible to add hooks which are executed every time a frame is rendered.
When upgrading an existing store to a new version it causes an Object store named 'x' already exists at index 'y'
exception. This is caused by
ApplicationFrame/IndexedDB/index.js
Line 109 in a46eead
ServiceWorker
events are not correctly dispatched through to the clients and the service worker also doesn't correctly receive event messages posted to it.
Implement all new features, classes, etc. for 0.2
the main functions must be documented in the wiki before the first release.
The new auto binding doesn't work with repeat and replace since the repeat binding immediately invokes the sub cycle for the auto binding, but does not insert the new element before it is done.
So the auto binding needs to be async to be executed after the current update cycle is done. Also replace doesn't play so well with the repeat binding and it will mess up the injection logic if some template elements are replaced with their content. A insert attribute should be added here.
We should re-implement the submission of get requests to use the URLSearchParams
constructor.
The CustomElement prototype should make it easier to work with custom elements. It's supposed to generate attribute-to-property bindings, auto cast attribute values and provide easy to use callback functions for common custom elements tasks such as, general attribute change, specific attribute change and element creation.
currently an empty expression returns the context it is evaluated against. This should be fixed to return undefined
;
We can refactor the implementation to always take one argument, so we can avoid the redundant string for object allocations.
The web/ServiceWorker.init()
method should return a registration promise, so errors can be appropriately handled by the user.
There might be situations in which someone might what to upgrade the database at runtime. This is currently not possible without destroying the existing DB object and creating a new one. An in place reopen / upgrade method would be useful here.
The idea of this function is to receive a callback and an amount of milliseconds. The Function then returns a new function. Once the new function gets called a time out is set and the callback will be executed after the delay. The wrapper function returns a promise which will resolve to the callbacks return value.
Proposed trait:
(...args) => Promise
If a cache storage has been deleted by the browser, the SW cache should be able to recover from that situation and recreate the cache.
Switch all modules to the new modules system.
To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:
.travis.yml
If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.
Greenkeeper has checked the engines
key in any package.json
file, the .nvmrc
file, and the .travis.yml
file, if present.
engines
was only updated if it defined a single version, not a range..nvmrc
was updated to Node.js 10.travis.yml
was only changed if there was a root-level node_js
that didn’t already include Node.js 10, such as node
or lts/*
. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.For many simpler .travis.yml
configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖
There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.
Your Greenkeeper Bot 🌴
The existing code base requires some clean up before it can be released.
5.12.0
to 5.12.1
.This version is covered by your current version range and after updating it in your project the build failed.
eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.
eb5c401
Chore: use meta.messages in some rules (2/4) (refs #9870) (#10773) (薛定谔的猫)aa56247
Fix: avoid loading core rules dynamically from FS in Linter (#11278) (Peter Metz)04450bb
Docs: clarify process for adding committers (#11272) (Kai Cataldo)3ffcf26
Docs: add @g-plane as committer (#11277) (Kai Cataldo)c403445
Fix: warn constant on RHS of || in no-constant-condition (fixes #11181) (#11253) (Merlin Mason)9194f45
Fix: Manage severity of 1 with TAP reporter (fixes #11110) (#11221) (Gabriel Cousin)000f495
Docs: fix example for sort-imports ignoreDeclarationSort (#11242) (Remco Haszing)7c0bf2c
Docs: Add npx
usage to Getting Started guide (#11249) (eyal0803)da9174e
Docs: fixes typo peerDepencies (#11252) (Christian Kühl)9c31625
Docs: Improve custom formatter docs (#11258) (Nicholas C. Zakas)The new version differs by 12 commits.
faf3c4e
5.12.1
1010c98
Build: changelog update for 5.12.1
eb5c401
Chore: use meta.messages in some rules (2/4) (refs #9870) (#10773)
aa56247
Fix: avoid loading core rules dynamically from FS in Linter (#11278)
04450bb
Docs: clarify process for adding committers (#11272)
3ffcf26
Docs: add @g-plane as committer (#11277)
c403445
Fix: warn constant on RHS of || in no-constant-condition (fixes #11181) (#11253)
9194f45
Fix: Manage severity of 1 with TAP reporter (fixes #11110) (#11221)
000f495
Docs: fix example for sort-imports ignoreDeclarationSort (#11242)
7c0bf2c
Docs: Add npx
usage to Getting Started guide (#11249)
da9174e
Docs: fixes typo peerDepencies (#11252)
9c31625
Docs: Improve custom formatter docs (#11258)
See the full diff
There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.
Your Greenkeeper Bot 🌴
It's easier to just reinsert all the repeated nodes, and it's also more performant.
We append all nodes to a DocumentFragment and once the list is up-to-date we add it to the DOM.
A style binging ,binds layout and style properties to a model scope. This gives easy access to information like, with, height, position and other styling properties.
We need to remove obsolete files, these include af.js
, modules/packageManager.js
, modules/net.js
, modules/l10n.js
, modules/ServiceLoader.js
, modules/dom.js
, modules/physical-touch.js
, modules/core-extensions.js
, modules/prototypes
, viewController.js
especially the infos for the engine options. They will be moved to the wiki soon.
after #2 I will commit some changes to improve af in the add-on environment to get it to work with content-scripts.
The cacheName
is being incorrectly extracted and therefore requests are not being matched against the static cache. The first argument of the then()
callback is an array of values.
ApplicationFrame/ServiceWorker/Cache.js
Lines 87 to 95 in e691477
The cache is currently being refreshed each time the SW is initialized. This happens regardless of when the cache was checked the last time and whether the buildId
changed, because neither cacheUpdate
or staticFileBuildId
are ever updated.
NetworkRequest
should support the node.js runtime. Therefore, we need to implement a compatibility layer which supports both node HTTP requests as well as XHR. The current interface of NetworkRequest
shouldn't be changed.
We should make sure to utilize the npm audit and fix all issues.
Service Worker support is elementary for Application Frame. A proper framework has to be implemented.
The Framework should consist of two parts. A) the service worker has to be embedded into Application Frame, therefore core/ServiceWorker
prototype should control the worker registration. The Prototype ServiceWorker
then allows to setup the worker it self in a separate module.
We need to recycle all the child scopes if we do an single scope recycle. To achieve this we should place a binding in the parent scope that triggers the recycle for a child scopes.
We currently do not have any kind of logo for the project. Coming up with a logo to represent the library would be a great step forward.
Create fake copies of the main methods so applications and systems can be tested without actually interfacing with the DOM.
To improve the usability of the node VM, we should add a requireHook()
that lets people intercept require calls and possibly alter them.
It should be possible to cancel an already sent request.
By using generators as render tasks, it would be really simple to interrupt these tasks.
The task could simply yield after consuming rendering time and could be continued when ever there is new render time.
the parsing RegEx accidentally strips $
from variable names. That should be fixed soon.
We need a cancel()
method on NetworkRequest
. This method should interrupt already sent requests. If the request hasn't been sent yet, nothing should happen.
It's currently not possible to delete any store entries.
Test coverage for the rendering module should be completed. We need tests for all remaining API methods.
All tests should be moved from the .travis/
directory to a new tests/
directory. References to the .travis/
directory have to be moved as well.
I really don't like this but in the Mozilla Add-on content-script environment self and window is not the same. Because it is impossible to overwrite self in this context, I have decided to rename the global object from self to g_.
Create an interface that is injected into every task. This interface should allow tasks to check how much time they have left. If tasks run out of time and need to interrupt their work, they should be able to notify the render engine by returning false. The engine then will call them again in the next frame. It's in the responsibility of the task to continue where it left off.
We need to create a tool set that makes it easy to work with threads / web workers.
This should Include:
IOThread
prototypeThread
capabilities in the Application
prototypeIOThread
Come up with more tests for the IndexedDB driver to get the test coverage to 100%.
Update and complete code documentation.
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.