@schemavaults/theme 0.24.0 → 0.25.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.
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Config as TailwindConfig } from "tailwindcss";
|
|
2
2
|
import { type ScreenBreakpointID } from "./ScreenBreakpoints";
|
|
3
3
|
import type { TailwindTheme } from "./TailwindTheme";
|
|
4
|
-
type OsJoinFn = (path_segment: string, ...remaining_path_segments: string[]) => string;
|
|
5
4
|
export interface ISchemaVaultsTailwindConfigFactoryInitOptions {
|
|
6
5
|
debug?: boolean;
|
|
7
6
|
scope?: string;
|
|
8
7
|
fileExtensions?: readonly string[];
|
|
9
8
|
project_root?: string;
|
|
9
|
+
buildSubdirectories?: readonly string[];
|
|
10
10
|
}
|
|
11
11
|
export interface ISchemaVaultsTailwindConfigCreationOptions {
|
|
12
12
|
content: readonly string[];
|
|
@@ -19,16 +19,16 @@ type ThemeExtension = NonNullable<TailwindConfigTheme["extend"]>;
|
|
|
19
19
|
type ThemeValue = ThemeExtension[string];
|
|
20
20
|
export declare class SchemaVaultsTailwindConfigFactory implements ISchemaVaultsTailwindConfigFactory {
|
|
21
21
|
protected readonly debug: boolean;
|
|
22
|
-
protected readonly join: OsJoinFn;
|
|
23
22
|
protected readonly isdir: (path: string) => boolean;
|
|
24
23
|
protected readonly isfile: (path: string) => boolean;
|
|
25
24
|
protected readonly scope: string;
|
|
26
25
|
protected readonly project_root: string;
|
|
27
26
|
protected static readonly defaultFileExtensionsToSearch: readonly ["js", "jsx", "ts", "tsx", "svelte"];
|
|
27
|
+
protected readonly possibleBuildDirectories: readonly string[];
|
|
28
28
|
protected readonly fileExtensionsToIncludeInTailwindClassNamesSearch: readonly string[];
|
|
29
|
-
private static defaultJoinImplementation;
|
|
30
29
|
private static defaultIsDirImplementation;
|
|
31
30
|
private static defaultIsFileImplementation;
|
|
31
|
+
private static prettyPrintItemList;
|
|
32
32
|
constructor(opts?: ISchemaVaultsTailwindConfigFactoryInitOptions);
|
|
33
33
|
/**
|
|
34
34
|
* @description Load TailwindCSS plugins to use in theme configuration
|
|
@@ -46,7 +46,7 @@ export declare class SchemaVaultsTailwindConfigFactory implements ISchemaVaultsT
|
|
|
46
46
|
* @returns The resolved path for the organization-scoped package. I.e. the path that contains the package.json file
|
|
47
47
|
*/
|
|
48
48
|
protected resolveOrganizationScopedPackagePath(org_scoped_package_identifier: string): string;
|
|
49
|
-
private static
|
|
49
|
+
private static defaultPossibleBuildDirectories;
|
|
50
50
|
createConfig(opts?: ISchemaVaultsTailwindConfigCreationOptions): TailwindConfig;
|
|
51
51
|
}
|
|
52
52
|
export default SchemaVaultsTailwindConfigFactory;
|
|
@@ -9,7 +9,6 @@ import tailwindAnimatePlugin from "./plugins/tailwindcss-animate";
|
|
|
9
9
|
import * as resolve from "resolve";
|
|
10
10
|
export class SchemaVaultsTailwindConfigFactory {
|
|
11
11
|
debug;
|
|
12
|
-
join;
|
|
13
12
|
isdir;
|
|
14
13
|
isfile;
|
|
15
14
|
scope;
|
|
@@ -21,10 +20,8 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
21
20
|
"tsx",
|
|
22
21
|
"svelte",
|
|
23
22
|
];
|
|
23
|
+
possibleBuildDirectories;
|
|
24
24
|
fileExtensionsToIncludeInTailwindClassNamesSearch;
|
|
25
|
-
static defaultJoinImplementation(path_segment, ...remaining_path_segments) {
|
|
26
|
-
return join(path_segment, ...remaining_path_segments);
|
|
27
|
-
}
|
|
28
25
|
static defaultIsDirImplementation(maybeDirPath) {
|
|
29
26
|
if (!existsSync(maybeDirPath)) {
|
|
30
27
|
return false;
|
|
@@ -37,22 +34,27 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
37
34
|
}
|
|
38
35
|
return lstatSync(maybeFilePath).isFile();
|
|
39
36
|
}
|
|
37
|
+
static prettyPrintItemList(items) {
|
|
38
|
+
return `${items.map((d) => `"${d}"`).join(", ")}`;
|
|
39
|
+
}
|
|
40
40
|
constructor(opts) {
|
|
41
41
|
this.debug = opts?.debug ?? false;
|
|
42
42
|
if (this.debug) {
|
|
43
43
|
console.log("[SchemaVaultsTailwindConfigFactory] constructor()");
|
|
44
44
|
}
|
|
45
|
-
this.join = SchemaVaultsTailwindConfigFactory.defaultJoinImplementation;
|
|
46
45
|
this.isdir = SchemaVaultsTailwindConfigFactory.defaultIsDirImplementation;
|
|
47
46
|
this.isfile = SchemaVaultsTailwindConfigFactory.defaultIsFileImplementation;
|
|
48
47
|
this.scope = opts?.scope ?? DefaultOrgScope;
|
|
49
48
|
if (this.scope.startsWith("@")) {
|
|
50
|
-
throw new
|
|
49
|
+
throw new TypeError("Don't pass the @ in the 'scope', we'll handle adding passing that!");
|
|
51
50
|
}
|
|
52
51
|
this.fileExtensionsToIncludeInTailwindClassNamesSearch = Array.isArray(opts?.fileExtensions)
|
|
53
52
|
? opts.fileExtensions
|
|
54
53
|
: SchemaVaultsTailwindConfigFactory.defaultFileExtensionsToSearch;
|
|
55
54
|
this.project_root = opts?.project_root ?? process.cwd();
|
|
55
|
+
this.possibleBuildDirectories = Array.isArray(opts?.buildSubdirectories)
|
|
56
|
+
? opts.buildSubdirectories
|
|
57
|
+
: SchemaVaultsTailwindConfigFactory.defaultPossibleBuildDirectories;
|
|
56
58
|
if (this.debug) {
|
|
57
59
|
console.log(`[SchemaVaultsTailwindConfigFactory] Initialized '@${this.scope}' config factory`);
|
|
58
60
|
}
|
|
@@ -129,7 +131,7 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
129
131
|
return false;
|
|
130
132
|
}
|
|
131
133
|
else {
|
|
132
|
-
if (
|
|
134
|
+
if (existsSync(join(current_path, "package.json"))) {
|
|
133
135
|
return true;
|
|
134
136
|
}
|
|
135
137
|
else {
|
|
@@ -150,7 +152,7 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
150
152
|
throw new Error(`Error resolving package root directory for '@${scope}/${package_name}'`);
|
|
151
153
|
}
|
|
152
154
|
if (this.isdir(current_path)) {
|
|
153
|
-
current_path = normalize(
|
|
155
|
+
current_path = normalize(join(current_path, ".."));
|
|
154
156
|
}
|
|
155
157
|
else if (this.isfile(current_path)) {
|
|
156
158
|
current_path = dirname(current_path);
|
|
@@ -173,7 +175,7 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
173
175
|
}
|
|
174
176
|
return package_path;
|
|
175
177
|
}
|
|
176
|
-
static
|
|
178
|
+
static defaultPossibleBuildDirectories = [
|
|
177
179
|
"dist",
|
|
178
180
|
"src",
|
|
179
181
|
"build",
|
|
@@ -197,10 +199,16 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
197
199
|
const content_length_at_start = content.length;
|
|
198
200
|
if (content_path_input.startsWith(`@${scope}/`)) {
|
|
199
201
|
const package_path = this.resolveOrganizationScopedPackagePath(content_path_input);
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
202
|
+
if (package_path.startsWith("@")) {
|
|
203
|
+
throw new TypeError(`Failed to resolve org-scoped package identifier into path for: '${content_path_input}'`);
|
|
204
|
+
}
|
|
205
|
+
this.possibleBuildDirectories.forEach((possible_build_dir) => {
|
|
206
|
+
const buildSubdirPath = join(package_path, possible_build_dir);
|
|
207
|
+
let hasBuildSubdirectory = false;
|
|
203
208
|
try {
|
|
209
|
+
if (this.debug) {
|
|
210
|
+
console.log(`[SchemaVaultsTailwindConfigFactory] Checking if build subdirectory exists at path:`, buildSubdirPath);
|
|
211
|
+
}
|
|
204
212
|
hasBuildSubdirectory = this.isdir(buildSubdirPath);
|
|
205
213
|
}
|
|
206
214
|
catch (e) {
|
|
@@ -209,7 +217,12 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
209
217
|
throw new Error("Error using isdir() to check if there is a directory at path");
|
|
210
218
|
}
|
|
211
219
|
if (hasBuildSubdirectory) {
|
|
212
|
-
|
|
220
|
+
const tailwindContentSearchPath = `${buildSubdirPath}/**/*.{${this.fileExtensionsToIncludeInTailwindClassNamesSearch.join(",")}}`;
|
|
221
|
+
content.push(tailwindContentSearchPath);
|
|
222
|
+
if (this.debug) {
|
|
223
|
+
console.log(`[SchemaVaultsTailwindConfigFactory] ` +
|
|
224
|
+
`Found build subdirectory. Added TailwindCSS search blob:`, tailwindContentSearchPath);
|
|
225
|
+
}
|
|
213
226
|
}
|
|
214
227
|
});
|
|
215
228
|
}
|
|
@@ -221,9 +234,7 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
221
234
|
const content_added_this_iteration = content_length_at_end - content_length_at_start;
|
|
222
235
|
if (content_added_this_iteration < 1 &&
|
|
223
236
|
content_path_input.startsWith(`@${scope}/`)) {
|
|
224
|
-
console.warn(`Did not find any known build
|
|
225
|
-
.map((d) => `"${d}"`)
|
|
226
|
-
.join(", ")})!`);
|
|
237
|
+
console.warn(`Did not find any known build subdirectories (searching subdirectories: ${SchemaVaultsTailwindConfigFactory.prettyPrintItemList(this.possibleBuildDirectories)}) within content path input '${content_path_input}'!`);
|
|
227
238
|
}
|
|
228
239
|
});
|
|
229
240
|
if (content.length === 0) {
|
|
@@ -238,7 +249,9 @@ export class SchemaVaultsTailwindConfigFactory {
|
|
|
238
249
|
darkMode: "class",
|
|
239
250
|
};
|
|
240
251
|
console.assert(config.content.length >= 1, "Failed to load any 'content' search blobs to generate TailwindCSS classes for!");
|
|
241
|
-
|
|
252
|
+
if (!config.content.every((blob) => typeof blob === "string")) {
|
|
253
|
+
throw new TypeError("Received a non-string search blob for the 'content' field of the Tailwind configuration!");
|
|
254
|
+
}
|
|
242
255
|
if (this.debug) {
|
|
243
256
|
console.log("[SchemaVaultsTailwindConfigFactory] Generated TailwindCSS config:\n", config);
|
|
244
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TailwindConfigFactory.js","sourceRoot":"","sources":["../src/TailwindConfigFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,eAAe,MAAM,mBAAmB,CAAC,CAAC,wCAAwC;AACzF,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TailwindConfigFactory.js","sourceRoot":"","sources":["../src/TailwindConfigFactory.ts"],"names":[],"mappings":"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"}
|