Initial Commit

This commit is contained in:
2025-08-16 15:12:58 -04:00
commit ea8fd991a0
25 changed files with 656 additions and 0 deletions

29
scripts/ci-build.sh Normal file
View File

@@ -0,0 +1,29 @@
#! /usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
distDirectory=${DIST_DIRECTORY:-"dist"}
rm -rf ${distDirectory}
bun run lint
bun run build:node
bun run build:browser
bun run build:types
bun run build:prepare-package-json
echo "Copying [.npmrc] to [${distDirectory}]"
cp .npmrc ./${distDirectory}
echo "Copying [.nvmrc] to [${distDirectory}]"
cp .nvmrc ./${distDirectory}
echo "Copying [README.md] to [${distDirectory}]"
cp README.md ./${distDirectory}
ls ${distDirectory}
echo -e "\nci-build complete!"
exit 0

0
scripts/ci-deploy.h Normal file
View File

81
scripts/ci-deploy.sh Executable file
View File

@@ -0,0 +1,81 @@
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
registryUrl="https://registry-node.techniker.me"
packageVersionToDeploy=""
isBeta="true"
while [[ "${#}" -gt 0 ]]; do
case "${1}" in
--beta)
isBeta="${2}"
shift 2
;;
--version)
packageVersionToDeploy="${2}"
shift 2
;;
*)
echo "Unknown option [${1}]"
exit "${LINENO}"
;;
esac
done
function cleanDirectory {
local directory="${1}"
if [ -d "${directory}" ]; then
echo "Deleting [${directory}]..."
rm -rf "${directory}"
fi
}
function removePackageJsonMember {
local packageJsonPath="dist/package.json"
local memberToRemove="${1}"
if [ -f "${packageJsonPath}" ]; then
echo "Removing [${memberToRemove}] from the dist/package.json"
jq "del(.${memberToRemove})" "${packageJsonPath}" > tmp.$$.json && mv tmp.$$.json "$packageJsonPath"
else
echo "Error: [${packageJsonPath}] not found."
fi
}
function updatePackageJsonVersion {
local versionToUpdate="${1}"
if [ isBeta == "true" ]; then
echo "Version to update [${versionToUpdate}] Contains beta"
echo "Updating package.json version to [${versionToUpdate}]"
local packageJsonVersion=$(jq -r '.version' package.json)
sed -i "s/\"version\": \"${packageJsonVersion}\"/\"version\": \"${versionToUpdate}\"/" dist/package.json
fi
}
echo "Deploying [${packageVersionToDeploy}]";
echo "isBeta [${isBeta}]"
cleanDirectory "dist"
npm run ci-build
removePackageJsonMember "devDependencies"
removePackageJsonMember "scripts"
if [ "${isBeta}" == "true" ]; then
updatePackageJsonVersion "${packageVersionToDeploy}"
npm publish --registry "${registryUrl}" --tag beta
else
npm publish --registry "${registryUrl}"
fi

View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
distDirectory=${DIST_DIRECTORY:-"dist"}
packageJsonPath=${PACKAGE_JSON_PATH:-"package.json"}
if [ ! -d "${distDirectory}" ]; then
echo "Unable to prepare package.json, [${distDirectory}] not found"
exit $LINENO
fi
echo "Preparing [package.json] to [${distDirectory}]"
jq '{name, version, author, type, types, exports, files, publishConfig}' "${packageJsonPath}" > "${distDirectory}/package.json"

37
scripts/version-bump.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
# Check if a parameter was provided
if [ -z "$1" ]; then
echo "Usage: ./version-bump.sh [major|minor|patch]"
exit 1
fi
# Read current version
current_version=$(node -p "require('./package.json').version")
IFS='.' read -r major minor patch <<< "$current_version"
# Update version based on parameter
case "$1" in
"major")
new_version="$((major + 1)).0.0"
;;
"minor")
new_version="$major.$((minor + 1)).0"
;;
"patch")
new_version="$major.$minor.$((patch + 1))"
;;
*)
echo "Invalid parameter. Use: major, minor, or patch"
exit 1
;;
esac
# Update package.json
node -e "
const pkg = require('./package.json');
pkg.version = '$new_version';
require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
"
echo "Version bumped from $current_version to $new_version"