Skip to content

Commit

Permalink
fix: expand script that corrects types after build
Browse files Browse the repository at this point in the history
  • Loading branch information
tlouisse committed Nov 6, 2024
1 parent f393e6d commit 3a6e52c
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 9 deletions.
5 changes: 5 additions & 0 deletions .changeset/happy-toes-yell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@lion/ui': patch
---

expand script that corrects types after build
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions packages/ui/components/core/src/ScopedElementsMixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -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).
*
Expand Down
22 changes: 17 additions & 5 deletions packages/ui/scripts/types-correct-after-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,35 @@
*/

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() {
async function alignLitImportsAndFixLocalPaths() {
const fileNames = await globby([`${packageRoot}/dist-types`]);
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();

0 comments on commit 3a6e52c

Please sign in to comment.