Initial Commit

This commit is contained in:
2025-08-16 14:17:46 -04:00
commit 651a21a035
49 changed files with 1347 additions and 0 deletions

29
scripts/ci-build.sh Executable 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 ./${distDirectory}
ls ${distDirectory}
echo -e "\nci-build complete!"
exit 0

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

@@ -0,0 +1,83 @@
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
registryUrl="http://localhost:4873"
# registryUrl="https://registry-node.techniker.me"
packageVersionToDeploy=""
isBeta="false"
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"
bun run ci-build
removePackageJsonMember "devDependencies"
removePackageJsonMember "scripts"
echo "publishing to ${registryUrl}"
if [ "${isBeta}" == "true" ]; then
updatePackageJsonVersion "${packageVersionToDeploy}"
npm publish --registry "${registryUrl}" --tag beta
else
npm publish --registry "${registryUrl}"
fi

16
scripts/prepare-package-json.sh Executable file
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"