diff --git a/packages/react-tokens/package.json b/packages/react-tokens/package.json index 48d292f5be8..d785e3dc352 100644 --- a/packages/react-tokens/package.json +++ b/packages/react-tokens/package.json @@ -25,6 +25,7 @@ }, "homepage": "https://github.com/patternfly/patternfly-react#readme", "scripts": { + "build:single:packages": "node ../../scripts/build-single-packages.js --config single-packages.config.json", "generate": "yarn clean && node scripts/writeTokens.js", "clean": "rimraf dist" }, diff --git a/packages/react-tokens/single-packages.config.json b/packages/react-tokens/single-packages.config.json new file mode 100644 index 00000000000..e680848bb21 --- /dev/null +++ b/packages/react-tokens/single-packages.config.json @@ -0,0 +1,5 @@ +{ + "packageName": "@patternfly/react-tokens", + "moduleGlob": "/dist/esm/*.js", + "exclude": [] +} diff --git a/packages/transformer-dynamic-imports/index.ts b/packages/transformer-dynamic-imports/index.ts index 27719880e3d..89bdc3a2133 100644 --- a/packages/transformer-dynamic-imports/index.ts +++ b/packages/transformer-dynamic-imports/index.ts @@ -86,7 +86,7 @@ const transformer:ts.TransformerFactory = context => sourceFile = const { factory } = context // handles relative imports import {foo} from '@patternfly/react-icons' // the regex has extra '$ condition - if(ts.isImportDeclaration(node) && /@patternfly\/react-(core|icons)'$/.test(node.moduleSpecifier.getText())) { + if(ts.isImportDeclaration(node) && /@patternfly\/react-(core|icons|tokens)'$/.test(node.moduleSpecifier.getText())) { if(node.moduleSpecifier.getText().includes('react-icons')) { const importNames: string[] = [] // get all named imports @@ -105,7 +105,7 @@ const transformer:ts.TransformerFactory = context => sourceFile = } // handle absolute icons import paths - if(ts.isImportDeclaration(node) && /@patternfly\/react-icons/.test(node.moduleSpecifier.getText())) { + if(ts.isImportDeclaration(node) && /@patternfly\/react-(icons|tokens)/.test(node.moduleSpecifier.getText())) { if (ts.isImportDeclaration(node) && /@patternfly\/.*\/dist\/esm/.test(node.moduleSpecifier.getText())) { return factory.updateImportDeclaration( node, @@ -121,6 +121,21 @@ const transformer:ts.TransformerFactory = context => sourceFile = } } + + // handle any uncaught esm imports + if (ts.isImportDeclaration(node) && /@patternfly\/.*\/dist\/esm/.test(node.moduleSpecifier.getText()) && context.getCompilerOptions().module === 1) { + return factory.updateImportDeclaration( + node, + node.decorators, + node.modifiers, + node.importClause, + factory.createStringLiteral( + node.moduleSpecifier.getFullText().replace(/"/g, '').replace(/'/g, '').replace(/dist\/esm/, 'dist/js').trim(), + true + ), + undefined + ) + } return ts.visitEachChild(node, visitor, context); }