fix: expand script that corrects types after build

This commit is contained in:
Thijs Louisse 2024-11-05 20:56:33 +01:00 committed by Thijs Louisse
parent 8d178a548a
commit 0582868e41
4 changed files with 28 additions and 10 deletions

View file

@ -0,0 +1,5 @@
---
'@lion/ui': patch
---
expand script that corrects types after build

2
package-lock.json generated
View file

@ -28596,7 +28596,7 @@
},
"packages/ui": {
"name": "@lion/ui",
"version": "0.8.1",
"version": "0.8.3",
"license": "MIT",
"dependencies": {
"@bundled-es-modules/message-format": "^6.2.4",

View file

@ -21,9 +21,9 @@ export function supportsScopedRegistry() {
}
/**
* This file is combination of '@open-wc/scoped-elements@v3/lit-element.js' and '@open-wc/scoped-elements@v3/html-element.js'.
* Then on top of those, some code from '@open-wc/scoped-elements@v2' is brought to to make polyfill not mandatory.
* This can be a great help for ssr scenarios, allowing elements to be consumed without needing knowledge about internall
* This file is a combination of '@open-wc/scoped-elements@v3/lit-element.js' and '@open-wc/scoped-elements@v3/html-element.js'.
* To make the polyfill an opt-in, some code from '@open-wc/scoped-elements@v2' is added as well.
* This can be a great help for ssr scenarios, allowing elements to be consumed without needing knowledge about internal
* consumption.
* (N.B. at this point in time, this is limited to the scenario where there's one version of lion on the page).
*

View file

@ -11,23 +11,36 @@
*/
import fs from 'fs';
// @ts-expect-error
// eslint-disable-next-line import/no-extraneous-dependencies
import { globby } from 'globby';
import { optimisedGlob as globby } from 'providence-analytics/utils.js';
import { fileURLToPath } from 'url';
const packageRoot = fileURLToPath(new URL('../', import.meta.url));
async function alignLitImports() {
const fileNames = await globby([`${packageRoot}/dist-types`]);
async function alignLitImportsAndFixLocalPaths() {
const fileNames = await globby('dist-types/**', { cwd: packageRoot });
for (const fileName of fileNames) {
// eslint-disable-next-line no-await-in-loop
const contents = await fs.promises.readFile(fileName, 'utf-8');
const replaced = contents.replace(
const replaced1 = contents.replace(
/(LitElement.*\}) from "lit-element\/lit-element\.js/g,
'$1 from "lit',
);
fs.promises.writeFile(fileName, replaced);
// Now "unresolve" all paths that reference '../**/node_modules/**'
// These are outside of the bundled repo and therefore break in consuming context
// Also, they are resolved to their local context via the export map, this should be 'unwinded'
const re = /"(..\/)*?node_modules\/@open-wc\/scoped-elements\/types\.js"/g;
const replaced2 = replaced1.replace(re, '"@open-wc/scoped-elements/lit-element.js"');
// For now, we did a quick and dirty fix with specific knowledge of this repo,
// because we expect https://github.com/microsoft/TypeScript/issues/51622 to be solved in the future.
fs.promises.writeFile(fileName, replaced2);
}
}
alignLitImports();
alignLitImportsAndFixLocalPaths();