Adding upstream version 4.6.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f3ad83a1a5
commit
a7fbe822ec
278 changed files with 30423 additions and 0 deletions
82
commitizen/providers/npm_provider.py
Normal file
82
commitizen/providers/npm_provider.py
Normal file
|
@ -0,0 +1,82 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any, ClassVar
|
||||
|
||||
from commitizen.providers.base_provider import VersionProvider
|
||||
|
||||
|
||||
class NpmProvider(VersionProvider):
|
||||
"""
|
||||
npm package.json and package-lock.json version management
|
||||
"""
|
||||
|
||||
indent: ClassVar[int] = 2
|
||||
package_filename = "package.json"
|
||||
lock_filename = "package-lock.json"
|
||||
shrinkwrap_filename = "npm-shrinkwrap.json"
|
||||
|
||||
@property
|
||||
def package_file(self) -> Path:
|
||||
return Path() / self.package_filename
|
||||
|
||||
@property
|
||||
def lock_file(self) -> Path:
|
||||
return Path() / self.lock_filename
|
||||
|
||||
@property
|
||||
def shrinkwrap_file(self) -> Path:
|
||||
return Path() / self.shrinkwrap_filename
|
||||
|
||||
def get_version(self) -> str:
|
||||
"""
|
||||
Get the current version from package.json
|
||||
"""
|
||||
package_document = json.loads(self.package_file.read_text())
|
||||
return self.get_package_version(package_document)
|
||||
|
||||
def set_version(self, version: str) -> None:
|
||||
package_document = self.set_package_version(
|
||||
json.loads(self.package_file.read_text()), version
|
||||
)
|
||||
self.package_file.write_text(
|
||||
json.dumps(package_document, indent=self.indent) + "\n"
|
||||
)
|
||||
if self.lock_file.exists():
|
||||
lock_document = self.set_lock_version(
|
||||
json.loads(self.lock_file.read_text()), version
|
||||
)
|
||||
self.lock_file.write_text(
|
||||
json.dumps(lock_document, indent=self.indent) + "\n"
|
||||
)
|
||||
if self.shrinkwrap_file.exists():
|
||||
shrinkwrap_document = self.set_shrinkwrap_version(
|
||||
json.loads(self.shrinkwrap_file.read_text()), version
|
||||
)
|
||||
self.shrinkwrap_file.write_text(
|
||||
json.dumps(shrinkwrap_document, indent=self.indent) + "\n"
|
||||
)
|
||||
|
||||
def get_package_version(self, document: dict[str, Any]) -> str:
|
||||
return document["version"] # type: ignore
|
||||
|
||||
def set_package_version(
|
||||
self, document: dict[str, Any], version: str
|
||||
) -> dict[str, Any]:
|
||||
document["version"] = version
|
||||
return document
|
||||
|
||||
def set_lock_version(
|
||||
self, document: dict[str, Any], version: str
|
||||
) -> dict[str, Any]:
|
||||
document["version"] = version
|
||||
document["packages"][""]["version"] = version
|
||||
return document
|
||||
|
||||
def set_shrinkwrap_version(
|
||||
self, document: dict[str, Any], version: str
|
||||
) -> dict[str, Any]:
|
||||
document["version"] = version
|
||||
document["packages"][""]["version"] = version
|
||||
return document
|
Loading…
Add table
Add a link
Reference in a new issue