@jesscss/plugin-less-compat 2.0.0-alpha.6 → 2.0.0-alpha.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/README.md +3 -2
- package/lib/index.cjs +844 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +800 -10
- package/lib/less-adapter.cjs +216 -0
- package/lib/less-adapter.js +181 -0
- package/lib/less-compat-structures.cjs +378 -0
- package/lib/less-compat-structures.d.ts +2 -2
- package/lib/less-compat-structures.js +367 -512
- package/lib/nodes/at-rule.d.ts +2 -2
- package/lib/nodes/attribute-selector.d.ts +2 -2
- package/lib/nodes/call.d.ts +2 -2
- package/lib/nodes/color.d.ts +2 -1
- package/lib/nodes/combinator.d.ts +2 -1
- package/lib/nodes/comment.d.ts +2 -1
- package/lib/nodes/condition.d.ts +2 -2
- package/lib/nodes/declaration.d.ts +2 -2
- package/lib/nodes/dimension.d.ts +2 -1
- package/lib/nodes/expression.d.ts +2 -2
- package/lib/nodes/extend.d.ts +2 -1
- package/lib/nodes/import.d.ts +2 -2
- package/lib/nodes/keyword.d.ts +2 -1
- package/lib/nodes/list.d.ts +3 -2
- package/lib/nodes/mixin.d.ts +2 -2
- package/lib/nodes/negative.d.ts +2 -2
- package/lib/nodes/operation.d.ts +2 -2
- package/lib/nodes/paren.d.ts +2 -2
- package/lib/nodes/quoted.d.ts +2 -1
- package/lib/nodes/reference.d.ts +2 -1
- package/lib/nodes/ruleset.d.ts +2 -2
- package/lib/nodes/selector.d.ts +2 -2
- package/lib/nodes/sequence.d.ts +2 -2
- package/lib/nodes/url.d.ts +2 -1
- package/lib/nodes/var-declaration.d.ts +2 -2
- package/lib/plugin.d.ts +44 -16
- package/lib/transform/adapter.d.ts +9 -11
- package/lib/transform/index.cjs +13 -0
- package/lib/transform/index.d.ts +1 -1
- package/lib/transform/index.js +3 -8
- package/lib/transform/less-adapter.d.ts +29 -0
- package/lib/transform.cjs +1045 -0
- package/lib/transform.js +1015 -0
- package/lib/types.d.ts +153 -28
- package/package.json +6 -9
- package/lib/index.js.map +0 -1
- package/lib/less-compat-structures.js.map +0 -1
- package/lib/nodes/at-rule.js +0 -21
- package/lib/nodes/at-rule.js.map +0 -1
- package/lib/nodes/attribute-selector.js +0 -18
- package/lib/nodes/attribute-selector.js.map +0 -1
- package/lib/nodes/call.js +0 -27
- package/lib/nodes/call.js.map +0 -1
- package/lib/nodes/color.js +0 -23
- package/lib/nodes/color.js.map +0 -1
- package/lib/nodes/combinator.js +0 -7
- package/lib/nodes/combinator.js.map +0 -1
- package/lib/nodes/comment.js +0 -9
- package/lib/nodes/comment.js.map +0 -1
- package/lib/nodes/condition.js +0 -19
- package/lib/nodes/condition.js.map +0 -1
- package/lib/nodes/declaration.js +0 -38
- package/lib/nodes/declaration.js.map +0 -1
- package/lib/nodes/dimension.js +0 -9
- package/lib/nodes/dimension.js.map +0 -1
- package/lib/nodes/expression.js +0 -16
- package/lib/nodes/expression.js.map +0 -1
- package/lib/nodes/extend.js +0 -18
- package/lib/nodes/extend.js.map +0 -1
- package/lib/nodes/import.js +0 -22
- package/lib/nodes/import.js.map +0 -1
- package/lib/nodes/index.js +0 -308
- package/lib/nodes/index.js.map +0 -1
- package/lib/nodes/keyword.js +0 -8
- package/lib/nodes/keyword.js.map +0 -1
- package/lib/nodes/list.js +0 -61
- package/lib/nodes/list.js.map +0 -1
- package/lib/nodes/mixin.js +0 -22
- package/lib/nodes/mixin.js.map +0 -1
- package/lib/nodes/negative.js +0 -13
- package/lib/nodes/negative.js.map +0 -1
- package/lib/nodes/operation.js +0 -22
- package/lib/nodes/operation.js.map +0 -1
- package/lib/nodes/paren.js +0 -13
- package/lib/nodes/paren.js.map +0 -1
- package/lib/nodes/quoted.js +0 -23
- package/lib/nodes/quoted.js.map +0 -1
- package/lib/nodes/reference.js +0 -44
- package/lib/nodes/reference.js.map +0 -1
- package/lib/nodes/ruleset.js +0 -67
- package/lib/nodes/ruleset.js.map +0 -1
- package/lib/nodes/selector.js +0 -158
- package/lib/nodes/selector.js.map +0 -1
- package/lib/nodes/sequence.js +0 -56
- package/lib/nodes/sequence.js.map +0 -1
- package/lib/nodes/url.js +0 -13
- package/lib/nodes/url.js.map +0 -1
- package/lib/nodes/var-declaration.js +0 -21
- package/lib/nodes/var-declaration.js.map +0 -1
- package/lib/plugin-utils.js +0 -100
- package/lib/plugin-utils.js.map +0 -1
- package/lib/plugin.js +0 -1026
- package/lib/plugin.js.map +0 -1
- package/lib/transform/adapter.js +0 -111
- package/lib/transform/adapter.js.map +0 -1
- package/lib/transform/from-less.js +0 -170
- package/lib/transform/from-less.js.map +0 -1
- package/lib/transform/index.js.map +0 -1
- package/lib/transform/proxy.d.ts +0 -32
- package/lib/transform/proxy.js +0 -138
- package/lib/transform/proxy.js.map +0 -1
- package/lib/transform/to-less.js +0 -130
- package/lib/transform/to-less.js.map +0 -1
- package/lib/transform/type-map.js +0 -105
- package/lib/transform/type-map.js.map +0 -1
- package/lib/types.js +0 -5
- package/lib/types.js.map +0 -1
package/lib/nodes/selector.js
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { ComplexSelector, CompoundSelector, BasicSelector, SelectorList, Combinator, Ampersand, Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { createFromAdapter } from '../transform/adapter.js';
|
|
5
|
-
/**
|
|
6
|
-
* Flatten a hierarchical Jess selector into Less's flat Element array.
|
|
7
|
-
* Less expects: Element[] where each Element has { combinator, value }
|
|
8
|
-
* Jess now models complex selectors as an interleaved stream of selector
|
|
9
|
-
* components and explicit combinators. Less still expects flat Elements with
|
|
10
|
-
* the combinator attached to the following selector component.
|
|
11
|
-
*/
|
|
12
|
-
function flattenSelectorToElements(selector, cache) {
|
|
13
|
-
const elements = [];
|
|
14
|
-
if (selector instanceof SelectorList) {
|
|
15
|
-
const selectorListValue = selector.get('value');
|
|
16
|
-
if (selectorListValue.length > 0 && selectorListValue[0]) {
|
|
17
|
-
return flattenSelectorToElements(selectorListValue[0], cache);
|
|
18
|
-
}
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
if (selector instanceof ComplexSelector) {
|
|
22
|
-
const components = selector.get('value');
|
|
23
|
-
let nextCombinatorValue = '';
|
|
24
|
-
for (let i = 0; i < components.length; i++) {
|
|
25
|
-
const component = components[i];
|
|
26
|
-
if (!component) {
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
if (component instanceof Combinator) {
|
|
30
|
-
nextCombinatorValue = component.value;
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
if (component instanceof CompoundSelector) {
|
|
34
|
-
const compoundValue = component.get('value');
|
|
35
|
-
for (let j = 0; j < compoundValue.length; j++) {
|
|
36
|
-
const simple = compoundValue[j];
|
|
37
|
-
if (!simple) {
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
const elementCombinator = createLessCombinator(j === 0 ? nextCombinatorValue : '');
|
|
41
|
-
elements.push(createElementProxy(simple, elementCombinator, cache));
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else if (component instanceof BasicSelector || component instanceof Ampersand) {
|
|
45
|
-
const elementCombinator = createLessCombinator(nextCombinatorValue);
|
|
46
|
-
elements.push(createElementProxy(component, elementCombinator, cache));
|
|
47
|
-
}
|
|
48
|
-
else if (component instanceof Node) {
|
|
49
|
-
const elementCombinator = createLessCombinator(nextCombinatorValue);
|
|
50
|
-
elements.push(createElementProxy(component, elementCombinator, cache));
|
|
51
|
-
}
|
|
52
|
-
nextCombinatorValue = '';
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else if (selector instanceof CompoundSelector) {
|
|
56
|
-
const compoundSelValue = selector.get('value');
|
|
57
|
-
for (let i = 0; i < compoundSelValue.length; i++) {
|
|
58
|
-
const basic = compoundSelValue[i];
|
|
59
|
-
if (!basic) {
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
const combinator = createLessCombinator(i === 0 ? '' : '');
|
|
63
|
-
elements.push(createElementProxy(basic, combinator, cache));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else if (selector instanceof BasicSelector || selector instanceof Ampersand) {
|
|
67
|
-
elements.push(createElementProxy(selector, createLessCombinator(''), cache));
|
|
68
|
-
}
|
|
69
|
-
return elements;
|
|
70
|
-
}
|
|
71
|
-
function createLessCombinator(value) {
|
|
72
|
-
const base = new Combinator(' ');
|
|
73
|
-
return createLessProxy(base, undefined, (prop) => {
|
|
74
|
-
if (prop === 'type') {
|
|
75
|
-
return 'Combinator';
|
|
76
|
-
}
|
|
77
|
-
if (prop === 'value') {
|
|
78
|
-
return value;
|
|
79
|
-
}
|
|
80
|
-
if (prop === 'emptyOrWhitespace') {
|
|
81
|
-
return value === '' || value === ' ';
|
|
82
|
-
}
|
|
83
|
-
return undefined;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
function createElementProxy(basic, combinator, cache) {
|
|
87
|
-
// Create without sharing cache (avoids collision with any Selector proxy
|
|
88
|
-
// already cached for this BasicSelector). Then store the Element proxy in
|
|
89
|
-
// the shared cache so toLessNode returns it when the Jess walker visits
|
|
90
|
-
// this BasicSelector — matching the original code's caching behavior.
|
|
91
|
-
const proxy = createLessProxy(basic, undefined, (prop, target) => {
|
|
92
|
-
const basicSel = target;
|
|
93
|
-
if (prop === 'type') {
|
|
94
|
-
return 'Element';
|
|
95
|
-
}
|
|
96
|
-
if (prop === 'combinator') {
|
|
97
|
-
return combinator;
|
|
98
|
-
}
|
|
99
|
-
if (prop === 'value') {
|
|
100
|
-
return basicSel.value;
|
|
101
|
-
}
|
|
102
|
-
if (prop === 'isVariable') {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
if (prop === 'accept') {
|
|
106
|
-
return function (visitor) {
|
|
107
|
-
if (combinator && visitor.visit) {
|
|
108
|
-
visitor.visit(combinator);
|
|
109
|
-
}
|
|
110
|
-
const value = basicSel.value;
|
|
111
|
-
if (value && typeof value === 'object') {
|
|
112
|
-
const lessValue = toLessNode(value, { cache });
|
|
113
|
-
if (lessValue && visitor.visit) {
|
|
114
|
-
visitor.visit(lessValue);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return basicSel;
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
return undefined;
|
|
121
|
-
});
|
|
122
|
-
if (cache) {
|
|
123
|
-
cache.set(basic, proxy);
|
|
124
|
-
}
|
|
125
|
-
return proxy;
|
|
126
|
-
}
|
|
127
|
-
export const transformSelectorToLess = createFromAdapter({
|
|
128
|
-
lessType: 'Selector',
|
|
129
|
-
fields: {
|
|
130
|
-
elements: (sel, cache) => flattenSelectorToElements(sel, cache),
|
|
131
|
-
length: (sel, cache) => flattenSelectorToElements(sel, cache).length
|
|
132
|
-
},
|
|
133
|
-
dynamicField: (prop, sel, cache) => {
|
|
134
|
-
if (typeof prop === 'string' && /^\d+$/.test(prop)) {
|
|
135
|
-
return flattenSelectorToElements(sel, cache)[parseInt(prop, 10)];
|
|
136
|
-
}
|
|
137
|
-
return undefined;
|
|
138
|
-
},
|
|
139
|
-
accept: (sel, visitor, cache) => {
|
|
140
|
-
const elements = flattenSelectorToElements(sel, cache);
|
|
141
|
-
for (const element of elements) {
|
|
142
|
-
if (element?.accept) {
|
|
143
|
-
element.accept(visitor);
|
|
144
|
-
}
|
|
145
|
-
else if (element) {
|
|
146
|
-
const lessElement = toLessNode(element, { cache });
|
|
147
|
-
if (lessElement?.accept) {
|
|
148
|
-
lessElement.accept(visitor);
|
|
149
|
-
}
|
|
150
|
-
else if (lessElement && visitor.visitArray) {
|
|
151
|
-
visitor.visitArray([lessElement]);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return sel;
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
//# sourceMappingURL=selector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/nodes/selector.ts"],"names":[],"mappings":"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"}
|
package/lib/nodes/sequence.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createFromAdapter } from '../transform/adapter.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
5
|
-
export const transformSequenceToLess = createFromAdapter({
|
|
6
|
-
fields: {
|
|
7
|
-
value: (seq, cache) => (seq.get('value') ?? [])
|
|
8
|
-
.map((item) => item instanceof Node ? toLessNode(item, { cache }) : item)
|
|
9
|
-
.filter((item) => item != null),
|
|
10
|
-
length: seq => (seq.get('value') ?? []).filter((v) => v != null).length
|
|
11
|
-
},
|
|
12
|
-
dynamicField: (prop, seq, cache) => {
|
|
13
|
-
if (typeof prop === 'string' && /^\d+$/.test(prop)) {
|
|
14
|
-
const idx = Number(prop);
|
|
15
|
-
const arr = (seq.get('value') ?? []).filter((v) => v != null);
|
|
16
|
-
const item = arr[idx];
|
|
17
|
-
return item instanceof Node ? toLessNode(item, { cache }) : item;
|
|
18
|
-
}
|
|
19
|
-
return undefined;
|
|
20
|
-
},
|
|
21
|
-
accept: (seq, visitor, cache) => {
|
|
22
|
-
const raw = seq.get('value') ?? [];
|
|
23
|
-
if (!Array.isArray(raw) || raw.length === 0) {
|
|
24
|
-
return seq;
|
|
25
|
-
}
|
|
26
|
-
for (let i = 0; i < raw.length; i++) {
|
|
27
|
-
const item = raw[i];
|
|
28
|
-
if (item == null) {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const lessItem = item instanceof Node ? toLessNode(item, { cache }) : item;
|
|
32
|
-
if (!lessItem || typeof visitor?.visit !== 'function') {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
const visited = visitor.visit(lessItem);
|
|
36
|
-
if (visited && visited !== lessItem && typeof visited === 'object' && visited.type) {
|
|
37
|
-
try {
|
|
38
|
-
const jessReplacement = fromLessNode(visited, { cache: new WeakMap() });
|
|
39
|
-
if (item instanceof Node) {
|
|
40
|
-
jessReplacement.pre = item.pre;
|
|
41
|
-
jessReplacement.post = item.post;
|
|
42
|
-
}
|
|
43
|
-
seq.adopt(jessReplacement);
|
|
44
|
-
const seqArr = seq.get('value');
|
|
45
|
-
seqArr[i] = jessReplacement;
|
|
46
|
-
seq.setData('value', seqArr);
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// If we can't convert it back, ignore
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return seq;
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
//# sourceMappingURL=sequence.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/nodes/sequence.ts"],"names":[],"mappings":"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"}
|
package/lib/nodes/url.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Quoted } from '@jesscss/core';
|
|
2
|
-
import { createFromAdapter, selfVisitAccept } from '../transform/adapter.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
export const transformUrlToLess = createFromAdapter({
|
|
5
|
-
fields: {
|
|
6
|
-
value: (u, cache) => {
|
|
7
|
-
const value = u.get('value');
|
|
8
|
-
return value instanceof Quoted ? toLessNode(value, { cache }) : value;
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
accept: selfVisitAccept()
|
|
12
|
-
});
|
|
13
|
-
//# sourceMappingURL=url.js.map
|
package/lib/nodes/url.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/nodes/url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAM;IACvD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,KAAK,YAAY,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,CAAC;KACF;IACD,MAAM,EAAE,eAAe,EAAE;CAC1B,CAAC,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createFromAdapter, singleChildAccept } from '../transform/adapter.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
export const transformVarDeclarationToLess = createFromAdapter({
|
|
5
|
-
fields: {
|
|
6
|
-
name: v => v.get('name'),
|
|
7
|
-
value: (v, cache) => {
|
|
8
|
-
const value = v.get('value');
|
|
9
|
-
return value instanceof Node ? toLessNode(value, { cache }) : value;
|
|
10
|
-
},
|
|
11
|
-
index: (v) => {
|
|
12
|
-
const loc = v.location;
|
|
13
|
-
return loc.length ? loc[0] : undefined;
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
accept: singleChildAccept((v) => {
|
|
17
|
-
const value = v.get('value');
|
|
18
|
-
return value instanceof Node ? value : undefined;
|
|
19
|
-
})
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=var-declaration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"var-declaration.js","sourceRoot":"","sources":["../../src/nodes/var-declaration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAiB;IAC7E,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,CAAC;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YACX,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;YACvB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzC,CAAC;KACF;IACD,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC,CAAC;CACH,CAAC,CAAC"}
|
package/lib/plugin-utils.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utilities for working with Less.js plugins in Jess
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Detect if a plugin is a Less.js plugin
|
|
6
|
-
*/
|
|
7
|
-
export function isLessPlugin(plugin) {
|
|
8
|
-
if (!plugin) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
// Less plugins typically have an install method
|
|
12
|
-
if (typeof plugin.install === 'function') {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
// Some Less plugins are constructor functions that create instances with install
|
|
16
|
-
// Check if the constructor's prototype has install (like autoprefix)
|
|
17
|
-
if (typeof plugin === 'function') {
|
|
18
|
-
// Check if the function itself has install (some plugins are like this)
|
|
19
|
-
if (typeof plugin.install === 'function') {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
// Check if the constructor's prototype has install
|
|
23
|
-
if (plugin.prototype && typeof plugin.prototype.install === 'function') {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
// Try calling as a constructor
|
|
27
|
-
try {
|
|
28
|
-
const instance = new plugin({});
|
|
29
|
-
if (instance && typeof instance.install === 'function') {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch (e) {
|
|
34
|
-
// Try calling as a function
|
|
35
|
-
try {
|
|
36
|
-
const instance = plugin({});
|
|
37
|
-
if (instance && typeof instance.install === 'function') {
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
// Even if it returns undefined, if it's a function it might be a Less plugin
|
|
41
|
-
// Less.js will handle it by checking for install on the plugin object itself
|
|
42
|
-
// So we should treat functions as potential Less plugins
|
|
43
|
-
return true; // Assume function might be a Less plugin
|
|
44
|
-
}
|
|
45
|
-
catch (e2) {
|
|
46
|
-
// Not a Less plugin
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Detect if a plugin is a Jess plugin
|
|
54
|
-
*/
|
|
55
|
-
export function isJessPlugin(plugin) {
|
|
56
|
-
if (!plugin) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
// Jess plugins implement PluginInterface
|
|
60
|
-
// They have a name property and implement AbstractPlugin or match PluginInterface
|
|
61
|
-
if (typeof plugin === 'object' && 'name' in plugin && typeof plugin.name === 'string') {
|
|
62
|
-
// Could be a Jess plugin
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
// Plugin factory functions that return PluginInterface
|
|
66
|
-
if (typeof plugin === 'function') {
|
|
67
|
-
try {
|
|
68
|
-
const instance = plugin({});
|
|
69
|
-
if (instance && typeof instance === 'object' && 'name' in instance && typeof instance.name === 'string') {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
// Not a Jess plugin factory
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Filter and separate Less plugins from Jess plugins
|
|
81
|
-
* This allows mixed plugin arrays to be handled correctly
|
|
82
|
-
*/
|
|
83
|
-
export function filterPlugins(plugins) {
|
|
84
|
-
const lessPlugins = [];
|
|
85
|
-
const jessPlugins = [];
|
|
86
|
-
for (const plugin of plugins) {
|
|
87
|
-
if (isLessPlugin(plugin)) {
|
|
88
|
-
lessPlugins.push(plugin);
|
|
89
|
-
}
|
|
90
|
-
else if (isJessPlugin(plugin)) {
|
|
91
|
-
jessPlugins.push(plugin);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
// Unknown type - assume it's a Less plugin and try to handle it
|
|
95
|
-
lessPlugins.push(plugin);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return { lessPlugins, jessPlugins };
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=plugin-utils.js.map
|
package/lib/plugin-utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-utils.js","sourceRoot":"","sources":["../src/plugin-utils.ts"],"names":[],"mappings":"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"}
|