Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

aurelia-binding-functions

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aurelia-binding-functions - npm Package Compare versions

Comparing version 0.1.0 to 0.2.0

dist/lexer.d.ts

2

dist/aurelia-binding-functions.d.ts

@@ -7,5 +7,5 @@ declare module 'aurelia-binding-functions' {

export interface BindingFunction {
evaluate(callScope: CallScope, scope: Scope, lookupFunctions: any, mustEvaluate: boolean): any;
connect?(callScope: CallScope, binding: Binding, scope: Scope): void;
assign?(callScope: CallScope, scope: Scope, value: any, lookupFunctions: any): void;
evaluate(callScope: CallScope, scope: Scope, lookupFunctions: any, mustEvaluate: boolean): any;
bind?(callScope: CallScope, binding: Binding, scope: Scope, lookupFunctions: any): void;

@@ -12,0 +12,0 @@ unbind?(callScope: CallScope, binding: Binding, scope: Scope): void;

@@ -9,3 +9,3 @@ define(["require", "exports", 'aurelia-binding', 'aurelia-metadata'], function (require, exports, aurelia_binding_1, aurelia_metadata_1) {

if (name.endsWith('BindingFunction')) {
return new BindingFunctionResource(aurelia_binding_1.camelCase(name.substring(0, name.length - 15)));
return new BindingFunctionResource('@' + aurelia_binding_1.camelCase(name.substring(0, name.length - 15)));
}

@@ -34,2 +34,2 @@ };

//# sourceMappingURL=binding-function-resource.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1mdW5jdGlvbi1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIvc291cmNlLyIsInNvdXJjZXMiOlsiYmluZGluZy1mdW5jdGlvbi1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztJQUlBO1FBRUUsaUNBQW1CLElBQVk7WUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQUcsQ0FBQztRQUU1QixrQ0FBVSxHQUFqQixVQUFrQixJQUFJO1lBQ3BCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLDJCQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckYsQ0FBQztRQUNILENBQUM7UUFFRCw0Q0FBVSxHQUFWLFVBQVcsU0FBUyxFQUFFLE1BQU07WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCwwQ0FBUSxHQUFSLFVBQVMsUUFBUSxFQUFFLElBQUk7WUFDckIsUUFBUSxDQUFDLHVCQUF1QixDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsc0NBQUksR0FBSixVQUFLLFNBQVMsRUFBRSxNQUFNLElBQUcsQ0FBQztRQUM1Qiw4QkFBQztJQUFELENBQUMsQUFuQkQsSUFtQkM7SUFuQlksK0JBQXVCLDBCQW1CbkMsQ0FBQTtJQUVELHlCQUFnQyxZQUFZO1FBQzFDLEVBQUUsQ0FBQSxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUEsQ0FBQztZQUNqRSxNQUFNLENBQUMsVUFBUyxNQUFNO2dCQUNwQiwyQkFBUSxDQUFDLE1BQU0sQ0FBQywyQkFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hGLENBQUMsQ0FBQTtRQUNILENBQUM7UUFFRCwyQkFBUSxDQUFDLE1BQU0sQ0FBQywyQkFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLHVCQUF1QixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQVJlLHVCQUFlLGtCQVE5QixDQUFBIiwic291cmNlc0NvbnRlbnQiOltdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1mdW5jdGlvbi1yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIvc291cmNlLyIsInNvdXJjZXMiOlsiYmluZGluZy1mdW5jdGlvbi1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztJQUlBO1FBRUUsaUNBQW1CLElBQVk7WUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQUcsQ0FBQztRQUU1QixrQ0FBVSxHQUFqQixVQUFrQixJQUFJO1lBQ3BCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEdBQUcsR0FBRywyQkFBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNGLENBQUM7UUFDSCxDQUFDO1FBRUQsNENBQVUsR0FBVixVQUFXLFNBQVMsRUFBRSxNQUFNO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsMENBQVEsR0FBUixVQUFTLFFBQVEsRUFBRSxJQUFJO1lBQ3JCLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELHNDQUFJLEdBQUosVUFBSyxTQUFTLEVBQUUsTUFBTSxJQUFHLENBQUM7UUFDNUIsOEJBQUM7SUFBRCxDQUFDLEFBbkJELElBbUJDO0lBbkJZLCtCQUF1QiwwQkFtQm5DLENBQUE7SUFFRCx5QkFBZ0MsWUFBWTtRQUMxQyxFQUFFLENBQUEsQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFBLENBQUM7WUFDakUsTUFBTSxDQUFDLFVBQVMsTUFBTTtnQkFDcEIsMkJBQVEsQ0FBQyxNQUFNLENBQUMsMkJBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4RixDQUFDLENBQUE7UUFDSCxDQUFDO1FBRUQsMkJBQVEsQ0FBQyxNQUFNLENBQUMsMkJBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSx1QkFBdUIsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFSZSx1QkFBZSxrQkFROUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbXX0=

@@ -6,7 +6,7 @@ import { FrameworkConfiguration } from 'aurelia-framework';

export interface BindingFunction {
evaluate(callScope: CallScope, scope: Scope, lookupFunctions: any, mustEvaluate: boolean): any;
connect?(callScope: CallScope, binding: Binding, scope: Scope): void;
assign?(callScope: CallScope, scope: Scope, value: any, lookupFunctions: any): void;
evaluate(callScope: CallScope, scope: Scope, lookupFunctions: any, mustEvaluate: boolean): any;
bind?(callScope: CallScope, binding: Binding, scope: Scope, lookupFunctions: any): void;
unbind?(callScope: CallScope, binding: Binding, scope: Scope): void;
}

@@ -1,2 +0,2 @@

define(["require", "exports", './module-analyzer', './call-scope', './view-resources', './binding-function-resource'], function (require, exports, module_analyzer_1, call_scope_1, view_resources_1, binding_function_resource_1) {
define(["require", "exports", './module-analyzer', './call-scope', './view-resources', './lexer', './binding-function-resource'], function (require, exports, module_analyzer_1, call_scope_1, view_resources_1, lexer_1, binding_function_resource_1) {
"use strict";

@@ -10,2 +10,3 @@ exports.bindingFunction = binding_function_resource_1.bindingFunction;

call_scope_1.patchCallScope();
lexer_1.patchLexer();
}

@@ -15,2 +16,2 @@ exports.configure = configure;

//# sourceMappingURL=index.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3NvdXJjZS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0lBS1Esc0VBQWU7SUFBRSxzRkFBMkQ7SUFFcEYsbUJBQTBCLGVBQXVDO1FBQy9ELElBQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFBO1FBR3ZELG1DQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBR2pDLHFDQUFtQixFQUFFLENBQUE7UUFHckIsMkJBQWMsRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFYZSxpQkFBUyxZQVd4QixDQUFBIiwic291cmNlc0NvbnRlbnQiOltdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3NvdXJjZS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0lBTVEsc0VBQWU7SUFBRSxzRkFBMkQ7SUFFcEYsbUJBQTBCLGVBQXVDO1FBQy9ELElBQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFBO1FBR3ZELG1DQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBR2pDLHFDQUFtQixFQUFFLENBQUE7UUFHckIsMkJBQWMsRUFBRSxDQUFBO1FBR2hCLGtCQUFVLEVBQUUsQ0FBQTtJQUNkLENBQUM7SUFkZSxpQkFBUyxZQWN4QixDQUFBIiwic291cmNlc0NvbnRlbnQiOltdfQ==
define(["require", "exports", 'aurelia-templating', 'aurelia-metadata', 'aurelia-loader', 'aurelia-binding', 'aurelia-binding', './binding-function-resource'], function (require, exports, aurelia_templating_1, aurelia_metadata_1, aurelia_loader_1, aurelia_binding_1, aurelia_binding_2, binding_function_resource_1) {
"use strict";
function patchModuleAnalyzer() {
var analyzeOriginal = aurelia_templating_1.ModuleAnalyzer.prototype.analyze;
aurelia_templating_1.ModuleAnalyzer.prototype.analyze = function analyze(moduleId, moduleInstance, mainResourceKey) {

@@ -95,2 +94,2 @@ var mainResource;

//# sourceMappingURL=module-analyzer.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWFuYWx5emVyLmpzIiwic291cmNlUm9vdCI6Ii9zb3VyY2UvIiwic291cmNlcyI6WyJtb2R1bGUtYW5hbHl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7SUFRQTtRQUNFLElBQU0sZUFBZSxHQUFHLG1DQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQTtRQVF4RCxtQ0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLFFBQWdCLEVBQUUsY0FBbUIsRUFBRSxlQUF3QjtZQUdqSCxJQUFJLFlBQVksQ0FBQztZQUNqQixJQUFJLGFBQWEsQ0FBQztZQUNsQixJQUFJLFdBQVcsQ0FBQztZQUNoQixJQUFJLGdCQUFnQixDQUFDO1lBQ3JCLElBQUksR0FBRyxDQUFDO1lBQ1IsSUFBSSxhQUFhLENBQUM7WUFDbEIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksWUFBWSxDQUFDO1lBQ2pCLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxjQUFjLENBQUM7WUFFbkIsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLGNBQWMsQ0FBQztZQUN4QixDQUFDO1lBRUQsY0FBYyxHQUFHLElBQUksbUNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGNBQWMsQ0FBQztZQUV0QyxFQUFFLENBQUMsQ0FBQyxPQUFPLGNBQWMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxjQUFjLEdBQUcsRUFBQyxTQUFTLEVBQUUsY0FBYyxFQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLFlBQVksR0FBRyxJQUFJLHdDQUFtQixDQUFDLGVBQWUsRUFBRSxjQUFj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LENBQUMsSUFBSSxDQUFDLElBQUksd0NBQW1CLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO3dCQUMxRSwyQkFBUSxDQUFDLE1BQU0sQ0FBQywyQkFBUSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQ2xFLENBQUM7b0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksR0FBRyx5Q0FBdUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNsRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksd0NBQW1CLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO3dCQUMxRSwyQkFBUSxDQUFDLE1BQU0sQ0FBQywyQkFBUSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQ2xFLENBQUM7b0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksR0FBRyxtREFBdUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNsRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksd0NBQW1CLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO3dCQUMxRSwyQkFBUSxDQUFDLE1BQU0sQ0FBQywyQkFBUSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQ2xFLENBQUM7b0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQzt3QkFDMUIsYUFBYSxHQUFHLGFBQWEsQ0FBQzt3QkFDOUIsV0FBVyxHQUFHLEdBQUcsQ0FBQztvQkFDcEIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLFlBQVksR0FBRyxJQUFJLHdDQUFtQixDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBRUQsY0FBYyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7WUFDL0MsY0FBYyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7WUFDM0MsY0FBYyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDckMsY0FBYyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFFakMsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUN4QixDQUFDLENBQUE7SUFFSCxDQUFDO0lBekdlLDJCQUFtQixzQkF5R2xDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6W119
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWFuYWx5emVyLmpzIiwic291cmNlUm9vdCI6Ii9zb3VyY2UvIiwic291cmNlcyI6WyJtb2R1bGUtYW5hbHl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7SUFXQTtRQVFFLG1DQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsUUFBZ0IsRUFBRSxjQUFtQixFQUFFLGVBQXdCO1lBQ2pILElBQUksWUFBWSxDQUFDO1lBQ2pCLElBQUksYUFBYSxDQUFDO1lBQ2xCLElBQUksV0FBVyxDQUFDO1lBQ2hCLElBQUksZ0JBQWdCLENBQUM7WUFDckIsSUFBSSxHQUFHLENBQUM7WUFDUixJQUFJLGFBQWEsQ0FBQztZQUNsQixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxZQUFZLENBQUM7WUFDakIsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLGNBQWMsQ0FBQztZQUVuQixjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixNQUFNLENBQUMsY0FBYyxDQUFDO1lBQ3hCLENBQUM7WUFFRCxjQUFjLEdBQUcsSUFBSSxtQ0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsY0FBYyxDQUFDO1lBRXRDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sY0FBYyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLGNBQWMsR0FBRyxFQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUMsQ0FBQztZQUMvQyxDQUFDO1lBRUQsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztnQkFDcEIsWUFBWSxHQUFHLElBQUksd0NBQW1CLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQzNGLENBQUM7WUFFRCxHQUFHLENBQUMs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LFlBQVksQ0FBQyxDQUFDLENBQUM7d0JBQzFFLDJCQUFRLENBQUMsTUFBTSxDQUFDLDJCQUFRLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDbEUsQ0FBQztvQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLHlDQUF1QixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2xFLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSx3Q0FBbUIsQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7d0JBQzFFLDJCQUFRLENBQUMsTUFBTSxDQUFDLDJCQUFRLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDbEUsQ0FBQztvQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLG1EQUF1QixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2xFLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSx3Q0FBbUIsQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7d0JBQzFFLDJCQUFRLENBQUMsTUFBTSxDQUFDLDJCQUFRLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDbEUsQ0FBQztvQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO3dCQUMxQixhQUFhLEdBQUcsYUFBYSxDQUFDO3dCQUM5QixXQUFXLEdBQUcsR0FBRyxDQUFDO29CQUNwQixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbkMsWUFBWSxHQUFHLElBQUksd0NBQW1CLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7WUFFRCxjQUFjLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztZQUMvQyxjQUFjLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUMzQyxjQUFjLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUNyQyxjQUFjLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUVqQyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQ3hCLENBQUMsQ0FBQTtJQUNILENBQUM7SUFyR2UsMkJBQW1CLHNCQXFHbEMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbXX0=
{
"name": "aurelia-binding-functions",
"version": "0.1.0",
"version": "0.2.0",
"description": "An Aurelia plugin that makes it possible create BindingFunctions.",

@@ -28,2 +28,3 @@ "keywords": [

"devDependencies": {
"aurelia-framework": "^1.0.0-beta.1.2.0",
"browser-sync": "^2.11.0",

@@ -30,0 +31,0 @@ "conventional-changelog": "0.5.3",

# aurelia-binding-functions
An Aurelia plugin that allows you to create bi-directional BindingFunctions in a similar way to BidingBehaviors.
An Aurelia plugin that allows you to create bi-directional BindingFunctions in a similar way to [ValueConverters](http://aurelia.io/docs.html#/aurelia/binding/latest/doc/article/binding-value-converters) or BindingBehaviors.
## How to install this plugin?
1. In your project install the plugin and `rxjs` via `jspm` with following command
1. In your project install the plugin via `jspm` with following command

@@ -29,4 +29,72 @@ ```shell

*TODO*
You may create a BindingFunction the same way as you would BindingBehaviors or ValueConverters.
The simplest implementation for a one-way binding might look as follows:
```ts
// async-binding-function.ts //
export class AsyncBindingFunction implements BindingFunction {
connect(callScope: CallScope, binding: Binding, scope: Scope) {
// get the value of the first argument passed to our CallScope,
// e.g. the property from async(property)
const promise = callScope.args[0].evaluate(scope, binding.lookupFunctions, true) as Promise<any> & {promiseResult:any}
// make sure the binding is updated
// once the property "promiseResult" changes on the "promise"
binding.observeProperty(promise, 'promiseResult')
// set the "promiseResult" property once the Promise resolves
if (promise.promiseResult === undefined && typeof promise.then === 'function') {
promise.then(value => {
promise.promiseResult = value
})
}
}
evaluate(callScope: CallScope, scope: Scope, lookupFunctions, mustEvaluate: boolean) {
const promise = callScope.args[0].evaluate(scope, lookupFunctions, true) as Promise<any> & {promiseResult:any}
// return the value of "promiseResult" property
// or undefined if the value of the argument is not set
return promise ? promise.promiseResult : undefined
}
}
```
Now the BindingFunction can be used inside bindings prefixed by `@`, i.e. `@async()`:
```html
<require from="./async-binding-function"></require>
<h2>${ @async(somePromise) }</h2>
```
A BindingFunction can implement the following methods:
```ts
export interface BindingFunction {
// invoked by Aurelia to either:
// - retrieve the current value of the binding
// - trigger a call (e.g. by click.delegate)
evaluate(callScope: CallScope, scope: Scope, lookupFunctions, mustEvaluate: boolean): any
// invoked if the binding is used as a source of values
// (as opposed to being used to trigger changes, like in click.delegate)
// this is invoked by Aurelia after bind() and every time the binding is recomputed
connect?(callScope: CallScope, binding: Binding, scope: Scope): void
// when the binding is two-way, invoked every time new values are fed into the binding by Aurelia
assign?(callScope: CallScope, scope: Scope, value: any, lookupFunctions: any): void
// invoked when the binding is bound
bind?(callScope: CallScope, binding: Binding, scope: Scope, lookupFunctions: any): void
// invoked when the binding is unbound
unbind?(callScope: CallScope, binding: Binding, scope: Scope): void
}
```
For a **one-time binding** you only need to implement the `evaluate()` method.
A **one-way binding** will require you to also implement `connect()`, while a **two-way binding** requires you to also implement `assign()`.
## Dependencies

@@ -33,0 +101,0 @@

@@ -11,3 +11,3 @@ import {camelCase} from 'aurelia-binding'

if (name.endsWith('BindingFunction')) {
return new BindingFunctionResource(camelCase(name.substring(0, name.length - 15)));
return new BindingFunctionResource('@' + camelCase(name.substring(0, name.length - 15)));
}

@@ -35,2 +35,2 @@ }

metadata.define(metadata.resource, new BindingFunctionResource(), nameOrTarget);
}
}

@@ -6,2 +6,3 @@ import {FrameworkConfiguration} from 'aurelia-framework'

import {patchViewResources} from './view-resources'
import {patchLexer} from './lexer'
export {bindingFunction, BindingFunctionResource} from './binding-function-resource'

@@ -20,10 +21,36 @@

patchCallScope()
// monkey patch Lexer to allow '@' as a start for an identificator
patchLexer()
}
export interface BindingFunction {
/**
* invoked by Aurelia to either:
* - retrieve the current value of the binding
* - trigger a call (e.g. by click.delegate)
*/
evaluate(callScope: CallScope, scope: Scope, lookupFunctions, mustEvaluate: boolean): any
/**
* invoked if the binding is used as a source of values
* (as opposed to being used to trigger changes, like in click.delegate)
* this is invoked by Aurelia after bind()
*/
connect?(callScope: CallScope, binding: Binding, scope: Scope): void
/**
* when the binding is two-way, invoked every time new values are fed into the binding by Aurelia
*/
assign?(callScope: CallScope, scope: Scope, value: any, lookupFunctions: any): void
evaluate(callScope: CallScope, scope: Scope, lookupFunctions, mustEvaluate: boolean): any
/**
* invoked when the binding is bound
*/
bind?(callScope: CallScope, binding: Binding, scope: Scope, lookupFunctions: any): void
/**
* invoked when the binding is unbound
*/
unbind?(callScope: CallScope, binding: Binding, scope: Scope): void
}

@@ -8,5 +8,7 @@ import {ModuleAnalyzer, ResourceModule, ResourceDescription, HtmlBehaviorResource, viewStrategy, TemplateRegistryViewStrategy, ViewResources, ResourceLoadContext, _hyphenate} from 'aurelia-templating'

// 3. patch ModuleAnalyzer to understand BindingFunctions
/**
* patch ModuleAnalyzer to understand BindingFunctions
* ModuleAnalyzer from https://github.com/aurelia/templating/blob/master/src/module-analyzer.js
*/
export function patchModuleAnalyzer() {
const analyzeOriginal = ModuleAnalyzer.prototype.analyze
/**

@@ -20,4 +22,2 @@ * Analyzes a module.

ModuleAnalyzer.prototype.analyze = function analyze(moduleId: string, moduleInstance: any, mainResourceKey?: string): ResourceModule {
// const originalReturnValue = analyzeOriginal.apply(this, arguments)
let mainResource;

@@ -115,3 +115,2 @@ let fallbackValue;

}
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc