Fix process.env.version in browser-bundles (#206)

* Fix `process.env.version` in browser-bundles

- also fix tsdoc warns in mjs files

Co-authored-by: Fülöp Kovács <kovacs.fulop@gmail.com>
Co-authored-by: Cole Lawrence <cole@colelawrence.com>

* Change to `process.env.THEATRE_VERSION`

Co-authored-by: Fülöp Kovács <kovacs.fulop@gmail.com>
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
This commit is contained in:
Elliot 2022-06-09 13:05:25 -04:00 committed by GitHub
parent d7fc381137
commit bebf281517
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 39 additions and 24 deletions

View file

@ -73,6 +73,7 @@ module.exports = {
rules: {
'react/jsx-uses-react': 'error',
'react/jsx-uses-vars': 'error',
'tsdoc/syntax': 'off',
},
parser: 'espree',
parserOptions: {

View file

@ -109,7 +109,7 @@ const packagesToPublish = [
* @param {string} hash - Hash of the latest commit (or any other string)
* @returns {Promise<() => void>} - An async function that restores the package.json files to their original version
*/
async function assignVersions(workspacesListObjects, hash) {
async function writeVersionsToPackageJSONs(workspacesListObjects, hash) {
/**
* An array of functions each of which restores a certain package.json to its original state
* @type {Array<() => void>}
@ -181,7 +181,10 @@ async function releaseToVerdaccio() {
.filter(Boolean)
.map((x) => JSON.parse(x))
const restorePackages = await assignVersions(workspacesListObjects, version)
const restorePackages = await writeVersionsToPackageJSONs(
workspacesListObjects,
version,
)
process.on('SIGINT', async function cleanup(a) {
restorePackages()

View file

@ -4,6 +4,9 @@ import type {Plugin} from 'esbuild'
const definedGlobals = {
global: 'window',
'process.env.THEATRE_VERSION': JSON.stringify(
require('../package.json').version,
),
}
function createBundles(watch: boolean) {

View file

@ -2,7 +2,9 @@ import path = require('path')
import {build} from 'esbuild'
const definedGlobals = {
'process.env.version': JSON.stringify(require('../package.json').version),
'process.env.THEATRE_VERSION': JSON.stringify(
require('../package.json').version,
),
'process.env.NODE_ENV': JSON.stringify('production'),
}

View file

@ -61,13 +61,17 @@ function getNewVersionName(packageName, commitHash) {
}
/**
* Assigns the new versions to the packages
* Assigns the latest version names ({@link getNewVersionName}) to the packages' `package.json`s
*
* @param {{name: string, location: string}[]} workspacesListObjects - An Array of objects containing information about the workspaces
* @param {string} latestCommitHash - Hash of the latest commit
* @returns {Promise<Record<string, string>>} - A record of {[packageId]: assignedVersion}
*/
async function assignVersions(workspacesListObjects, latestCommitHash) {
async function writeVersionsToPackageJSONs(
workspacesListObjects,
latestCommitHash,
) {
/** @type {Record<string, string>} */
const assignedVersionByPackageName = {}
for (const workspaceData of workspacesListObjects) {
const pathToPackage = path.resolve(
@ -130,6 +134,11 @@ async function assignVersions(workspacesListObjects, latestCommitHash) {
const fakeMergeCommitHashLength = (await $`git log -1 --pretty=format:%h`)
.stdout.length
if (!process.env.GITHUB_SHA)
throw new Error(
'expected `process.env.GITHUB_SHA` to be defined but it was not',
)
const latestCommitHash = process.env.GITHUB_SHA.slice(
0,
fakeMergeCommitHashLength,
@ -142,7 +151,7 @@ async function assignVersions(workspacesListObjects, latestCommitHash) {
.filter(Boolean)
.map((x) => JSON.parse(x))
const assignedVersionByPackageName = await assignVersions(
const assignedVersionByPackageName = await writeVersionsToPackageJSONs(
workspacesListObjects,
latestCommitHash,
)

View file

@ -134,7 +134,7 @@ const packagesWhoseVersionsShouldBump = [
const skipTypescriptEmit = argv['skip-ts'] === true
console.log('Assigning versions')
await assignVersions(version)
await writeVersionsToPackageJSONs(version)
console.log('Building all packages')
await Promise.all(
@ -163,7 +163,7 @@ const packagesWhoseVersionsShouldBump = [
$.verbose = true
await assignVersions(version)
await writeVersionsToPackageJSONs(version)
console.log('Committing/tagging')
@ -188,7 +188,7 @@ const packagesWhoseVersionsShouldBump = [
})()
/** @param {string} monorepoVersion */
async function assignVersions(monorepoVersion) {
async function writeVersionsToPackageJSONs(monorepoVersion) {
for (const packagePathRelativeFromRoot of packagesWhoseVersionsShouldBump) {
const pathToPackage = path.resolve(
__dirname,

View file

@ -5,12 +5,7 @@
"checkJs": true,
"noEmit": true,
"resolveJsonModule": true,
"types": [
"zx"
]
"types": ["zx", "node"]
},
"include": [
"*.mjs",
"**/*.mjs",
]
}
"include": ["*.mjs", "**/*.mjs"]
}

View file

@ -18,7 +18,7 @@ export default class CoreBundle {
}
get version() {
return process.env.version
return process.env.THEATRE_VERSION
}
getBitsForStudio(studio: Studio, callback: (bits: CoreBits) => void) {

View file

@ -30,8 +30,10 @@ function registerCoreBundle() {
if (typeof window == 'undefined') return
// another core bundle may already be registered
// @ts-ignore ignore
const existingBundle = window[globalVariableNames.coreBundle]
const existingBundle: CoreBundle | undefined =
// @ts-ignore ignore
window[globalVariableNames.coreBundle]
if (typeof existingBundle !== 'undefined') {
if (

View file

@ -2,7 +2,7 @@ import path from 'path'
import {build} from 'esbuild'
export const definedGlobals = {
'process.env.version': JSON.stringify(
'process.env.THEATRE_VERSION': JSON.stringify(
require('../studio/package.json').version,
),
// json-touch-patch (an unmaintained package) reads this value. We patch it to just 'Set', becauce

View file

@ -11,7 +11,7 @@ interface NodeModule {
interface ProcessEnv {
NODE_ENV: 'development' | 'production' | 'test'
version: string
THEATRE_VERSION: string
}
declare module '*.svg' {

View file

@ -26,7 +26,7 @@ export default async function checkForUpdates() {
try {
const response = await fetch(
new Request(
`https://updates.theatrejs.com/updates/${process.env.version}`,
`https://updates.theatrejs.com/updates/${process.env.THEATRE_VERSION}`,
),
)
if (response.ok) {

View file

@ -104,7 +104,7 @@ const UpdateDot = styled.div`
border-radius: 50%;
`
const version: string = process.env.version ?? '0.4.0'
const version: string = process.env.THEATRE_VERSION ?? '0.4.0'
const untaggedVersion: string = version.match(/^[^\-]+/)![0]