@plumeria/utils 19.1.6 → 19.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/parser.d.ts +7 -0
- package/dist/parser.js +27 -0
- package/dist/transform.js +15 -15
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { CSSObject, StaticTable, KeyframesHashTable, ViewTransitionHashTable, CreateHashTable, CreateFunctionTable, CreateThemeHashTable, CreateStaticHashTable, } from './types';
|
|
2
|
-
export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, unwrapExpression, extractOndemandStyles, deepMerge, scanAll, resolveFileError, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
|
|
2
|
+
export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, resolveOriginError, unwrapExpression, extractOndemandStyles, deepMerge, scanAll, resolveFileError, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
|
|
3
3
|
export type { StyleRecord } from './create';
|
|
4
4
|
export { getStyleRecords } from './create';
|
|
5
5
|
export type { NamedParam, StyleFunction, StyleFunctions, DynamicStyleTables, DynamicStyleResult, } from './dynamicKey';
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformSource = exports.assertPropertyPolicy = exports.resolvePropertyPolicy = exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.optimizer = exports.resolveImportPath = exports.themeHashOf = exports.getStateWeights = exports.getPseudoElement = exports.getSpecificity = exports.resolveDynamicStyle = exports.applyVarFallback = exports.splitVarByUnit = exports.isUnitlessProp = exports.styleFunctionsOf = exports.getStyleRecords = exports.resolveThemeSelector = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.resolveFileError = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.unwrapExpression = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
|
|
3
|
+
exports.transformSource = exports.assertPropertyPolicy = exports.resolvePropertyPolicy = exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.optimizer = exports.resolveImportPath = exports.themeHashOf = exports.getStateWeights = exports.getPseudoElement = exports.getSpecificity = exports.resolveDynamicStyle = exports.applyVarFallback = exports.splitVarByUnit = exports.isUnitlessProp = exports.styleFunctionsOf = exports.getStyleRecords = exports.resolveThemeSelector = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.resolveFileError = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.unwrapExpression = exports.resolveOriginError = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
|
|
4
4
|
var parser_1 = require("./parser");
|
|
5
5
|
Object.defineProperty(exports, "objectExpressionToObject", { enumerable: true, get: function () { return parser_1.objectExpressionToObject; } });
|
|
6
6
|
Object.defineProperty(exports, "collectLocalConsts", { enumerable: true, get: function () { return parser_1.collectLocalConsts; } });
|
|
7
7
|
Object.defineProperty(exports, "traverse", { enumerable: true, get: function () { return parser_1.traverse; } });
|
|
8
8
|
Object.defineProperty(exports, "t", { enumerable: true, get: function () { return parser_1.t; } });
|
|
9
9
|
Object.defineProperty(exports, "getRootIdentifier", { enumerable: true, get: function () { return parser_1.getRootIdentifier; } });
|
|
10
|
+
Object.defineProperty(exports, "resolveOriginError", { enumerable: true, get: function () { return parser_1.resolveOriginError; } });
|
|
10
11
|
Object.defineProperty(exports, "unwrapExpression", { enumerable: true, get: function () { return parser_1.unwrapExpression; } });
|
|
11
12
|
Object.defineProperty(exports, "extractOndemandStyles", { enumerable: true, get: function () { return parser_1.extractOndemandStyles; } });
|
|
12
13
|
Object.defineProperty(exports, "deepMerge", { enumerable: true, get: function () { return parser_1.deepMerge; } });
|
package/dist/parser.d.ts
CHANGED
|
@@ -2,6 +2,13 @@ import type { CSSObject, Tables, StaticTable, KeyframesHashTable, ViewTransition
|
|
|
2
2
|
import type { Module, Expression, CallExpression, Identifier, KeyValueProperty, StringLiteral, NumericLiteral, BooleanLiteral, ObjectExpression, MemberExpression, TemplateLiteral, BinaryExpression, UnaryExpression, ParenthesisExpression, VariableDeclaration, VariableDeclarator, ExportDeclaration, ConditionalExpression, JSXExpression, ArrowFunctionExpression, FunctionExpression } from '@swc/core';
|
|
3
3
|
export declare function unwrapExpression(node: any): any;
|
|
4
4
|
export declare const getRootIdentifier: (node: Expression) => string | null;
|
|
5
|
+
export declare function resolveOriginError(node: Expression, rootName: string | null, localImports: Record<string, {
|
|
6
|
+
actualPath: string;
|
|
7
|
+
importedName: string;
|
|
8
|
+
}>): {
|
|
9
|
+
filePath: string;
|
|
10
|
+
message: string;
|
|
11
|
+
} | undefined;
|
|
5
12
|
export declare function resolveComponentKey(nameNode: any, filePath: string, localImports: Record<string, {
|
|
6
13
|
actualPath: string;
|
|
7
14
|
importedName: string;
|
package/dist/parser.js
CHANGED
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.t = exports.getRootIdentifier = void 0;
|
|
37
37
|
exports.unwrapExpression = unwrapExpression;
|
|
38
|
+
exports.resolveOriginError = resolveOriginError;
|
|
38
39
|
exports.resolveComponentKey = resolveComponentKey;
|
|
39
40
|
exports.traverse = traverse;
|
|
40
41
|
exports.objectExpressionToObject = objectExpressionToObject;
|
|
@@ -98,6 +99,32 @@ const getRootIdentifier = (node) => {
|
|
|
98
99
|
return null;
|
|
99
100
|
};
|
|
100
101
|
exports.getRootIdentifier = getRootIdentifier;
|
|
102
|
+
const getNamespaceMember = (node, rootName) => {
|
|
103
|
+
node = unwrapExpression(node);
|
|
104
|
+
if (exports.t.isCallExpression(node)) {
|
|
105
|
+
const callee = node.callee;
|
|
106
|
+
if (callee.type === 'Super' || callee.type === 'Import')
|
|
107
|
+
return null;
|
|
108
|
+
return getNamespaceMember(callee, rootName);
|
|
109
|
+
}
|
|
110
|
+
if (exports.t.isMemberExpression(node)) {
|
|
111
|
+
const object = unwrapExpression(node.object);
|
|
112
|
+
if (exports.t.isIdentifier(object) && object.value === rootName) {
|
|
113
|
+
return exports.t.isIdentifier(node.property) ? node.property.value : null;
|
|
114
|
+
}
|
|
115
|
+
return getNamespaceMember(object, rootName);
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
};
|
|
119
|
+
function resolveOriginError(node, rootName, localImports) {
|
|
120
|
+
const origin = rootName ? localImports[rootName] : undefined;
|
|
121
|
+
if (!origin)
|
|
122
|
+
return undefined;
|
|
123
|
+
const exportName = origin.importedName === '*' && rootName
|
|
124
|
+
? (getNamespaceMember(node, rootName) ?? '*')
|
|
125
|
+
: origin.importedName;
|
|
126
|
+
return resolveFileError(origin.actualPath, exportName);
|
|
127
|
+
}
|
|
101
128
|
function resolveComponentKey(nameNode, filePath, localImports) {
|
|
102
129
|
if (nameNode?.type === 'Identifier') {
|
|
103
130
|
const name = nameNode.value;
|
package/dist/transform.js
CHANGED
|
@@ -193,10 +193,7 @@ const transformSource = async (env) => {
|
|
|
193
193
|
localCreateStyles[rootId].type !== 'constant') ||
|
|
194
194
|
mergedCreateTable[rootId] !== undefined);
|
|
195
195
|
if (!isPlumeriaStyle) {
|
|
196
|
-
const
|
|
197
|
-
const failure = origin
|
|
198
|
-
? (0, parser_1.resolveFileError)(origin.actualPath, origin.importedName)
|
|
199
|
-
: undefined;
|
|
196
|
+
const failure = (0, parser_1.resolveOriginError)(node, rootId, localImports);
|
|
200
197
|
if (failure) {
|
|
201
198
|
throwCompilationError(`Plumeria: ${failure.message} (${path.basename(failure.filePath)})`);
|
|
202
199
|
}
|
|
@@ -2013,21 +2010,24 @@ const transformSource = async (env) => {
|
|
|
2013
2010
|
if (node.name.type !== 'Identifier')
|
|
2014
2011
|
return;
|
|
2015
2012
|
const attrName = node.name.value;
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
break;
|
|
2025
|
-
}
|
|
2013
|
+
let compKey = null;
|
|
2014
|
+
for (const [, val] of jsxOpeningElementMap) {
|
|
2015
|
+
const found = val.attributes
|
|
2016
|
+
.filter((a) => a.type === 'JSXAttribute')
|
|
2017
|
+
.find((a) => a.span.start === node.span.start);
|
|
2018
|
+
if (found) {
|
|
2019
|
+
compKey = val.compKey;
|
|
2020
|
+
break;
|
|
2026
2021
|
}
|
|
2022
|
+
}
|
|
2023
|
+
const relayed = compKey
|
|
2024
|
+
? scannedTables.componentPropsTable?.[compKey]?.[attrName]
|
|
2025
|
+
: undefined;
|
|
2026
|
+
if (attrName !== styleProp || relayed) {
|
|
2027
2027
|
if (compKey) {
|
|
2028
2028
|
if (node.value?.type === 'JSXExpressionContainer')
|
|
2029
2029
|
assertNoStyleArraySpread(node.value.expression);
|
|
2030
|
-
const list =
|
|
2030
|
+
const list = relayed;
|
|
2031
2031
|
if (list &&
|
|
2032
2032
|
node.value &&
|
|
2033
2033
|
node.value.type === 'JSXExpressionContainer') {
|