Compare commits

...

3 Commits

Author SHA1 Message Date
Nick Gerleman
1b9b878b9a Set version to 3.0.4 2024-04-17 00:02:16 -07:00
Nick Gerleman
866f503bde Don't run test validation off main branch (#1644)
Summary:
Pull Request resolved: https://github.com/facebook/yoga/pull/1644

Because Chrome behaviors can change

Reviewed By: cortinico

Differential Revision: D56088135

fbshipit-source-id: 7f760786dde061df9af034368e2184117e6e6846
2024-04-17 00:01:02 -07:00
Nick Gerleman
29f016c1ea Isolate Distributed JavaScript (#1645)
Summary:
Pull Request resolved: https://github.com/facebook/yoga/pull/1645

Right now we publish Yoga by transforming in-place, and rewriting the entrypoint to point to the generated vanilla JavaScript.

It is nice to include the original source, e.g. so that users can use sourcemaps when debugging, but putting these files on top of each other has been causing problems, like https://github.com/facebook/yoga/issues/1637#issuecomment-2049099690

This changes the packaging step to instead put all the outputs into a "dist" folder, and point the package entrypoints there. We still include original source for sourcemap usage.

Reviewed By: yungsters

Differential Revision: D56093470

fbshipit-source-id: ecd52dddd9040294aae66747cf1fdf48c7f602e7
2024-04-17 00:00:55 -07:00
6 changed files with 31 additions and 14 deletions

View File

@@ -5,7 +5,6 @@ on:
push:
branches:
- main
- 'release-*'
workflow_dispatch:
jobs:

View File

@@ -6,7 +6,7 @@
Pod::Spec.new do |spec|
spec.name = 'Yoga'
spec.version = '3.0.3'
spec.version = '3.0.4'
spec.license = { :type => 'MIT', :file => "LICENSE" }
spec.homepage = 'https://yogalayout.dev/'
spec.documentation_url = 'https://yogalayout.dev/docs'

View File

@@ -11,4 +11,4 @@ android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536M
VERSION_NAME=3.0.3
VERSION_NAME=3.0.4

View File

@@ -13,11 +13,11 @@ const {
logger,
jestTask,
option,
parallel,
series,
spawn,
task,
tscTask,
copyTask,
} = require('just-scripts');
const {existsSync} = require('fs');
@@ -58,16 +58,32 @@ task('prepack-package-json', async () => {
const packageJsonContents = await readFile(packageJsonPath);
const packageJson = JSON.parse(packageJsonContents.toString('utf-8'));
recursiveReplace(packageJson, /(.\/src\/.*)\.ts/, '$1.js');
packageJson.types = packageJson.main.replace(/(.\/src\/.*)\.js/, '$1.d.ts');
packageJson.main = packageJson.main.replace(
/^.\/src\/(.*)\.ts/,
'./dist/src/$1.js',
);
packageJson.types = packageJson.main.replace(/(.*)\.js/, '$1.d.ts');
recursiveReplace(
packageJson.exports,
/^.\/src\/(.*)\.ts/,
'./dist/src/$1.js',
);
await writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
});
task(
'prepack',
series(
parallel('build', tscTask({emitDeclarationOnly: true})),
babelTransformTask({dir: 'src'}),
'build',
copyTask({paths: ['binaries'], dest: 'dist/binaries'}),
tscTask({
emitDeclarationOnly: true,
rootDir: '.',
declarationDir: 'dist',
}),
babelTransformTask({src: 'src', dst: 'dist/src'}),
'prepack-package-json',
),
);
@@ -85,14 +101,14 @@ function recursiveReplace(obj, pattern, replacement) {
function babelTransformTask(opts) {
return () => {
const args = [
opts.dir,
opts.src,
'--source-maps',
'--out-dir',
opts.dir,
opts.dst,
'--extensions',
'.js,.cjs,.mjs,.ts,.cts,.mts',
];
logger.info(`Transforming "${path.resolve(opts.dir)}"`);
logger.info(`Transforming "${path.resolve(opts.src)}"`);
return spawn(node, [require.resolve('@babel/cli/bin/babel'), ...args], {
cwd: __dirname,

View File

@@ -1,6 +1,6 @@
{
"name": "yoga-layout",
"version": "3.0.3",
"version": "3.0.4",
"description": "An embeddable and performant flexbox layout engine with bindings for multiple languages",
"license": "MIT",
"author": "Meta Open Source",
@@ -11,12 +11,14 @@
},
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts",
"./load": "./src/load.ts"
},
"files": [
"binaries/**",
"dist/binaries/**",
"dist/src/**",
"src/**"
],
"scripts": {

View File

@@ -27,7 +27,7 @@
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-live": "^4.1.5",
"yoga-layout": "3.0.3"
"yoga-layout": "3.0.4"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.0.0",