Beispiel #1
0
 function done(err, lassoPageResult) {
     if (err) {
         lassoPageResultAsyncValue.reject(err);
     } else {
         lassoPageResultAsyncValue.resolve(lassoPageResult);
     }
 }
Beispiel #2
0
        var key = this.doCalculateKey(lassoContext, function(err, key) {
            if (err) {
                keyAsyncValue.reject(err);
                return;
            }

            handleKey(key);
        });
Beispiel #3
0
            this.loadPackageManifest(lassoContext, function(err, result) {
                if (err) {
                    return manifestAsyncValue.reject(err);
                }

                if (!result) {
                    return manifestAsyncValue.resolve(null);
                }

                var dependencyRegistry = _this.__dependencyRegistry;
                var LassoManifest = require('../LassoManifest');
                var manifest;

                if (typeof result === 'string') {
                    var manifestPath = result;
                    var from = _this.getParentManifestDir();

                    try {
                        manifest = _this.createPackageManifest(manifestLoader.load(manifestPath, from));
                    } catch(e) {
                        var err2;
                        if (e.fileNotFound) {
                            err2 = new Error('Lasso manifest not found for path "' +
                                manifestPath + '" (searching from "' + from + '"). Dependency: ' +
                                this.toString());
                        } else {
                            err2 = new Error('Unable to load lasso manifest for path "' +
                                manifestPath + '". Dependency: ' + _this.toString() + '. Exception: ' +
                                (e.stack || e));
                        }
                        manifestAsyncValue.reject(err2);
                    }
                } else if (!LassoManifest.isLassoManifest(result)) {
                    manifest = new LassoManifest({
                        manifest: result,
                        dependencyRegistry: dependencyRegistry,
                        dirname: _this.getParentManifestDir(),
                        filename: _this.getParentManifestPath()
                    });
                } else {
                    manifest = result;
                }

                manifestAsyncValue.resolve(manifest);
            });
Beispiel #4
0
        var key = this.doCalculateKey(lassoContext, function(err, key) {
            if (err) {
                keyAsyncValue.reject(err);
                return;
            }

            if (logger.isDebugEnabled()) {
                logger.debug('Calculated key for ' + _this.toString() + ': ' + key);
            }

            if (typeof key !== 'string') {
                keyAsyncValue.reject(new Error('Invalid key: ' + key));
            }

            // Store resolve key in "_key" for quick lookup
            self._key = key;
            keyAsyncValue.resolve(key);
        });
Beispiel #5
0
            let getDependenciesCallback = (err, dependencies) => {
                // console.log('----');
                // console.log('DEPENDENCIES FOR:', this);
                // console.log(module.id, 'getDependenciesCallback - DEPENDENCIES:', dependencies);
                // console.log('----');

                if (err) {
                    return manifestAsyncValue.reject(err);
                }

                var manifest = null;
                if (dependencies) {
                    try {
                        manifest = _this.createPackageManifest(dependencies);
                    } catch(err) {
                        return manifestAsyncValue.reject(err);
                    }
                }

                manifestAsyncValue.resolve(manifest);
            };
Beispiel #6
0
            this.getDependencies(lassoContext, function(err, dependencies) {
                if (err) {
                    return manifestAsyncValue.reject(err);
                }

                var manifest = null;
                if (dependencies) {
                    manifest = _this.createPackageManifest(dependencies);
                }

                manifestAsyncValue.resolve(manifest);
            });
Beispiel #7
0
        function handleKey(key) {
            if (key === null) {
                key = self.type + '|' + lassoContext.uniqueId();
            } else if (typeof key !== 'string') {
                keyAsyncValue.reject(new Error('Invalid key: ' + key));
                return;
            }

            if (logger.isDebugEnabled()) {
                logger.debug('Calculated key for ' + self.toString() + ': ' + key);
            }

            // Store resolve key in "_key" for quick lookup
            self._key = key;
            keyAsyncValue.resolve(key);
        }
Beispiel #8
0
    getPackageManifest: function(lassoContext, callback) {
        if (!this.isPackageDependency()) {
            throw new Error('getPackageManifest() failed. Dependency is not a package: ' + this.toString());
        }

        if (this._manifestAsyncValue) {
            this._manifestAsyncValue.done(callback);
            return;
        }

        var _this = this;

        var manifestAsyncValue;
        this._manifestAsyncValue = manifestAsyncValue = new AsyncValue();
        manifestAsyncValue.done(callback);

        if (typeof this.loadPackageManifest === 'function') {
            this.loadPackageManifest(lassoContext, function(err, result) {
                if (err) {
                    return manifestAsyncValue.reject(err);
                }

                if (!result) {
                    return manifestAsyncValue.resolve(null);
                }

                var dependencyRegistry = _this.__dependencyRegistry;
                var LassoManifest = require('../LassoManifest');
                var manifest;

                if (typeof result === 'string') {
                    var manifestPath = result;
                    var from = _this.getParentManifestDir();

                    try {
                        manifest = _this.createPackageManifest(manifestLoader.load(manifestPath, from));
                    } catch(e) {
                        var err2;
                        if (e.fileNotFound) {
                            err2 = new Error('Lasso manifest not found for path "' +
                                manifestPath + '" (searching from "' + from + '"). Dependency: ' +
                                this.toString());
                        } else {
                            err2 = new Error('Unable to load lasso manifest for path "' +
                                manifestPath + '". Dependency: ' + _this.toString() + '. Exception: ' +
                                (e.stack || e));
                        }
                        manifestAsyncValue.reject(err2);
                    }
                } else if (!LassoManifest.isLassoManifest(result)) {
                    manifest = new LassoManifest({
                        manifest: result,
                        dependencyRegistry: dependencyRegistry,
                        dirname: _this.getParentManifestDir(),
                        filename: _this.getParentManifestPath()
                    });
                } else {
                    manifest = result;
                }

                manifestAsyncValue.resolve(manifest);
            });
        } else if (typeof this.getDependencies === 'function') {

            let getDependenciesCallback = (err, dependencies) => {
                // console.log('----');
                // console.log('DEPENDENCIES FOR:', this);
                // console.log(module.id, 'getDependenciesCallback - DEPENDENCIES:', dependencies);
                // console.log('----');

                if (err) {
                    return manifestAsyncValue.reject(err);
                }

                var manifest = null;
                if (dependencies) {
                    try {
                        manifest = _this.createPackageManifest(dependencies);
                    } catch(err) {
                        return manifestAsyncValue.reject(err);
                    }
                }

                manifestAsyncValue.resolve(manifest);
            };

            let dependenciesPromise = this.getDependencies(lassoContext, getDependenciesCallback);

            if (dependenciesPromise) {
                Promise.resolve(dependenciesPromise)
                    .then((dependencies) => {
                        process.nextTick(() => {
                            getDependenciesCallback(null, dependencies);
                        });
                    })
                    .catch(getDependenciesCallback);
            }


        } else {
            var err = new Error('getPackageManifest() failed. "getDependencies" or "loadPackageManifest" expected: ' + this.toString());
            manifestAsyncValue.reject(err);
        }
    },
Beispiel #9
0
 .catch((err) => {
     keyAsyncValue.reject(err);
 });