ngx-agora
Version:
Angular wrapper for Agora RTC client (https://www.agora.io/en/)
50 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const schematics_1 = require("@angular-devkit/schematics");
const tasks_1 = require("@angular-devkit/schematics/tasks");
const dependencies_1 = require("@schematics/angular/utility/dependencies");
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
const npmjs_1 = require("../util/npmjs");
// You don't have to export the function as default. You can also have more than one rule factory
// per file.
function default_1(options) {
return (tree, context) => {
return schematics_1.chain([
addPackageJsonDependencies(options),
installDependencies(),
setupProject(options),
])(tree, context);
};
}
exports.default = default_1;
function addPackageJsonDependencies(options) {
return (tree, _) => {
return rxjs_1.of({ name: 'agora-rtc-sdk', version: options.version }, { name: 'ngx-agora', version: undefined }).pipe(operators_1.mergeMap((pkg) => npmjs_1.getNPMPackage(pkg)), operators_1.map((npmRegistryPackage) => {
const nodeDependency = {
type: dependencies_1.NodeDependencyType.Default,
name: npmRegistryPackage.name,
version: npmRegistryPackage.version,
overwrite: false,
};
dependencies_1.addPackageJsonDependency(tree, nodeDependency);
return tree;
}));
};
}
function installDependencies() {
return (tree, context) => {
context.addTask(new tasks_1.NodePackageInstallTask());
return tree;
};
}
function setupProject(options) {
return (tree, context) => {
const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask());
context.addTask(new tasks_1.RunSchematicTask('ng-add-setup-project', options), [
installTaskId,
]);
return tree;
};
}
//# sourceMappingURL=index.js.map