@plumeria/utils 19.3.0 → 19.4.0
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/constValue.d.ts +1 -0
- package/dist/constValue.js +139 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveExportValue(filePath: string, exportName: string): unknown;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveExportValue = resolveExportValue;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const core_1 = require("@swc/core");
|
|
39
|
+
const parser_1 = require("./parser");
|
|
40
|
+
const resolver_1 = require("./resolver");
|
|
41
|
+
const constFileCache = new Map();
|
|
42
|
+
function readConstFile(filePath) {
|
|
43
|
+
const { mtimeMs } = fs.statSync(filePath);
|
|
44
|
+
const cached = constFileCache.get(filePath);
|
|
45
|
+
if (cached && cached.mtimeMs === mtimeMs)
|
|
46
|
+
return cached;
|
|
47
|
+
const ast = (0, core_1.parseSync)(fs.readFileSync(filePath, 'utf8'), {
|
|
48
|
+
syntax: 'typescript',
|
|
49
|
+
tsx: true,
|
|
50
|
+
target: 'es2022',
|
|
51
|
+
});
|
|
52
|
+
const values = { ...(0, parser_1.collectLocalConsts)(ast) };
|
|
53
|
+
const imports = {};
|
|
54
|
+
const createStaticNames = new Set();
|
|
55
|
+
const namespaces = new Set();
|
|
56
|
+
for (const node of ast.body) {
|
|
57
|
+
if (node.type !== 'ImportDeclaration')
|
|
58
|
+
continue;
|
|
59
|
+
const source = node.source.value;
|
|
60
|
+
for (const specifier of node.specifiers) {
|
|
61
|
+
const local = specifier.local.value;
|
|
62
|
+
const importedName = specifier.type === 'ImportSpecifier'
|
|
63
|
+
? (specifier.imported?.value ?? local)
|
|
64
|
+
: specifier.type === 'ImportDefaultSpecifier'
|
|
65
|
+
? 'default'
|
|
66
|
+
: '*';
|
|
67
|
+
imports[local] = { source, importedName };
|
|
68
|
+
if (source !== '@plumeria/core')
|
|
69
|
+
continue;
|
|
70
|
+
if (importedName === 'createStatic')
|
|
71
|
+
createStaticNames.add(local);
|
|
72
|
+
else if (importedName === '*' || importedName === 'default')
|
|
73
|
+
namespaces.add(local);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
for (const [name, node] of (0, parser_1.collectLocalConstNodes)(ast)) {
|
|
77
|
+
const init = (0, parser_1.unwrapExpression)(node);
|
|
78
|
+
if (!parser_1.t.isCallExpression(init))
|
|
79
|
+
continue;
|
|
80
|
+
const callee = init.callee;
|
|
81
|
+
const isCreateStatic = (parser_1.t.isIdentifier(callee) && createStaticNames.has(callee.value)) ||
|
|
82
|
+
(parser_1.t.isMemberExpression(callee) &&
|
|
83
|
+
parser_1.t.isIdentifier(callee.object) &&
|
|
84
|
+
namespaces.has(callee.object.value) &&
|
|
85
|
+
parser_1.t.isIdentifier(callee.property) &&
|
|
86
|
+
callee.property.value === 'createStatic');
|
|
87
|
+
const argument = (0, parser_1.unwrapExpression)(init.arguments[0]?.expression);
|
|
88
|
+
if (!isCreateStatic || !parser_1.t.isObjectExpression(argument))
|
|
89
|
+
continue;
|
|
90
|
+
try {
|
|
91
|
+
values[name] = (0, parser_1.objectExpressionToObject)(argument, values, {}, {}, {}, {}, {}, {}, {});
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
for (const node of ast.body) {
|
|
98
|
+
if (node.type !== 'ExportDefaultExpression')
|
|
99
|
+
continue;
|
|
100
|
+
const expression = (0, parser_1.unwrapExpression)(node.expression);
|
|
101
|
+
if (parser_1.t.isStringLiteral(expression) || parser_1.t.isNumericLiteral(expression)) {
|
|
102
|
+
values.default = expression.value;
|
|
103
|
+
}
|
|
104
|
+
else if (parser_1.t.isIdentifier(expression) &&
|
|
105
|
+
Object.hasOwn(values, expression.value)) {
|
|
106
|
+
values.default = values[expression.value];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const file = { mtimeMs, values, imports };
|
|
110
|
+
constFileCache.set(filePath, file);
|
|
111
|
+
return file;
|
|
112
|
+
}
|
|
113
|
+
function resolveExportValue(filePath, exportName) {
|
|
114
|
+
const visited = new Set();
|
|
115
|
+
let name = exportName;
|
|
116
|
+
while (!visited.has(`${filePath}-${name}`)) {
|
|
117
|
+
visited.add(`${filePath}-${name}`);
|
|
118
|
+
const site = (0, parser_1.resolveExport)(filePath, name) ?? { filePath, localName: name };
|
|
119
|
+
let file;
|
|
120
|
+
try {
|
|
121
|
+
file = readConstFile(site.filePath);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
if (Object.hasOwn(file.values, site.localName)) {
|
|
127
|
+
return file.values[site.localName];
|
|
128
|
+
}
|
|
129
|
+
const imported = file.imports[site.localName];
|
|
130
|
+
if (!imported || imported.importedName === '*')
|
|
131
|
+
return undefined;
|
|
132
|
+
const actualPath = (0, resolver_1.resolveImportPath)(imported.source, site.filePath);
|
|
133
|
+
if (!actualPath)
|
|
134
|
+
return undefined;
|
|
135
|
+
filePath = actualPath;
|
|
136
|
+
name = imported.importedName;
|
|
137
|
+
}
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { CSSObject, StaticTable, KeyframesHashTable, ViewTransitionHashTable, CreateHashTable, CreateFunctionTable, CreateThemeHashTable, CreateStaticHashTable, } from './types';
|
|
2
2
|
export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, resolveOriginError, unwrapExpression, extractOndemandStyles, appendSheet, deepMerge, scanAll, scanOverlay, fileTableKeys, resolveFileError, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
|
|
3
|
+
export { resolveExportValue } from './constValue';
|
|
3
4
|
export type { StyleRecord } from './create';
|
|
4
5
|
export { getStyleRecords } from './create';
|
|
5
6
|
export type { NamedParam, StyleFunction, StyleFunctions, DynamicStyleTables, DynamicStyleResult, } from './dynamicKey';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.needsCompile = 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.fileTableKeys = exports.scanOverlay = exports.scanAll = exports.deepMerge = exports.appendSheet = exports.extractOndemandStyles = exports.unwrapExpression = exports.resolveOriginError = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
|
|
3
|
+
exports.needsCompile = 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.resolveExportValue = exports.resolveThemeSelector = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.resolveFileError = exports.fileTableKeys = exports.scanOverlay = exports.scanAll = exports.deepMerge = exports.appendSheet = 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; } });
|
|
@@ -20,6 +20,8 @@ Object.defineProperty(exports, "getFileDependencies", { enumerable: true, get: f
|
|
|
20
20
|
Object.defineProperty(exports, "resolveExport", { enumerable: true, get: function () { return parser_1.resolveExport; } });
|
|
21
21
|
Object.defineProperty(exports, "resolveComponentKey", { enumerable: true, get: function () { return parser_1.resolveComponentKey; } });
|
|
22
22
|
Object.defineProperty(exports, "resolveThemeSelector", { enumerable: true, get: function () { return parser_1.resolveThemeSelector; } });
|
|
23
|
+
var constValue_1 = require("./constValue");
|
|
24
|
+
Object.defineProperty(exports, "resolveExportValue", { enumerable: true, get: function () { return constValue_1.resolveExportValue; } });
|
|
23
25
|
var create_1 = require("./create");
|
|
24
26
|
Object.defineProperty(exports, "getStyleRecords", { enumerable: true, get: function () { return create_1.getStyleRecords; } });
|
|
25
27
|
var dynamicKey_1 = require("./dynamicKey");
|