diff --git a/extensions/generators/npm.py b/extensions/generators/npm.py index 24b9844..c7b3d2b 100644 --- a/extensions/generators/npm.py +++ b/extensions/generators/npm.py @@ -1,8 +1,8 @@ +import os import json from conan import ConanFile -from conan.errors import ConanException -from conan.tools.files import copy, save +from conan.tools.files import copy, mkdir, save from pathlib import Path @@ -13,18 +13,27 @@ class npm: def generate(self): if self._conanfile.settings.os != "Emscripten": self._conanfile.output.error("Can only deploy to NPM when build for Emscripten") - raise ConanException("Can only deploy to NPM when build for Emscripten") - - root_package = [dep for dep in self._conanfile.dependencies.direct_host.values()][0] - - # Copy the *.js and *.d.ts - copy(self._conanfile, "*.js", src=root_package.package_folder, dst=self._conanfile.generators_folder) - copy(self._conanfile, "*.d.ts", src=root_package.package_folder, dst=self._conanfile.generators_folder) - - # Create the package.json - save(self._conanfile, str(Path(self._conanfile.generators_folder, "package.json")), - json.dumps(root_package.conf_info.get(f"user.{root_package.ref.name.lower()}:package_json"))) - - # Create the .npmrc file - save(self._conanfile, str(Path(self._conanfile.generators_folder, ".npmrc")), - "//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n@ultimaker:registry=https://npm.pkg.github.com\nalways-auth=true") + return + + if self._conanfile.display_name == "cli": # We're installing a CLI package from the conan local cache + root_package = [dep for dep in self._conanfile.dependencies.direct_host.values()][0] + src_folder = root_package.package_folder + conf_info = root_package.conf_info + name = root_package.ref.name + + # Copy the *.js and *.d.ts + copy(self._conanfile, "*.js", src=src_folder, dst=self._conanfile.generators_folder) + copy(self._conanfile, "*.d.ts", src=src_folder, dst=self._conanfile.generators_folder) + + # Create the package.json + save(self._conanfile, str(Path(self._conanfile.generators_folder, "package.json")), + json.dumps(conf_info.get(f"user.{name.lower()}:package_json"))) + + # Create the .npmrc file + save(self._conanfile, str(Path(self._conanfile.generators_folder, ".npmrc")), + "//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n@ultimaker:registry=https://npm.pkg.github.com\nalways-auth=true") + else: # We're generating a package for a development environment + package_json = self._conanfile.python_requires["npmpackage"].module.generate_package_json(self._conanfile, + os.path.join(self._conanfile.cpp.build.bindirs[0], self._conanfile.cpp.build.bin[0])) + save(self._conanfile, str(Path(self._conanfile.build_folder, "package.json")), + json.dumps(package_json)) diff --git a/profiles/cura_wasm.jinja b/profiles/cura_wasm.jinja index f46195d..c8b923b 100644 --- a/profiles/cura_wasm.jinja +++ b/profiles/cura_wasm.jinja @@ -11,7 +11,7 @@ arch=wasm [conf] tools.build:skip_test=True tools.cmake.cmake_layout:build_folder_vars=['settings.os'] -user.curator:printers=['ultimaker_sketch','ultimaker_sketch_large','ultimaker_sketch_sprint','ultimaker_method'] +user.curator:printers=['ultimaker_sketch','ultimaker_sketch_large','ultimaker_sketch_sprint','ultimaker_method','ultimaker_methodx','ultimaker_methodxl', 'ultimaker_s3'] [options] curaengine/*:enable_plugins=False