@praxisjs/vite-plugin 4.0.6 → 4.1.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/CHANGELOG.md +22 -0
- package/dist/decorators.d.ts +15 -0
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +437 -16
- package/dist/decorators.js.map +1 -1
- package/dist/hmr.d.ts +5 -0
- package/dist/hmr.d.ts.map +1 -0
- package/dist/hmr.js +106 -0
- package/dist/hmr.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -18
- package/dist/index.js.map +1 -1
- package/dist/keyed-lists.d.ts +27 -0
- package/dist/keyed-lists.d.ts.map +1 -0
- package/dist/keyed-lists.js +248 -0
- package/dist/keyed-lists.js.map +1 -0
- package/dist/mapped-output.d.ts +32 -0
- package/dist/mapped-output.d.ts.map +1 -0
- package/dist/mapped-output.js +107 -0
- package/dist/mapped-output.js.map +1 -0
- package/dist/templates.d.ts +51 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +707 -0
- package/dist/templates.js.map +1 -0
- package/package.json +13 -5
- package/src/decorators.ts +456 -16
- package/src/hmr.ts +108 -0
- package/src/index.ts +22 -25
- package/src/keyed-lists.ts +282 -0
- package/src/mapped-output.ts +116 -0
- package/src/templates.ts +729 -0
- package/dist/__tests__/css-esbuild-error.test.d.ts +0 -2
- package/dist/__tests__/css-esbuild-error.test.d.ts.map +0 -1
- package/dist/__tests__/css-esbuild-error.test.js +0 -25
- package/dist/__tests__/css-esbuild-error.test.js.map +0 -1
- package/dist/__tests__/css-tsconfig-error.test.d.ts +0 -2
- package/dist/__tests__/css-tsconfig-error.test.d.ts.map +0 -1
- package/dist/__tests__/css-tsconfig-error.test.js +0 -39
- package/dist/__tests__/css-tsconfig-error.test.js.map +0 -1
- package/dist/__tests__/css-tsconfig-no-config.test.d.ts +0 -2
- package/dist/__tests__/css-tsconfig-no-config.test.d.ts.map +0 -1
- package/dist/__tests__/css-tsconfig-no-config.test.js +0 -38
- package/dist/__tests__/css-tsconfig-no-config.test.js.map +0 -1
- package/dist/__tests__/css.test.d.ts +0 -2
- package/dist/__tests__/css.test.d.ts.map +0 -1
- package/dist/__tests__/css.test.js +0 -288
- package/dist/__tests__/css.test.js.map +0 -1
- package/dist/__tests__/index.test.d.ts +0 -2
- package/dist/__tests__/index.test.d.ts.map +0 -1
- package/dist/__tests__/index.test.js +0 -301
- package/dist/__tests__/index.test.js.map +0 -1
- package/src/__tests__/css-esbuild-error.test.ts +0 -39
- package/src/__tests__/css-tsconfig-error.test.ts +0 -53
- package/src/__tests__/css-tsconfig-no-config.test.ts +0 -52
- package/src/__tests__/css.test.ts +0 -381
- package/src/__tests__/index.test.ts +0 -351
- package/tsconfig.json +0 -11
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-esbuild-error.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/css-esbuild-error.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// Isolated test file: mocks esbuild to throw so we can exercise the
|
|
2
|
-
// esbuild-failure branch in extractStaticCSS (css.ts line 97).
|
|
3
|
-
import { describe, it, expect, vi, beforeAll, afterAll } from "vitest";
|
|
4
|
-
import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
|
|
5
|
-
import { tmpdir } from "node:os";
|
|
6
|
-
import path from "node:path";
|
|
7
|
-
vi.mock("esbuild", () => ({
|
|
8
|
-
build: vi.fn().mockRejectedValue(new Error("esbuild crash")),
|
|
9
|
-
}));
|
|
10
|
-
let tmpDir;
|
|
11
|
-
beforeAll(() => {
|
|
12
|
-
tmpDir = mkdtempSync(path.join(tmpdir(), "praxis-css-esbuild-err-"));
|
|
13
|
-
writeFileSync(path.join(tmpDir, "styles.ts"), `import { Stylesheet } from "@praxisjs/css";\nclass X extends Stylesheet {}`);
|
|
14
|
-
});
|
|
15
|
-
afterAll(() => { rmSync(tmpDir, { recursive: true, force: true }); });
|
|
16
|
-
describe("praxisjsCSS() — esbuild failure (mocked)", () => {
|
|
17
|
-
it("returns empty CSS when esbuild throws during extraction", async () => {
|
|
18
|
-
const { praxisjsCSS } = await import("../css");
|
|
19
|
-
const p = praxisjsCSS();
|
|
20
|
-
p.configResolved({ command: "build", root: tmpDir });
|
|
21
|
-
await p.buildStart.call({ info: vi.fn() });
|
|
22
|
-
expect(p.load("\0virtual:praxisjs/styles.css")).toContain("no static styles found");
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=css-esbuild-error.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-esbuild-error.test.js","sourceRoot":"","sources":["../../src/__tests__/css-esbuild-error.test.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,+DAA+D;AAC/D,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;CAC7D,CAAC,CAAC,CAAC;AAQJ,IAAI,MAAc,CAAC;AAEnB,SAAS,CAAC,GAAG,EAAE;IACb,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACrE,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B,4EAA4E,CAC7E,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,WAAW,EAA6I,CAAC;QACnK,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAA6B,CAAC,CAAC;QAChF,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-tsconfig-error.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/css-tsconfig-error.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// Isolated test file: mocks typescript to throw so we can exercise the
|
|
2
|
-
// readPathAliasPrefixes() catch branch in css.ts.
|
|
3
|
-
import { describe, it, expect, vi, beforeAll, afterAll } from "vitest";
|
|
4
|
-
import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
|
|
5
|
-
import { tmpdir } from "node:os";
|
|
6
|
-
import path from "node:path";
|
|
7
|
-
vi.mock("typescript", async (importOriginal) => {
|
|
8
|
-
const actual = await importOriginal();
|
|
9
|
-
return {
|
|
10
|
-
default: {
|
|
11
|
-
...actual,
|
|
12
|
-
readConfigFile: () => {
|
|
13
|
-
throw new Error("tsconfig read crash");
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
let tmpDir;
|
|
19
|
-
beforeAll(() => {
|
|
20
|
-
tmpDir = mkdtempSync(path.join(tmpdir(), "praxis-css-tsconfig-err-"));
|
|
21
|
-
writeFileSync(path.join(tmpDir, "tsconfig.json"), "{}");
|
|
22
|
-
writeFileSync(path.join(tmpDir, "styles.ts"), `
|
|
23
|
-
import { Stylesheet, Styled } from "@praxisjs/css";
|
|
24
|
-
class X extends Stylesheet { $root = this.css({ display: "flex" }); }
|
|
25
|
-
Styled(X);
|
|
26
|
-
`);
|
|
27
|
-
});
|
|
28
|
-
afterAll(() => { rmSync(tmpDir, { recursive: true, force: true }); });
|
|
29
|
-
describe("praxisjsCSS() — tsconfig path-alias lookup failure (mocked)", () => {
|
|
30
|
-
it("still extracts CSS when reading tsconfig paths throws", async () => {
|
|
31
|
-
const { praxisjsCSS } = await import("../css");
|
|
32
|
-
const p = praxisjsCSS();
|
|
33
|
-
p.configResolved({ command: "build", root: tmpDir });
|
|
34
|
-
await p.buildStart.call({ info: vi.fn() });
|
|
35
|
-
const css = p.load("\0virtual:praxisjs/styles.css");
|
|
36
|
-
expect(css).toContain(".prx-root-");
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=css-tsconfig-error.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-tsconfig-error.test.js","sourceRoot":"","sources":["../../src/__tests__/css-tsconfig-error.test.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kDAAkD;AAClD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,EAA+B,CAAC;IACnE,OAAO;QACL,OAAO,EAAE;YACP,GAAG,MAAM;YACT,cAAc,EAAE,GAAG,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAQH,IAAI,MAAc,CAAC;AAEnB,SAAS,CAAC,GAAG,EAAE;IACb,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;IACtE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B;;;;CAIH,CACE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,WAAW,EAA6I,CAAC;QACnK,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAA6B,CAAC,CAAC;QAChF,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAW,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-tsconfig-no-config.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/css-tsconfig-no-config.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// Isolated test file: mocks typescript's readConfigFile to return a result
|
|
2
|
-
// with no `config` (the shape its own types allow but the real implementation
|
|
3
|
-
// never produces) to exercise the `configFile.config ?? {}` fallback in css.ts.
|
|
4
|
-
import { describe, it, expect, vi, beforeAll, afterAll } from "vitest";
|
|
5
|
-
import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
|
|
6
|
-
import { tmpdir } from "node:os";
|
|
7
|
-
import path from "node:path";
|
|
8
|
-
vi.mock("typescript", async (importOriginal) => {
|
|
9
|
-
const actual = await importOriginal();
|
|
10
|
-
return {
|
|
11
|
-
default: {
|
|
12
|
-
...actual,
|
|
13
|
-
readConfigFile: () => ({ config: undefined }),
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
let tmpDir;
|
|
18
|
-
beforeAll(() => {
|
|
19
|
-
tmpDir = mkdtempSync(path.join(tmpdir(), "praxis-css-tsconfig-noconfig-"));
|
|
20
|
-
writeFileSync(path.join(tmpDir, "tsconfig.json"), "{}");
|
|
21
|
-
writeFileSync(path.join(tmpDir, "styles.ts"), `
|
|
22
|
-
import { Stylesheet, Styled } from "@praxisjs/css";
|
|
23
|
-
class X extends Stylesheet { $root = this.css({ display: "flex" }); }
|
|
24
|
-
Styled(X);
|
|
25
|
-
`);
|
|
26
|
-
});
|
|
27
|
-
afterAll(() => { rmSync(tmpDir, { recursive: true, force: true }); });
|
|
28
|
-
describe("praxisjsCSS() — tsconfig with no config object (mocked)", () => {
|
|
29
|
-
it("still extracts CSS when readConfigFile returns no config", async () => {
|
|
30
|
-
const { praxisjsCSS } = await import("../css");
|
|
31
|
-
const p = praxisjsCSS();
|
|
32
|
-
p.configResolved({ command: "build", root: tmpDir });
|
|
33
|
-
await p.buildStart.call({ info: vi.fn() });
|
|
34
|
-
const css = p.load("\0virtual:praxisjs/styles.css");
|
|
35
|
-
expect(css).toContain(".prx-root-");
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=css-tsconfig-no-config.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css-tsconfig-no-config.test.js","sourceRoot":"","sources":["../../src/__tests__/css-tsconfig-no-config.test.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,gFAAgF;AAChF,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,EAA+B,CAAC;IACnE,OAAO;QACL,OAAO,EAAE;YACP,GAAG,MAAM;YACT,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAQH,IAAI,MAAc,CAAC;AAEnB,SAAS,CAAC,GAAG,EAAE;IACb,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;IAC3E,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,aAAa,CACX,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B;;;;CAIH,CACE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,QAAQ,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACvE,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,WAAW,EAA6I,CAAC;QACnK,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAA6B,CAAC,CAAC;QAChF,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAW,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/css.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeAll, afterAll } from "vitest";
|
|
2
|
-
import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from "node:fs";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
import vm from "node:vm";
|
|
6
|
-
import { praxisjsCSS } from "../css";
|
|
7
|
-
function hooks(p) {
|
|
8
|
-
return p;
|
|
9
|
-
}
|
|
10
|
-
function servePlugin() {
|
|
11
|
-
const p = praxisjsCSS();
|
|
12
|
-
hooks(p).configResolved({ command: "serve", root: "/" });
|
|
13
|
-
return p;
|
|
14
|
-
}
|
|
15
|
-
function buildPlugin(root = "/") {
|
|
16
|
-
const p = praxisjsCSS();
|
|
17
|
-
hooks(p).configResolved({ command: "build", root });
|
|
18
|
-
return p;
|
|
19
|
-
}
|
|
20
|
-
// ─── Plugin shape ─────────────────────────────────────────────────────────────
|
|
21
|
-
describe("praxisjsCSS() — plugin shape", () => {
|
|
22
|
-
it("has name praxisjs:css", () => {
|
|
23
|
-
expect(praxisjsCSS().name).toBe("praxisjs:css");
|
|
24
|
-
});
|
|
25
|
-
it("enforces 'pre'", () => {
|
|
26
|
-
expect(praxisjsCSS().enforce).toBe("pre");
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
// ─── resolveId() ─────────────────────────────────────────────────────────────
|
|
30
|
-
describe("praxisjsCSS() — resolveId()", () => {
|
|
31
|
-
it("resolves virtual:praxisjs/styles.css to internal null-prefixed id", () => {
|
|
32
|
-
const p = servePlugin();
|
|
33
|
-
expect(hooks(p).resolveId("virtual:praxisjs/styles.css")).toBe("\0virtual:praxisjs/styles.css");
|
|
34
|
-
});
|
|
35
|
-
it("returns undefined for any other id", () => {
|
|
36
|
-
const p = servePlugin();
|
|
37
|
-
expect(hooks(p).resolveId("./component.ts")).toBeUndefined();
|
|
38
|
-
expect(hooks(p).resolveId("vite/client")).toBeUndefined();
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
// ─── config() ────────────────────────────────────────────────────────────────
|
|
42
|
-
describe("praxisjsCSS() — config()", () => {
|
|
43
|
-
it("injects __PRAXIS_CSS_STATIC__ define in build mode", () => {
|
|
44
|
-
const p = praxisjsCSS();
|
|
45
|
-
const result = hooks(p).config({}, { command: "build" });
|
|
46
|
-
expect(result?.define?.["__PRAXIS_CSS_STATIC__"]).toBe("true");
|
|
47
|
-
});
|
|
48
|
-
it("returns undefined in serve mode", () => {
|
|
49
|
-
const p = praxisjsCSS();
|
|
50
|
-
expect(hooks(p).config({}, { command: "serve" })).toBeUndefined();
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
// ─── load() ──────────────────────────────────────────────────────────────────
|
|
54
|
-
describe("praxisjsCSS() — load()", () => {
|
|
55
|
-
it("returns runtime-injection comment for virtual id in serve mode", () => {
|
|
56
|
-
const result = hooks(servePlugin()).load("\0virtual:praxisjs/styles.css");
|
|
57
|
-
expect(result).toContain("runtime injection active");
|
|
58
|
-
});
|
|
59
|
-
it("returns 'no static styles found' for virtual id in build mode before extraction", () => {
|
|
60
|
-
const result = hooks(buildPlugin()).load("\0virtual:praxisjs/styles.css");
|
|
61
|
-
expect(result).toContain("no static styles found");
|
|
62
|
-
});
|
|
63
|
-
it("returns undefined for non-virtual ids", () => {
|
|
64
|
-
expect(hooks(servePlugin()).load("./component.ts")).toBeUndefined();
|
|
65
|
-
expect(hooks(buildPlugin()).load("node_modules/something")).toBeUndefined();
|
|
66
|
-
});
|
|
67
|
-
it("returns extracted CSS header in build mode after extraction", async () => {
|
|
68
|
-
// set up extraction output by running buildStart first (integration test below)
|
|
69
|
-
// this test checks the static CSS header content after buildStart sets staticCSS
|
|
70
|
-
const p = buildPlugin(tmpDir);
|
|
71
|
-
const info = vi.fn();
|
|
72
|
-
await hooks(p).buildStart.call({ info });
|
|
73
|
-
const result = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
74
|
-
expect(result).toContain("static extraction");
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
// ─── buildStart() — integration ──────────────────────────────────────────────
|
|
78
|
-
let tmpDir;
|
|
79
|
-
beforeAll(async () => {
|
|
80
|
-
tmpDir = mkdtempSync(path.join(tmpdir(), "praxis-css-test-"));
|
|
81
|
-
// tsconfig.json — exercises the findTsConfig() success branch (return p)
|
|
82
|
-
writeFileSync(path.join(tmpDir, "tsconfig.json"), "{}");
|
|
83
|
-
// File 1: extends Stylesheet + uses Styled()
|
|
84
|
-
writeFileSync(path.join(tmpDir, "button.ts"), `
|
|
85
|
-
import { Stylesheet, Styled } from "@praxisjs/css";
|
|
86
|
-
class BtnStyles extends Stylesheet {
|
|
87
|
-
$root = this.css({ display: "inline-flex", padding: "8px 16px" });
|
|
88
|
-
$hover = this.css({ opacity: 0.9 });
|
|
89
|
-
}
|
|
90
|
-
Styled(BtnStyles);
|
|
91
|
-
`);
|
|
92
|
-
// File 2: globalStyle()
|
|
93
|
-
writeFileSync(path.join(tmpDir, "base.ts"), `
|
|
94
|
-
import { globalStyle } from "@praxisjs/css";
|
|
95
|
-
globalStyle(_css => "*, *::before, *::after { box-sizing: border-box; }");
|
|
96
|
-
`);
|
|
97
|
-
// File 3: keyframes()
|
|
98
|
-
writeFileSync(path.join(tmpDir, "animations.ts"), `
|
|
99
|
-
import { keyframes } from "@praxisjs/css";
|
|
100
|
-
const spin = keyframes("spin", {
|
|
101
|
-
from: { transform: "rotate(0deg)" },
|
|
102
|
-
to: { transform: "rotate(360deg)" },
|
|
103
|
-
});
|
|
104
|
-
`);
|
|
105
|
-
// File 4: Themed()
|
|
106
|
-
writeFileSync(path.join(tmpDir, "theme.ts"), `
|
|
107
|
-
import { Themed } from "@praxisjs/css";
|
|
108
|
-
class AppTokens { colorBrand = "#6d5bbd"; }
|
|
109
|
-
class LightTheme extends AppTokens {}
|
|
110
|
-
Themed(AppTokens, LightTheme);
|
|
111
|
-
`);
|
|
112
|
-
// File that imports another @praxisjs/* package — exercises the praxis stub,
|
|
113
|
-
// calls noop, AND calls noop's return value to achieve full function coverage
|
|
114
|
-
writeFileSync(path.join(tmpDir, "with-runtime.ts"), `
|
|
115
|
-
import { signal } from "@praxisjs/core";
|
|
116
|
-
import { globalStyle } from "@praxisjs/css";
|
|
117
|
-
globalStyle(_css => "html { font-family: system-ui; }");
|
|
118
|
-
const s = signal(0);
|
|
119
|
-
if (typeof s === 'function') s();
|
|
120
|
-
console.log(s);
|
|
121
|
-
setTimeout(() => {}, 0);
|
|
122
|
-
clearTimeout(0);
|
|
123
|
-
`);
|
|
124
|
-
// File that imports a third-party package — exercises require() fallback return {}
|
|
125
|
-
writeFileSync(path.join(tmpDir, "with-thirdparty.ts"), `
|
|
126
|
-
import { globalStyle } from "@praxisjs/css";
|
|
127
|
-
import { format } from "date-fns";
|
|
128
|
-
globalStyle(_css => "body { color: black; }");
|
|
129
|
-
void format;
|
|
130
|
-
`);
|
|
131
|
-
// Subdirectory with a .tsx file — exercises isDirectory() and .tsx branches
|
|
132
|
-
const subDir = path.join(tmpDir, "components");
|
|
133
|
-
mkdirSync(subDir);
|
|
134
|
-
writeFileSync(path.join(subDir, "card.tsx"), `
|
|
135
|
-
import { Stylesheet, Styled } from "@praxisjs/css";
|
|
136
|
-
class CardStyles extends Stylesheet {
|
|
137
|
-
$card = this.css({ borderRadius: "8px" });
|
|
138
|
-
}
|
|
139
|
-
Styled(CardStyles);
|
|
140
|
-
`);
|
|
141
|
-
// Skipped directory (SKIP_DIRS) — exercises the SKIP_DIRS.has() branch
|
|
142
|
-
mkdirSync(path.join(tmpDir, "node_modules"));
|
|
143
|
-
// Hidden file — exercises the startsWith(".") branch
|
|
144
|
-
writeFileSync(path.join(tmpDir, ".hidden.ts"), `export {};`);
|
|
145
|
-
// Non-TS/TSX file — exercises the else-if false branch in findSourceFiles
|
|
146
|
-
writeFileSync(path.join(tmpDir, "styles.css"), `body { margin: 0; }`);
|
|
147
|
-
// Non-matching TS file (should be ignored)
|
|
148
|
-
writeFileSync(path.join(tmpDir, "utils.ts"), `export const add = (a: number, b: number) => a + b;`);
|
|
149
|
-
});
|
|
150
|
-
afterAll(() => {
|
|
151
|
-
rmSync(tmpDir, { recursive: true, force: true });
|
|
152
|
-
});
|
|
153
|
-
describe("praxisjsCSS() — buildStart() integration", () => {
|
|
154
|
-
it("extracts scoped class CSS from Stylesheet subclasses", async () => {
|
|
155
|
-
const p = buildPlugin(tmpDir);
|
|
156
|
-
const info = vi.fn();
|
|
157
|
-
await hooks(p).buildStart.call({ info });
|
|
158
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
159
|
-
expect(css).toContain(".prx-root-");
|
|
160
|
-
expect(css).toContain("display: inline-flex");
|
|
161
|
-
});
|
|
162
|
-
it("extracts globalStyle CSS", async () => {
|
|
163
|
-
const p = buildPlugin(tmpDir);
|
|
164
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
165
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
166
|
-
expect(css).toContain("box-sizing: border-box");
|
|
167
|
-
});
|
|
168
|
-
it("extracts @keyframes CSS", async () => {
|
|
169
|
-
const p = buildPlugin(tmpDir);
|
|
170
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
171
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
172
|
-
expect(css).toContain("@keyframes prx-spin-");
|
|
173
|
-
expect(css).toContain("rotate(0deg)");
|
|
174
|
-
});
|
|
175
|
-
it("extracts :root vars from Themed()", async () => {
|
|
176
|
-
const p = buildPlugin(tmpDir);
|
|
177
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
178
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
179
|
-
expect(css).toContain(":root");
|
|
180
|
-
expect(css).toContain("--color-brand: #6d5bbd");
|
|
181
|
-
});
|
|
182
|
-
it(":root vars appear before class rules", async () => {
|
|
183
|
-
const p = buildPlugin(tmpDir);
|
|
184
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
185
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
186
|
-
const rootIdx = css.indexOf(":root");
|
|
187
|
-
const classIdx = css.indexOf(".prx-");
|
|
188
|
-
expect(rootIdx).toBeLessThan(classIdx);
|
|
189
|
-
});
|
|
190
|
-
it("calls this.info() with extracted rule count", async () => {
|
|
191
|
-
const p = buildPlugin(tmpDir);
|
|
192
|
-
const info = vi.fn();
|
|
193
|
-
await hooks(p).buildStart.call({ info });
|
|
194
|
-
expect(info).toHaveBeenCalledWith(expect.stringContaining("extracted"));
|
|
195
|
-
});
|
|
196
|
-
it("returns empty when root has no matching source files", async () => {
|
|
197
|
-
const emptyDir = mkdtempSync(path.join(tmpdir(), "praxis-empty-"));
|
|
198
|
-
try {
|
|
199
|
-
const p = buildPlugin(emptyDir);
|
|
200
|
-
const info = vi.fn();
|
|
201
|
-
await hooks(p).buildStart.call({ info });
|
|
202
|
-
expect(info).not.toHaveBeenCalled();
|
|
203
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
204
|
-
expect(css).toContain("no static styles found");
|
|
205
|
-
}
|
|
206
|
-
finally {
|
|
207
|
-
rmSync(emptyDir, { recursive: true, force: true });
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
it("skips non-serve mode in buildStart for serve command", async () => {
|
|
211
|
-
const p = servePlugin();
|
|
212
|
-
const info = vi.fn();
|
|
213
|
-
await hooks(p).buildStart.call({ info });
|
|
214
|
-
expect(info).not.toHaveBeenCalled();
|
|
215
|
-
});
|
|
216
|
-
it("handles a root directory that cannot be read (readdirSync throws)", async () => {
|
|
217
|
-
const p = buildPlugin("/this/path/does/not/exist/at/all");
|
|
218
|
-
const info = vi.fn();
|
|
219
|
-
await hooks(p).buildStart.call({ info });
|
|
220
|
-
expect(info).not.toHaveBeenCalled();
|
|
221
|
-
expect(hooks(p).load("\0virtual:praxisjs/styles.css")).toContain("no static styles found");
|
|
222
|
-
});
|
|
223
|
-
it("resolves tsconfig path aliases (e.g. `@/*`) instead of externalizing them", async () => {
|
|
224
|
-
const aliasDir = mkdtempSync(path.join(tmpdir(), "praxis-css-alias-"));
|
|
225
|
-
try {
|
|
226
|
-
writeFileSync(path.join(aliasDir, "tsconfig.json"), JSON.stringify({ compilerOptions: { baseUrl: ".", paths: { "@/*": ["src/*"] } } }));
|
|
227
|
-
mkdirSync(path.join(aliasDir, "src"));
|
|
228
|
-
writeFileSync(path.join(aliasDir, "src", "tokens.ts"), `export const radius = "42px";`);
|
|
229
|
-
writeFileSync(path.join(aliasDir, "button.ts"), `
|
|
230
|
-
import { Stylesheet, Styled } from "@praxisjs/css";
|
|
231
|
-
import { radius } from "@/tokens";
|
|
232
|
-
class ButtonStyles extends Stylesheet {
|
|
233
|
-
$root = this.css({ borderRadius: radius });
|
|
234
|
-
}
|
|
235
|
-
Styled(ButtonStyles);
|
|
236
|
-
`);
|
|
237
|
-
const p = buildPlugin(aliasDir);
|
|
238
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
239
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
240
|
-
// Without the fix, `@/tokens` resolves to `{}` in the sandbox, `radius` is
|
|
241
|
-
// `undefined`, the Stylesheet field initializer throws, and the whole
|
|
242
|
-
// sheet is silently dropped — this asserts the real value made it through.
|
|
243
|
-
expect(css).toContain("border-radius: 42px");
|
|
244
|
-
}
|
|
245
|
-
finally {
|
|
246
|
-
rmSync(aliasDir, { recursive: true, force: true });
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
it("still externalizes real npm packages that happen to look alias-like (scoped packages)", async () => {
|
|
250
|
-
const aliasDir = mkdtempSync(path.join(tmpdir(), "praxis-css-alias-scoped-"));
|
|
251
|
-
try {
|
|
252
|
-
writeFileSync(path.join(aliasDir, "tsconfig.json"), JSON.stringify({ compilerOptions: { baseUrl: ".", paths: { "@/*": ["src/*"] } } }));
|
|
253
|
-
writeFileSync(path.join(aliasDir, "button.ts"), `
|
|
254
|
-
import { globalStyle } from "@praxisjs/css";
|
|
255
|
-
import { format } from "date-fns";
|
|
256
|
-
globalStyle(_css => "body { color: black; }");
|
|
257
|
-
void format;
|
|
258
|
-
`);
|
|
259
|
-
const p = buildPlugin(aliasDir);
|
|
260
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
261
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
262
|
-
expect(css).toContain("body { color: black; }");
|
|
263
|
-
}
|
|
264
|
-
finally {
|
|
265
|
-
rmSync(aliasDir, { recursive: true, force: true });
|
|
266
|
-
}
|
|
267
|
-
});
|
|
268
|
-
it("handles vm execution error gracefully (returns empty CSS)", async () => {
|
|
269
|
-
const spy = vi.spyOn(vm, "runInNewContext").mockImplementationOnce(() => { throw new Error("vm crash"); });
|
|
270
|
-
try {
|
|
271
|
-
const p = buildPlugin(tmpDir);
|
|
272
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
273
|
-
expect(hooks(p).load("\0virtual:praxisjs/styles.css")).toContain("no static styles found");
|
|
274
|
-
}
|
|
275
|
-
finally {
|
|
276
|
-
spy.mockRestore();
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
it("exercises the @praxisjs/* stub path (require for non-css praxis packages)", async () => {
|
|
280
|
-
const p = buildPlugin(tmpDir);
|
|
281
|
-
await hooks(p).buildStart.call({ info: vi.fn() });
|
|
282
|
-
const css = hooks(p).load("\0virtual:praxisjs/styles.css");
|
|
283
|
-
// The with-runtime.ts fixture imports @praxisjs/core which uses the stub
|
|
284
|
-
// If no error was thrown, the stub handled it correctly
|
|
285
|
-
expect(typeof css).toBe("string");
|
|
286
|
-
});
|
|
287
|
-
});
|
|
288
|
-
//# sourceMappingURL=css.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"css.test.js","sourceRoot":"","sources":["../../src/__tests__/css.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":""}
|