@breadstone-infrastructure/vite 0.0.39 → 0.0.40
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/Index.d.ts +10 -4
- package/Index.d.ts.map +1 -1
- package/Index.js +7 -2
- package/Index.js.map +1 -1
- package/Plugins/{LiveReload.d.ts → LiveReloadPlugin.d.ts} +1 -1
- package/Plugins/LiveReloadPlugin.d.ts.map +1 -0
- package/Plugins/{LiveReload.js → LiveReloadPlugin.js} +1 -1
- package/Plugins/LiveReloadPlugin.js.map +1 -0
- package/Plugins/LocalizatorPlugin.d.ts +23 -0
- package/Plugins/LocalizatorPlugin.d.ts.map +1 -0
- package/Plugins/LocalizatorPlugin.js +89 -0
- package/Plugins/LocalizatorPlugin.js.map +1 -0
- package/Plugins/{StaticContent.d.ts → StaticContentPlugin.d.ts} +9 -2
- package/Plugins/StaticContentPlugin.d.ts.map +1 -0
- package/Plugins/{StaticContent.js → StaticContentPlugin.js} +22 -11
- package/Plugins/StaticContentPlugin.js.map +1 -0
- package/package.json +9 -2
- package/virtual__localizator.d.ts +12 -0
- package/virtual__static-content.d.ts +11 -0
- package/Plugins/LiveReload.d.ts.map +0 -1
- package/Plugins/LiveReload.js.map +0 -1
- package/Plugins/StaticContent.d.ts.map +0 -1
- package/Plugins/StaticContent.js.map +0 -1
package/Index.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
export type { IStaticContentPluginOptions } from './Plugins/
|
|
2
|
-
export { staticContentPlugin } from './Plugins/
|
|
3
|
-
export type { ILiveReloadPluginOptions
|
|
4
|
-
export { liveReloadPlugin } from './Plugins/
|
|
1
|
+
export type { IStaticContentPluginOptions } from './Plugins/StaticContentPlugin.js';
|
|
2
|
+
export { staticContentPlugin } from './Plugins/StaticContentPlugin.js';
|
|
3
|
+
export type { ILiveReloadPluginOptions } from './Plugins/LiveReloadPlugin.js';
|
|
4
|
+
export { liveReloadPlugin } from './Plugins/LiveReloadPlugin.js';
|
|
5
|
+
export type { ILocalizatorPluginOptions } from './Plugins/LocalizatorPlugin.js';
|
|
6
|
+
export { localizatorPlugin } from './Plugins/LocalizatorPlugin.js';
|
|
7
|
+
import './virtual__localizator.d.ts';
|
|
8
|
+
import './virtual__static-content.d.ts';
|
|
9
|
+
export { VIRTUAL_MODULE_KEY as LOCALIZATOR_VIRTUAL_MODULE_KEY } from './Plugins/LocalizatorPlugin.js';
|
|
10
|
+
export { VIRTUAL_MODULE_KEY as STATIC_CONTENT_VIRTUAL_MODULE_KEY } from './Plugins/StaticContentPlugin.js';
|
|
5
11
|
//# sourceMappingURL=Index.d.ts.map
|
package/Index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,2BAA2B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AAExC,OAAO,EAAE,kBAAkB,IAAI,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,kBAAkB,IAAI,iCAAiC,EAAE,MAAM,kCAAkC,CAAC"}
|
package/Index.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
export { staticContentPlugin } from './Plugins/
|
|
2
|
-
export { liveReloadPlugin } from './Plugins/
|
|
1
|
+
export { staticContentPlugin } from './Plugins/StaticContentPlugin.js';
|
|
2
|
+
export { liveReloadPlugin } from './Plugins/LiveReloadPlugin.js';
|
|
3
|
+
export { localizatorPlugin } from './Plugins/LocalizatorPlugin.js';
|
|
4
|
+
import './virtual__localizator.d.ts';
|
|
5
|
+
import './virtual__static-content.d.ts';
|
|
6
|
+
export { VIRTUAL_MODULE_KEY as LOCALIZATOR_VIRTUAL_MODULE_KEY } from './Plugins/LocalizatorPlugin.js';
|
|
7
|
+
export { VIRTUAL_MODULE_KEY as STATIC_CONTENT_VIRTUAL_MODULE_KEY } from './Plugins/StaticContentPlugin.js';
|
|
3
8
|
//# sourceMappingURL=Index.js.map
|
package/Index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AAExC,OAAO,EAAE,kBAAkB,IAAI,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,kBAAkB,IAAI,iCAAiC,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -27,4 +27,4 @@ export interface ILiveReloadPluginOptions {
|
|
|
27
27
|
* Live reload Vite plugin using `FileSystemWatcher`.
|
|
28
28
|
*/
|
|
29
29
|
export declare const liveReloadPlugin: (options: ILiveReloadPluginOptions) => Plugin;
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=LiveReloadPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveReloadPlugin.d.ts","sourceRoot":"","sources":["../../src/Plugins/LiveReloadPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAMlD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IAErC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,wBAAwB,KAAG,MA+CnE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveReloadPlugin.js","sourceRoot":"","sources":["../../src/Plugins/LiveReloadPlugin.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAGlB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAiCzE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAiC,EAAU,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,yBAAyB;IAE/B,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAiB;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,mEAAmE,QAAQ,EAAE,EAAE;gBACvF,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,EAAE,EAAE;gBACzD,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;QACP,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;QAEvC,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAQ,EAAE;YACtC,EAAE,CAAC,IAAI,CAAC;gBACJ,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ;aAC9C,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,yCAAyC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;oBACjF,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,IAAI;iBAClB,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC;YAClC,IAAI,EAAE,IAAI;YACV,qBAAqB,EAAE,IAAI;YAC3B,MAAM,EAAE,OAAO,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE9B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;CACJ,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Plugin } from 'vite';
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
export declare const VIRTUAL_MODULE_KEY = "virtual:localizator.ts";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export interface ILocalizatorPluginOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Directory containing resource files.
|
|
12
|
+
*/
|
|
13
|
+
paths: string | Array<string>;
|
|
14
|
+
verbose?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Vite plugin to scan and transform resource files (e.g., `.resx`) into TypeScript components.
|
|
18
|
+
* To debug/view the generated components, navigate to `http://localhost:8080/@id/virtual:localizator.ts`.
|
|
19
|
+
*
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export declare function localizatorPlugin(options: ILocalizatorPluginOptions): Plugin;
|
|
23
|
+
//# sourceMappingURL=LocalizatorPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalizatorPlugin.d.ts","sourceRoot":"","sources":["../../src/Plugins/LocalizatorPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqD,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAKtF;;GAEG;AACH,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,yBAAyB;IAEtC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAoF5E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
import { blue, Path, yellow, FileSystem } from '@breadstone-infrastructure/utilities';
|
|
3
|
+
import { createLogger } from 'vite';
|
|
4
|
+
import { ResourceMode, ResourceReader, ResourceTransformer } from '@breadstone-tools/localizator-core';
|
|
5
|
+
// #endregion
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export const VIRTUAL_MODULE_KEY = 'virtual:localizator.ts';
|
|
10
|
+
/**
|
|
11
|
+
* Vite plugin to scan and transform resource files (e.g., `.resx`) into TypeScript components.
|
|
12
|
+
* To debug/view the generated components, navigate to `http://localhost:8080/@id/virtual:localizator.ts`.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export function localizatorPlugin(options) {
|
|
17
|
+
const logger = createLogger(undefined, { console: console });
|
|
18
|
+
const fileSystem = new FileSystem();
|
|
19
|
+
const reader = new ResourceReader(console, fileSystem);
|
|
20
|
+
const transformer = new ResourceTransformer(console);
|
|
21
|
+
return {
|
|
22
|
+
name: 'vite-plugin-localizator',
|
|
23
|
+
handleHotUpdate(ctx) {
|
|
24
|
+
if (ctx.file.endsWith('.resx')) {
|
|
25
|
+
const module = ctx.server.moduleGraph.getModuleById(VIRTUAL_MODULE_KEY);
|
|
26
|
+
logger.warn(`${yellow('[vite-plugin-localizator]:')} Virtual module: ${module?.id ?? 'not found'}`);
|
|
27
|
+
if (module) {
|
|
28
|
+
ctx.server.moduleGraph.invalidateModule(module);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
logger.warn(`${yellow('[vite-plugin-localizator]:')} Virtual module not found`);
|
|
32
|
+
}
|
|
33
|
+
ctx.server.ws.send({
|
|
34
|
+
type: 'full-reload',
|
|
35
|
+
path: '*'
|
|
36
|
+
});
|
|
37
|
+
logger.info(`${blue('[vite-plugin-localizator]:')} File updated: ${ctx.file}`);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
configureServer(server) {
|
|
41
|
+
server.watcher.on('change', (path) => {
|
|
42
|
+
console.log(`[vite-plugin-localizator]: File changed: ${path}`);
|
|
43
|
+
});
|
|
44
|
+
const paths = Array.isArray(options.paths)
|
|
45
|
+
? options.paths
|
|
46
|
+
: [options.paths];
|
|
47
|
+
for (const globPattern of paths) {
|
|
48
|
+
const resolvedFiles = Path.glob(globPattern);
|
|
49
|
+
for (const file of resolvedFiles) {
|
|
50
|
+
server.watcher.add(file);
|
|
51
|
+
logger.info(`[vite-plugin-localizator]: Watching: ${file}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
resolveId(source) {
|
|
56
|
+
return source === VIRTUAL_MODULE_KEY
|
|
57
|
+
? source
|
|
58
|
+
: null;
|
|
59
|
+
},
|
|
60
|
+
load(id) {
|
|
61
|
+
if (id !== VIRTUAL_MODULE_KEY) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const resxFiles = Path.glob(options.paths)
|
|
65
|
+
.filter((file) => file.endsWith('.resx'));
|
|
66
|
+
const contents = resxFiles.map((file) => {
|
|
67
|
+
logger.info(`[vite-plugin-localizator]: Found resource file: ${file}`);
|
|
68
|
+
const resource = reader.scanFile(file, ResourceMode.Resx);
|
|
69
|
+
logger.info(`[vite-plugin-localizator]: Scanned resource: ${resource.name} (${resource.locale})`);
|
|
70
|
+
const models = transformer.transform(resource);
|
|
71
|
+
const resourceInfo = transformer.serialize(models, {
|
|
72
|
+
locale: resource.locale,
|
|
73
|
+
name: '',
|
|
74
|
+
path: '',
|
|
75
|
+
target: 'ts'
|
|
76
|
+
});
|
|
77
|
+
return resourceInfo;
|
|
78
|
+
});
|
|
79
|
+
return `
|
|
80
|
+
${contents.map((x) => x.toString()).join('\n\n')}
|
|
81
|
+
|
|
82
|
+
export const translations = {
|
|
83
|
+
${contents.map((c) => `'${c.locale}': _${c.locale}`).join(',\n')},
|
|
84
|
+
};
|
|
85
|
+
`;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=LocalizatorPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalizatorPlugin.js","sourceRoot":"","sources":["../../src/Plugins/LocalizatorPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { type Plugin } from 'vite';
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
2
5
|
export declare const VIRTUAL_MODULE_KEY = "virtual:static-content.ts";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
3
9
|
export interface IStaticContentPluginOptions {
|
|
4
10
|
/**
|
|
5
11
|
* The current working directory.
|
|
@@ -21,8 +27,9 @@ export interface IStaticContentPluginOptions {
|
|
|
21
27
|
}
|
|
22
28
|
/**
|
|
23
29
|
* Vite plugin to process Markdown files and expose a component registry, including subfolders.
|
|
24
|
-
*
|
|
25
30
|
* To debug/view the generated components, navigate to `http://localhost:8080/@id/virtual:static-content.ts`.
|
|
31
|
+
*
|
|
32
|
+
* @public
|
|
26
33
|
*/
|
|
27
34
|
export declare function staticContentPlugin(options: IStaticContentPluginOptions): Plugin;
|
|
28
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=StaticContentPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaticContentPlugin.d.ts","sourceRoot":"","sources":["../../src/Plugins/StaticContentPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,MAAM,EAAoC,MAAM,MAAM,CAAC;AAKnG;;GAEG;AACH,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAExC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAEzC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CAyHhF"}
|
|
@@ -3,11 +3,15 @@ import { Path, File, red } from '@breadstone-infrastructure/utilities';
|
|
|
3
3
|
import { createLogger } from 'vite';
|
|
4
4
|
import matter from 'gray-matter';
|
|
5
5
|
// #endregion
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
6
9
|
export const VIRTUAL_MODULE_KEY = 'virtual:static-content.ts';
|
|
7
10
|
/**
|
|
8
11
|
* Vite plugin to process Markdown files and expose a component registry, including subfolders.
|
|
9
|
-
*
|
|
10
12
|
* To debug/view the generated components, navigate to `http://localhost:8080/@id/virtual:static-content.ts`.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
11
15
|
*/
|
|
12
16
|
export function staticContentPlugin(options) {
|
|
13
17
|
const logger = createLogger();
|
|
@@ -15,7 +19,6 @@ export function staticContentPlugin(options) {
|
|
|
15
19
|
name: 'vite-plugin-static-content',
|
|
16
20
|
handleHotUpdate(ctx) {
|
|
17
21
|
if (ctx.file.endsWith('.md')) {
|
|
18
|
-
logger.info(`[vite-plugin-static-content]: Markdown updated: ${ctx.file}`);
|
|
19
22
|
const module = ctx.server.moduleGraph.getModuleById(VIRTUAL_MODULE_KEY);
|
|
20
23
|
logger.warn(`[vite-plugin-static-content]: Virtual module: ${module?.id ?? 'not found'}`);
|
|
21
24
|
if (module) {
|
|
@@ -45,10 +48,9 @@ export function staticContentPlugin(options) {
|
|
|
45
48
|
}
|
|
46
49
|
},
|
|
47
50
|
resolveId(source) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return null;
|
|
51
|
+
return source === VIRTUAL_MODULE_KEY
|
|
52
|
+
? source
|
|
53
|
+
: null;
|
|
52
54
|
},
|
|
53
55
|
load(id) {
|
|
54
56
|
if (id === VIRTUAL_MODULE_KEY) {
|
|
@@ -65,7 +67,7 @@ import { Memoize } from './src/Decorators/MemoizeDecorator';
|
|
|
65
67
|
const components = mdFiles.map((x, i) => {
|
|
66
68
|
const cwd = options.cwd ?? process.cwd();
|
|
67
69
|
const relativeFilePath = Path.relative(cwd, x);
|
|
68
|
-
const componentName = generateComponentName(relativeFilePath,
|
|
70
|
+
const componentName = generateComponentName(relativeFilePath, logger, options);
|
|
69
71
|
const content = File.readAllText(relativeFilePath, 'utf-8');
|
|
70
72
|
const meta = tryGetContentMeta(content, logger, options);
|
|
71
73
|
const contentWithoutMeta = removeMetadata(content);
|
|
@@ -124,11 +126,11 @@ import { Memoize } from './src/Decorators/MemoizeDecorator';
|
|
|
124
126
|
/**
|
|
125
127
|
* Generates a valid Lit component name, applying an optional prefix.
|
|
126
128
|
*
|
|
129
|
+
* @private
|
|
127
130
|
* @param fileName - The file name of the Markdown file
|
|
128
|
-
* @param prefix - An optional prefix for the component selector
|
|
129
131
|
* @returns A valid component selector name.
|
|
130
132
|
*/
|
|
131
|
-
function generateComponentName(fileName,
|
|
133
|
+
function generateComponentName(fileName, logger, options) {
|
|
132
134
|
// if (options.verbose) {
|
|
133
135
|
// logger.info(`[vite-plugin-static-content]: Generating component name for file: ${fileName}`);
|
|
134
136
|
// }
|
|
@@ -140,11 +142,12 @@ function generateComponentName(fileName, prefix, logger, options) {
|
|
|
140
142
|
// if (options.verbose) {
|
|
141
143
|
// logger.info(`[vite-plugin-static-content]: Generated component name: ${prefix}${baseName}`);
|
|
142
144
|
// }
|
|
143
|
-
return `${prefix}${baseName}`;
|
|
145
|
+
return `${options.prefix ?? ''}${baseName}`;
|
|
144
146
|
}
|
|
145
147
|
/**
|
|
146
148
|
* Escapes special characters in a string to make it TypeScript string-safe.
|
|
147
149
|
*
|
|
150
|
+
* @private
|
|
148
151
|
* @param content - The string content to escape.
|
|
149
152
|
* @returns The escaped string.
|
|
150
153
|
*/
|
|
@@ -157,6 +160,7 @@ function escapeStringForTemplate(content) {
|
|
|
157
160
|
/**
|
|
158
161
|
* Converts a file or folder name to a user-friendly display name.
|
|
159
162
|
*
|
|
163
|
+
* @private
|
|
160
164
|
* @param segment - The file or folder name to convert.
|
|
161
165
|
* @returns A user-friendly display name.
|
|
162
166
|
*/
|
|
@@ -167,6 +171,9 @@ function generateDisplayName(segment) {
|
|
|
167
171
|
.replace(/\.[^/.]+$/, '') // Remove file extensions
|
|
168
172
|
.replace(/\b\w/g, (char) => char.toUpperCase()); // Capitalize the first letter of each word
|
|
169
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* @private
|
|
176
|
+
*/
|
|
170
177
|
function tryGetContentMeta(content, logger, options) {
|
|
171
178
|
try {
|
|
172
179
|
const parsed = matter(content);
|
|
@@ -180,6 +187,9 @@ function tryGetContentMeta(content, logger, options) {
|
|
|
180
187
|
return {};
|
|
181
188
|
}
|
|
182
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* @private
|
|
192
|
+
*/
|
|
183
193
|
function removeMetadata(content) {
|
|
184
194
|
const matterMatch = (/---\n([\s\S]*?)\n---/).exec(content);
|
|
185
195
|
if (matterMatch) {
|
|
@@ -190,6 +200,7 @@ function removeMetadata(content) {
|
|
|
190
200
|
/**
|
|
191
201
|
* Calculates estimated reading time for a given Markdown text.
|
|
192
202
|
*
|
|
203
|
+
* @private
|
|
193
204
|
* @param markdown - The Markdown content.
|
|
194
205
|
* @param wordsPerMinute - The average reading speed in words per minute (default: 200).
|
|
195
206
|
* @returns Estimated reading time in minutes.
|
|
@@ -209,4 +220,4 @@ function estimateReadTime(markdown, wordsPerMinute = 100) {
|
|
|
209
220
|
const wordCount = textOnly.split(' ').filter((word) => word.length > 0).length;
|
|
210
221
|
return Math.max(1, Math.ceil(wordCount / wordsPerMinute));
|
|
211
222
|
}
|
|
212
|
-
//# sourceMappingURL=
|
|
223
|
+
//# sourceMappingURL=StaticContentPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaticContentPlugin.js","sourceRoot":"","sources":["../../src/Plugins/StaticContentPlugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breadstone-infrastructure/vite",
|
|
3
3
|
"description": "Vite configuration and plugins",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.40",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
|
|
7
7
|
"repository": {
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"module": "./Index.js",
|
|
13
13
|
"types": "./Index.d.ts",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@breadstone-infrastructure/utilities": "^0.0.
|
|
15
|
+
"@breadstone-infrastructure/utilities": "^0.0.40",
|
|
16
|
+
"@breadstone-tools/localizator-core": "^0.0.40",
|
|
16
17
|
"gray-matter": "^4.0.3"
|
|
17
18
|
},
|
|
18
19
|
"peerDependencies": {
|
|
@@ -22,6 +23,12 @@
|
|
|
22
23
|
".": {
|
|
23
24
|
"import": "./Index.js",
|
|
24
25
|
"types": "./Index.d.ts"
|
|
26
|
+
},
|
|
27
|
+
"./virtual/localizator": {
|
|
28
|
+
"types": "./virtual__localizator.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"./virtual/static-content": {
|
|
31
|
+
"types": "./virtual__static-content.d.ts"
|
|
25
32
|
}
|
|
26
33
|
}
|
|
27
34
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare module 'virtual:localizator.ts' {
|
|
2
|
+
export type ITranslationMap = Record<string, string>;
|
|
3
|
+
|
|
4
|
+
export interface ITranslationClass {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
entries(): [string, string][];
|
|
7
|
+
toObject(): Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const translations: Record<string, ITranslationClass>;
|
|
11
|
+
export default translations;
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare module 'virtual:static-content.ts' {
|
|
2
|
+
export interface IStaticContentInfo {
|
|
3
|
+
path: string;
|
|
4
|
+
name: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
selector: string;
|
|
7
|
+
meta: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const registry: Map<string, IStaticContentInfo>;
|
|
11
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiveReload.d.ts","sourceRoot":"","sources":["../../src/Plugins/LiveReload.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAMlD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IAErC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,wBAAwB,KAAG,MA+CnE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiveReload.js","sourceRoot":"","sources":["../../src/Plugins/LiveReload.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAGlB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAiCzE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAiC,EAAU,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,yBAAyB;IAE/B,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAiB;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,mEAAmE,QAAQ,EAAE,EAAE;gBACvF,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,EAAE,EAAE;gBACzD,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;QACP,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;QAEvC,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAQ,EAAE;YACtC,EAAE,CAAC,IAAI,CAAC;gBACJ,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ;aAC9C,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,yCAAyC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;oBACjF,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,IAAI;iBAClB,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC;YAClC,IAAI,EAAE,IAAI;YACV,qBAAqB,EAAE,IAAI;YAC3B,MAAM,EAAE,OAAO,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE9B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;CACJ,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StaticContent.d.ts","sourceRoot":"","sources":["../../src/Plugins/StaticContent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,MAAM,EAAoC,MAAM,MAAM,CAAC;AAKnG,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,MAAM,WAAW,2BAA2B;IAExC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAEzC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CA4HhF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StaticContent.js","sourceRoot":"","sources":["../../src/Plugins/StaticContent.ts"],"names":[],"mappings":"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"}
|