@nizza/devkit 0.1.0-alpha.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/README.md +7 -0
- package/dist/package.json +13 -0
- package/dist/src/executors/deploy/executor.d.ts +11 -0
- package/dist/src/executors/deploy/executor.d.ts.map +1 -0
- package/dist/src/executors/deploy/executor.js +27 -0
- package/dist/src/executors/deploy/helpers.d.ts +4 -0
- package/dist/src/executors/deploy/helpers.d.ts.map +1 -0
- package/dist/src/executors/deploy/helpers.js +40 -0
- package/dist/src/executors/deploy/schema.json +41 -0
- package/dist/src/executors/environments/executor.d.ts +16 -0
- package/dist/src/executors/environments/executor.d.ts.map +1 -0
- package/dist/src/executors/environments/executor.js +59 -0
- package/dist/src/executors/environments/helpers.d.ts +21 -0
- package/dist/src/executors/environments/helpers.d.ts.map +1 -0
- package/dist/src/executors/environments/helpers.js +63 -0
- package/dist/src/executors/environments/schema.json +9 -0
- package/dist/src/executors/publish/executor.d.ts +12 -0
- package/dist/src/executors/publish/executor.d.ts.map +1 -0
- package/dist/src/executors/publish/executor.js +57 -0
- package/dist/src/executors/publish/helpers.d.ts +19 -0
- package/dist/src/executors/publish/helpers.d.ts.map +1 -0
- package/dist/src/executors/publish/helpers.js +52 -0
- package/dist/src/executors/publish/schema.json +19 -0
- package/dist/src/executors/shared/index.d.ts +3 -0
- package/dist/src/executors/shared/index.d.ts.map +1 -0
- package/dist/src/executors/shared/index.js +7 -0
- package/dist/src/executors/shared/types.d.ts +4 -0
- package/dist/src/executors/shared/types.d.ts.map +1 -0
- package/dist/src/executors/shared/types.js +4 -0
- package/dist/src/executors/shared/utils.d.ts +34 -0
- package/dist/src/executors/shared/utils.d.ts.map +1 -0
- package/dist/src/executors/shared/utils.js +74 -0
- package/dist/src/executors/update-executors-file/executor.d.ts +12 -0
- package/dist/src/executors/update-executors-file/executor.d.ts.map +1 -0
- package/dist/src/executors/update-executors-file/executor.js +46 -0
- package/dist/src/executors/update-executors-file/helpers.d.ts +24 -0
- package/dist/src/executors/update-executors-file/helpers.d.ts.map +1 -0
- package/dist/src/executors/update-executors-file/helpers.js +70 -0
- package/dist/src/executors/update-executors-file/schema.json +9 -0
- package/dist/src/executors/update-executors-file/types.d.ts +14 -0
- package/dist/src/executors/update-executors-file/types.d.ts.map +1 -0
- package/dist/src/executors/update-executors-file/types.js +4 -0
- package/dist/src/executors/vtex-link/constants.d.ts +4 -0
- package/dist/src/executors/vtex-link/constants.d.ts.map +1 -0
- package/dist/src/executors/vtex-link/constants.js +24 -0
- package/dist/src/executors/vtex-link/executor.d.ts +5 -0
- package/dist/src/executors/vtex-link/executor.d.ts.map +1 -0
- package/dist/src/executors/vtex-link/executor.js +35 -0
- package/dist/src/executors/vtex-link/helpers.d.ts +77 -0
- package/dist/src/executors/vtex-link/helpers.d.ts.map +1 -0
- package/dist/src/executors/vtex-link/helpers.js +187 -0
- package/dist/src/executors/vtex-link/schema.json +25 -0
- package/dist/src/executors/vtex-link/types.d.ts +12 -0
- package/dist/src/executors/vtex-link/types.d.ts.map +1 -0
- package/dist/src/executors/vtex-link/types.js +4 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +6 -0
- package/dist/src/logger.d.ts +34 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +106 -0
- package/dist/src/scripts/changeset-pre-mode.d.ts +2 -0
- package/dist/src/scripts/changeset-pre-mode.d.ts.map +1 -0
- package/dist/src/scripts/changeset-pre-mode.js +41 -0
- package/dist/src/shared/index.d.ts +2 -0
- package/dist/src/shared/index.d.ts.map +1 -0
- package/dist/src/shared/index.js +6 -0
- package/dist/src/shared/utils.d.ts +11 -0
- package/dist/src/shared/utils.d.ts.map +1 -0
- package/dist/src/shared/utils.js +22 -0
- package/dist/src/vite/config-builder/configs/app.d.ts +4 -0
- package/dist/src/vite/config-builder/configs/app.d.ts.map +1 -0
- package/dist/src/vite/config-builder/configs/app.js +19 -0
- package/dist/src/vite/config-builder/configs/base.d.ts +4 -0
- package/dist/src/vite/config-builder/configs/base.d.ts.map +1 -0
- package/dist/src/vite/config-builder/configs/base.js +55 -0
- package/dist/src/vite/config-builder/configs/index.d.ts +7 -0
- package/dist/src/vite/config-builder/configs/index.d.ts.map +1 -0
- package/dist/src/vite/config-builder/configs/index.js +28 -0
- package/dist/src/vite/config-builder/configs/lib.d.ts +4 -0
- package/dist/src/vite/config-builder/configs/lib.d.ts.map +1 -0
- package/dist/src/vite/config-builder/configs/lib.js +57 -0
- package/dist/src/vite/config-builder/configs/script.d.ts +4 -0
- package/dist/src/vite/config-builder/configs/script.d.ts.map +1 -0
- package/dist/src/vite/config-builder/configs/script.js +42 -0
- package/dist/src/vite/config-builder/index.d.ts +3 -0
- package/dist/src/vite/config-builder/index.d.ts.map +1 -0
- package/dist/src/vite/config-builder/index.js +7 -0
- package/dist/src/vite/config-builder/main.d.ts +10 -0
- package/dist/src/vite/config-builder/main.d.ts.map +1 -0
- package/dist/src/vite/config-builder/main.js +37 -0
- package/dist/src/vite/config-builder/plugins.d.ts +30 -0
- package/dist/src/vite/config-builder/plugins.d.ts.map +1 -0
- package/dist/src/vite/config-builder/plugins.js +88 -0
- package/dist/src/vite/config-builder/shared/index.d.ts +3 -0
- package/dist/src/vite/config-builder/shared/index.d.ts.map +1 -0
- package/dist/src/vite/config-builder/shared/index.js +7 -0
- package/dist/src/vite/config-builder/shared/types.d.ts +155 -0
- package/dist/src/vite/config-builder/shared/types.d.ts.map +1 -0
- package/dist/src/vite/config-builder/shared/types.js +58 -0
- package/dist/src/vite/config-builder/shared/utils/helpers.d.ts +81 -0
- package/dist/src/vite/config-builder/shared/utils/helpers.d.ts.map +1 -0
- package/dist/src/vite/config-builder/shared/utils/helpers.js +61 -0
- package/dist/src/vite/config-builder/shared/utils/index.d.ts +4 -0
- package/dist/src/vite/config-builder/shared/utils/index.d.ts.map +1 -0
- package/dist/src/vite/config-builder/shared/utils/index.js +8 -0
- package/dist/src/vite/config-builder/shared/utils/projectConfig.d.ts +60 -0
- package/dist/src/vite/config-builder/shared/utils/projectConfig.d.ts.map +1 -0
- package/dist/src/vite/config-builder/shared/utils/projectConfig.js +85 -0
- package/dist/src/vite/config-builder/shared/utils/viteCommand.d.ts +24 -0
- package/dist/src/vite/config-builder/shared/utils/viteCommand.d.ts.map +1 -0
- package/dist/src/vite/config-builder/shared/utils/viteCommand.js +54 -0
- package/dist/src/vite/index.d.ts +3 -0
- package/dist/src/vite/index.d.ts.map +1 -0
- package/dist/src/vite/index.js +7 -0
- package/dist/src/vite/plugins/index.d.ts +3 -0
- package/dist/src/vite/plugins/index.d.ts.map +1 -0
- package/dist/src/vite/plugins/index.js +7 -0
- package/dist/src/vite/plugins/shadow-dom-inject-css/index.d.ts +8 -0
- package/dist/src/vite/plugins/shadow-dom-inject-css/index.d.ts.map +1 -0
- package/dist/src/vite/plugins/shadow-dom-inject-css/index.js +44 -0
- package/dist/src/vite/plugins/third-party-css-inject/index.d.ts +4 -0
- package/dist/src/vite/plugins/third-party-css-inject/index.d.ts.map +1 -0
- package/dist/src/vite/plugins/third-party-css-inject/index.js +13 -0
- package/dist/src/vite/plugins/third-party-css-inject/main.d.ts +17 -0
- package/dist/src/vite/plugins/third-party-css-inject/main.d.ts.map +1 -0
- package/dist/src/vite/plugins/third-party-css-inject/main.js +48 -0
- package/dist/src/vite/plugins/third-party-css-inject/utils.d.ts +5 -0
- package/dist/src/vite/plugins/third-party-css-inject/utils.d.ts.map +1 -0
- package/dist/src/vite/plugins/third-party-css-inject/utils.js +112 -0
- package/package.json +12 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
getViteCmdFlags: function() {
|
|
13
|
+
return getViteCmdFlags;
|
|
14
|
+
},
|
|
15
|
+
getViteCommand: function() {
|
|
16
|
+
return getViteCommand;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
20
|
+
const _chalk = /*#__PURE__*/ _interop_require_default._(require("chalk"));
|
|
21
|
+
const _mri = /*#__PURE__*/ _interop_require_default._(require("mri"));
|
|
22
|
+
const _vite = require("vite");
|
|
23
|
+
const _types = require("../types");
|
|
24
|
+
function getViteCommand(mode) {
|
|
25
|
+
const nxEnv = (0, _vite.loadEnv)(mode, process.cwd(), 'NX');
|
|
26
|
+
const nxCommandString = process?.env?.['npm_package_scripts_nx'];
|
|
27
|
+
const modeIsProd = mode === _types.ViteMode.PROD;
|
|
28
|
+
const stage = (nxEnv?.['NX_TASK_TARGET_CONFIGURATION']) ?? (modeIsProd ? _types.Stage.PROD : _types.Stage.DEV);
|
|
29
|
+
const target = nxEnv?.['NX_TASK_TARGET_TARGET'] ?? _types.Target.BUILD;
|
|
30
|
+
const flags = getViteCmdFlags(nxCommandString);
|
|
31
|
+
const showIn = {
|
|
32
|
+
prod: (...args)=>modeIsProd && console.log(...args),
|
|
33
|
+
dev: (...args)=>!modeIsProd && console.log(...args)
|
|
34
|
+
};
|
|
35
|
+
try {
|
|
36
|
+
showIn.prod(_chalk.default.cyan('Build Stage:'), _chalk.default.green(stage));
|
|
37
|
+
showIn.dev(_chalk.default.green(' ➜ '), _chalk.default.bold.white(`Stage: `), _chalk.default.cyan(stage));
|
|
38
|
+
} catch {
|
|
39
|
+
showIn.prod(console.log('Build Stage:', stage));
|
|
40
|
+
showIn.dev(console.log(` ➜ Stage: `, stage));
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
stage,
|
|
44
|
+
target,
|
|
45
|
+
flags
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function getViteCmdFlags(commandString) {
|
|
49
|
+
if (!commandString) return {};
|
|
50
|
+
const cleanedCommandString = commandString.replace(/"/g, '');
|
|
51
|
+
const args = (0, _mri.default)(cleanedCommandString.split(' '));
|
|
52
|
+
delete args['_'];
|
|
53
|
+
return args;
|
|
54
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _export_star = require("@swc/helpers/_/_export_star");
|
|
6
|
+
_export_star._(require("./third-party-css-inject"), exports);
|
|
7
|
+
_export_star._(require("./shadow-dom-inject-css"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ViteDevServer } from 'vite';
|
|
2
|
+
export declare function injectCssIntoShadowDom(): {
|
|
3
|
+
name: string;
|
|
4
|
+
configureServer(_server: ViteDevServer): void;
|
|
5
|
+
transform(src: string, id: string): void;
|
|
6
|
+
};
|
|
7
|
+
export default injectCssIntoShadowDom;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vite/plugins/shadow-dom-inject-css/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,wBAAgB,sBAAsB;;6BAMT,aAAa;mBAGvB,MAAM,MAAM,MAAM;EAiBpC;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
default: function() {
|
|
13
|
+
return _default;
|
|
14
|
+
},
|
|
15
|
+
injectCssIntoShadowDom: function() {
|
|
16
|
+
return injectCssIntoShadowDom;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
function injectCssIntoShadowDom() {
|
|
20
|
+
const fileRegex = /\.(css)$/;
|
|
21
|
+
let server;
|
|
22
|
+
return {
|
|
23
|
+
name: 'nizza:inject-css-into-shadow-dom',
|
|
24
|
+
configureServer (_server) {
|
|
25
|
+
server = _server;
|
|
26
|
+
},
|
|
27
|
+
transform (src, id) {
|
|
28
|
+
if (server) {
|
|
29
|
+
const relativeId = /\/lib\/.*/.exec(id)?.[0].replace('/lib/', '');
|
|
30
|
+
if (fileRegex.test(id)) {
|
|
31
|
+
server.ws.send({
|
|
32
|
+
type: 'custom',
|
|
33
|
+
event: 'inject-css-into-shadow-dom:hot-updated',
|
|
34
|
+
data: {
|
|
35
|
+
id: relativeId,
|
|
36
|
+
content: src
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const _default = injectCssIntoShadowDom;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vite/plugins/third-party-css-inject/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAEnD,cAAc,QAAQ,CAAC;AACvB,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _export_star = require("@swc/helpers/_/_export_star");
|
|
12
|
+
const _main = _export_star._(require("./main"), exports);
|
|
13
|
+
const _default = _main.thirdPartyCssInjectPlugin;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
export interface Execute {
|
|
3
|
+
function: (data?: string) => void;
|
|
4
|
+
listen: string;
|
|
5
|
+
observer: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ThirdPartyCssInjectPlugin {
|
|
8
|
+
topExecutionPriority?: boolean;
|
|
9
|
+
execute?: Execute[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Inject the CSS compiled with JS.
|
|
13
|
+
*
|
|
14
|
+
* @return {Plugin}
|
|
15
|
+
*/
|
|
16
|
+
export declare function thirdPartyCssInjectPlugin({ topExecutionPriority, execute }?: ThirdPartyCssInjectPlugin | undefined): Plugin;
|
|
17
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../src/vite/plugins/third-party-css-inject/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAGnD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACrB;AACD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAE,yBAAyB,GAAG,SAG9D,GACA,MAAM,CA8CR"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "thirdPartyCssInjectPlugin", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return thirdPartyCssInjectPlugin;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _utils = require("./utils");
|
|
12
|
+
function thirdPartyCssInjectPlugin({ topExecutionPriority, execute } = {
|
|
13
|
+
topExecutionPriority: true,
|
|
14
|
+
execute: []
|
|
15
|
+
}) {
|
|
16
|
+
//Globally so we can add it to legacy and non-legacy bundle.
|
|
17
|
+
let config;
|
|
18
|
+
return {
|
|
19
|
+
apply: 'build',
|
|
20
|
+
enforce: 'post',
|
|
21
|
+
name: 'nizza:third-party-css-inject',
|
|
22
|
+
configResolved (_config) {
|
|
23
|
+
config = _config;
|
|
24
|
+
},
|
|
25
|
+
async generateBundle (opts, bundle) {
|
|
26
|
+
if (config.build.ssr) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const htmlFiles = Object.keys(bundle).filter((i)=>i.endsWith('.html'));
|
|
30
|
+
const cssAssets = Object.keys(bundle).filter((i)=>bundle[i]?.type == 'asset' && bundle[i]?.fileName.endsWith('.css'));
|
|
31
|
+
const jsAssets = Object.keys(bundle).filter((i)=>bundle[i]?.type == 'chunk' && bundle[i]?.fileName.match(/.[cm]?js$/) != null && !bundle[i]?.fileName.includes('polyfill'));
|
|
32
|
+
for (const name of htmlFiles){
|
|
33
|
+
const htmlChunk = bundle[name];
|
|
34
|
+
let replacedHtml = htmlChunk.source;
|
|
35
|
+
cssAssets.forEach((cssName)=>{
|
|
36
|
+
replacedHtml = (0, _utils.removeLinkStyleSheets)(replacedHtml, cssName);
|
|
37
|
+
htmlChunk.source = replacedHtml;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const jsAsset = bundle[jsAssets[0]];
|
|
41
|
+
const cssInjectionCode = await (0, _utils.buildCSSInjectionCode)(execute);
|
|
42
|
+
const appCode = jsAsset.code;
|
|
43
|
+
jsAsset.code = topExecutionPriority ? '' : appCode;
|
|
44
|
+
jsAsset.code += cssInjectionCode ? cssInjectionCode.code : '';
|
|
45
|
+
jsAsset.code += !topExecutionPriority ? '' : appCode;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { OutputChunk } from 'rollup';
|
|
2
|
+
import type { Execute } from '.';
|
|
3
|
+
export declare function buildCSSInjectionCode(execute?: Execute[]): Promise<OutputChunk | null | any>;
|
|
4
|
+
export declare function removeLinkStyleSheets(html: string, cssFileName: string): string;
|
|
5
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/vite/plugins/third-party-css-inject/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAuCjC,wBAAsB,qBAAqB,CACzC,OAAO,CAAC,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,GAAG,CAAC,CA0BnC;AAoCD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,MAAM,CAKR"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
buildCSSInjectionCode: function() {
|
|
13
|
+
return buildCSSInjectionCode;
|
|
14
|
+
},
|
|
15
|
+
removeLinkStyleSheets: function() {
|
|
16
|
+
return removeLinkStyleSheets;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _vite = require("vite");
|
|
20
|
+
const cssInjectedByJsId = '\0vite/all-css';
|
|
21
|
+
const waitForElement = (selector, observerElementName = 'body')=>{
|
|
22
|
+
const getElement = (selector)=>document.querySelector(selector);
|
|
23
|
+
return new Promise((resolve)=>{
|
|
24
|
+
if (getElement(selector)) return resolve(getElement(selector));
|
|
25
|
+
const observer = new MutationObserver(()=>{
|
|
26
|
+
if (getElement(selector)) {
|
|
27
|
+
resolve(getElement(selector));
|
|
28
|
+
observer.disconnect();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
let observerElement = document.body;
|
|
32
|
+
switch(observerElementName){
|
|
33
|
+
case 'body':
|
|
34
|
+
observerElement = document.body;
|
|
35
|
+
break;
|
|
36
|
+
case 'head':
|
|
37
|
+
observerElement = document.head;
|
|
38
|
+
break;
|
|
39
|
+
default:
|
|
40
|
+
observerElement = document.body;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
observer.observe(observerElement, {
|
|
44
|
+
childList: true,
|
|
45
|
+
subtree: true
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
async function buildCSSInjectionCode(execute) {
|
|
50
|
+
const res = await (0, _vite.build)({
|
|
51
|
+
root: '',
|
|
52
|
+
configFile: false,
|
|
53
|
+
logLevel: 'error',
|
|
54
|
+
plugins: [
|
|
55
|
+
injectionCSSCodePlugin(execute)
|
|
56
|
+
],
|
|
57
|
+
build: {
|
|
58
|
+
write: false,
|
|
59
|
+
target: 'es2015',
|
|
60
|
+
minify: 'esbuild',
|
|
61
|
+
assetsDir: '',
|
|
62
|
+
rollupOptions: {
|
|
63
|
+
input: {
|
|
64
|
+
'all-css': cssInjectedByJsId
|
|
65
|
+
},
|
|
66
|
+
output: {
|
|
67
|
+
format: 'iife',
|
|
68
|
+
manualChunks: undefined
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const _cssChunk = Array.isArray(res) ? res[0] : res;
|
|
74
|
+
if (!('output' in _cssChunk)) return null;
|
|
75
|
+
return _cssChunk.output[0];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @param {string} cssToInject
|
|
79
|
+
* @param {string|null} styleId
|
|
80
|
+
* @return {Plugin}
|
|
81
|
+
*/ function injectionCSSCodePlugin(execute) {
|
|
82
|
+
return {
|
|
83
|
+
name: 'vite:third-party-css-inject',
|
|
84
|
+
// @ts-ignore
|
|
85
|
+
resolveId (id) {
|
|
86
|
+
if (id == cssInjectedByJsId) {
|
|
87
|
+
return id;
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
// @ts-ignore
|
|
91
|
+
load (id) {
|
|
92
|
+
if (id == cssInjectedByJsId) {
|
|
93
|
+
let executeJs = [];
|
|
94
|
+
if (execute?.length) {
|
|
95
|
+
executeJs = execute.map((executeData, index)=>{
|
|
96
|
+
return `waitForElement('${executeData.observer}', '${executeData.listen}').then((elm)=>{
|
|
97
|
+
const extra${index}=${executeData.function};extra${index}(elm)
|
|
98
|
+
});`;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return `try{if(typeof document != 'undefined'){
|
|
102
|
+
const waitForElement=${waitForElement.toString()};
|
|
103
|
+
${executeJs.join(' ')}
|
|
104
|
+
}}catch(e){console.error('vite-third-party-css-inject-plugin', e);}`;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function removeLinkStyleSheets(html, cssFileName) {
|
|
110
|
+
const removeCSS = new RegExp(`<link rel=".*"[^>]*?href=".*/?${cssFileName}"[^>]*?>`);
|
|
111
|
+
return html.replace(removeCSS, '');
|
|
112
|
+
}
|
package/package.json
ADDED