@replicast/vite-plugin 1.0.0-rc.6 → 1.0.0-rc.8
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/dist/index.d.ts +51 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -16
- package/dist/index.js.map +1 -1
- package/dist/transforms/entity.d.ts +9 -0
- package/dist/transforms/entity.d.ts.map +1 -0
- package/dist/transforms/entity.js +64 -0
- package/dist/transforms/entity.js.map +1 -0
- package/dist/transforms/lifecycle.js +2 -2
- package/dist/transforms/lifecycle.js.map +1 -1
- package/dist/transforms/store.js +1 -1
- package/dist/transforms/store.js.map +1 -1
- package/dist/transforms/system.d.ts.map +1 -1
- package/dist/transforms/system.js +4 -1
- package/dist/transforms/system.js.map +1 -1
- package/package.json +8 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,55 @@
|
|
|
1
|
-
type BuildTarget = 'server' | 'client';
|
|
2
|
-
interface
|
|
1
|
+
export type BuildTarget = 'server' | 'client';
|
|
2
|
+
export interface ReplicastPluginOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Lower TC39 (2023-11) decorators to plain JS after Vite's own transforms.
|
|
5
|
+
* Vite 5–7 (esbuild) already lower decorators, so this is a no-op there; Vite 8+ (Oxc) does not
|
|
6
|
+
* (oxc-project/oxc#9170), so without it store/system classes ship with raw `@` syntax that neither
|
|
7
|
+
* Node nor browsers can parse. Default: true.
|
|
8
|
+
*/
|
|
9
|
+
lowerDecorators?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* When no explicit target is given, environments whose name is in this list get the client
|
|
12
|
+
* transform; every other environment gets the server transform. Default: ['client'].
|
|
13
|
+
*/
|
|
14
|
+
clientEnvironments?: string[];
|
|
15
|
+
}
|
|
16
|
+
/** Minimal structural type for the Vite plugin hooks we use (works across Vite 5–8 without a vite import). */
|
|
17
|
+
export interface ReplicastVitePlugin {
|
|
3
18
|
name: string;
|
|
4
|
-
enforce
|
|
5
|
-
|
|
19
|
+
enforce?: 'pre' | 'post';
|
|
20
|
+
applyToEnvironment?: (environment: {
|
|
21
|
+
name: string;
|
|
22
|
+
}) => boolean;
|
|
23
|
+
transform(this: {
|
|
24
|
+
environment?: {
|
|
25
|
+
name: string;
|
|
26
|
+
};
|
|
27
|
+
} | void, code: string, id: string): {
|
|
28
|
+
code: string;
|
|
29
|
+
map?: unknown;
|
|
30
|
+
} | string | null;
|
|
6
31
|
}
|
|
7
|
-
|
|
32
|
+
/** Which Replicast transforms a module needs. Detected by content, so naming is not load-bearing. */
|
|
33
|
+
export type ReplicastFileKind = 'store' | 'system' | 'lifecycle' | 'entity';
|
|
34
|
+
export declare function detectKinds(code: string, id: string): ReplicastFileKind[];
|
|
35
|
+
export declare function transformReplicastFile(code: string, id: string, target: BuildTarget): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Per-target store/system/lifecycle/entity rewriting. Runs before any other transform so it sees the
|
|
38
|
+
* original decorators. With no explicit target, the target is derived from the Vite environment
|
|
39
|
+
* (Vite 6+ Environment API): `client` → client transform, anything else → server transform.
|
|
40
|
+
*/
|
|
41
|
+
export declare function replicastTransformPlugin(target?: BuildTarget, options?: ReplicastPluginOptions): ReplicastVitePlugin;
|
|
42
|
+
/** Lowers any TC39 decorators still present after Vite's TS/JSX transforms. */
|
|
43
|
+
export declare function replicastDecoratorPlugin(): ReplicastVitePlugin;
|
|
44
|
+
/**
|
|
45
|
+
* Replicast Vite plugin.
|
|
46
|
+
*
|
|
47
|
+
* replicastPlugin() // Vite 6+ environments: client env → client transform, others → server
|
|
48
|
+
* replicastPlugin('client') // explicit target (Vite 5 style, one config per target)
|
|
49
|
+
*
|
|
50
|
+
* Returns the per-target transform plus (by default) decorator lowering, so consumers need no
|
|
51
|
+
* extra Babel/SWC configuration on Vite 8.
|
|
52
|
+
*/
|
|
53
|
+
export declare function replicastPlugin(target?: BuildTarget, options?: ReplicastPluginOptions): ReplicastVitePlugin[];
|
|
8
54
|
export default replicastPlugin;
|
|
9
55
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE7C,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC9B;AAED,8GAA8G;AAC9G,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAA;IAC/D,SAAS,CAAC,IAAI,EAAE;QAAE,WAAW,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI,CAAA;CACtI;AAED,qGAAqG;AACrG,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;AAQ3E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAUzE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CASnG;AAID;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,mBAAmB,CAaxH;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,IAAI,mBAAmB,CAoB9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,mBAAmB,EAAE,CAIjH;AAED,eAAe,eAAe,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1,104 @@
|
|
|
1
1
|
import { transformStoreFile } from './transforms/store.js';
|
|
2
2
|
import { transformSystemFile } from './transforms/system.js';
|
|
3
3
|
import { transformLifecycleFile } from './transforms/lifecycle.js';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { transformEntityFile } from './transforms/entity.js';
|
|
5
|
+
import { transformSync } from '@babel/core';
|
|
6
|
+
import decorators from '@babel/plugin-proposal-decorators';
|
|
7
|
+
const RE_CORE_IMPORT = /from\s+['"]@replicast\/core['"]/;
|
|
8
|
+
const RE_STORE = /@(?:GlobalStore|OwnerStore)\b/;
|
|
9
|
+
const RE_SYSTEM = /@System\b/;
|
|
10
|
+
const RE_LIFECYCLE = /@(?:Server|Client)\s+(?:export\s+)?(?:default\s+)?class\b/;
|
|
11
|
+
const RE_ENTITY = /@Entity\b/;
|
|
12
|
+
export function detectKinds(code, id) {
|
|
13
|
+
const kinds = [];
|
|
14
|
+
const clean = id.split('?')[0];
|
|
15
|
+
const byName = (suffix) => clean.endsWith(`.${suffix}.ts`) || clean.endsWith(`.${suffix}.js`);
|
|
16
|
+
const byContent = RE_CORE_IMPORT.test(code);
|
|
17
|
+
if (byName('store') || (byContent && RE_STORE.test(code)))
|
|
18
|
+
kinds.push('store');
|
|
19
|
+
if (byName('system') || (byContent && RE_SYSTEM.test(code)))
|
|
20
|
+
kinds.push('system');
|
|
21
|
+
if (byName('lifecycle') || (byContent && RE_LIFECYCLE.test(code)))
|
|
22
|
+
kinds.push('lifecycle');
|
|
23
|
+
if (byName('entity') || (byContent && RE_ENTITY.test(code)))
|
|
24
|
+
kinds.push('entity');
|
|
25
|
+
return kinds;
|
|
6
26
|
}
|
|
7
|
-
function
|
|
8
|
-
|
|
27
|
+
export function transformReplicastFile(code, id, target) {
|
|
28
|
+
const kinds = detectKinds(code, id);
|
|
29
|
+
if (kinds.length === 0)
|
|
30
|
+
return null;
|
|
31
|
+
let out = code;
|
|
32
|
+
if (kinds.includes('store'))
|
|
33
|
+
out = transformStoreFile(out, target);
|
|
34
|
+
if (kinds.includes('system'))
|
|
35
|
+
out = transformSystemFile(out, target);
|
|
36
|
+
if (kinds.includes('lifecycle'))
|
|
37
|
+
out = transformLifecycleFile(out, target);
|
|
38
|
+
if (kinds.includes('entity'))
|
|
39
|
+
out = transformEntityFile(out, target);
|
|
40
|
+
return out;
|
|
9
41
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
42
|
+
const SCRIPT_RE = /\.[cm]?[jt]sx?$/;
|
|
43
|
+
/**
|
|
44
|
+
* Per-target store/system/lifecycle/entity rewriting. Runs before any other transform so it sees the
|
|
45
|
+
* original decorators. With no explicit target, the target is derived from the Vite environment
|
|
46
|
+
* (Vite 6+ Environment API): `client` → client transform, anything else → server transform.
|
|
47
|
+
*/
|
|
48
|
+
export function replicastTransformPlugin(target, options = {}) {
|
|
49
|
+
const clientEnvs = new Set(options.clientEnvironments ?? ['client']);
|
|
14
50
|
return {
|
|
15
51
|
name: 'replicast',
|
|
16
52
|
enforce: 'pre',
|
|
17
53
|
transform(code, id) {
|
|
18
|
-
|
|
54
|
+
const clean = id.split('?')[0];
|
|
55
|
+
if (clean.includes('/node_modules/') || !SCRIPT_RE.test(clean))
|
|
56
|
+
return null;
|
|
57
|
+
const envName = this?.environment?.name;
|
|
58
|
+
const resolved = target ?? (envName === undefined || clientEnvs.has(envName) ? 'client' : 'server');
|
|
59
|
+
return transformReplicastFile(code, id, resolved);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** Lowers any TC39 decorators still present after Vite's TS/JSX transforms. */
|
|
64
|
+
export function replicastDecoratorPlugin() {
|
|
65
|
+
return {
|
|
66
|
+
name: 'replicast:decorators',
|
|
67
|
+
enforce: 'post',
|
|
68
|
+
transform(code, id) {
|
|
69
|
+
const clean = id.split('?')[0];
|
|
70
|
+
if (clean.includes('/node_modules/') || !SCRIPT_RE.test(clean))
|
|
71
|
+
return null;
|
|
72
|
+
if (!code.includes('@'))
|
|
19
73
|
return null;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
74
|
+
const result = transformSync(code, {
|
|
75
|
+
filename: clean,
|
|
76
|
+
babelrc: false,
|
|
77
|
+
configFile: false,
|
|
78
|
+
sourceMaps: true,
|
|
79
|
+
parserOpts: { sourceType: 'module', plugins: ['decorators'] },
|
|
80
|
+
plugins: [[decorators, { version: '2023-11' }]]
|
|
81
|
+
});
|
|
82
|
+
if (!result?.code)
|
|
83
|
+
return null;
|
|
84
|
+
return { code: result.code, map: result.map };
|
|
27
85
|
}
|
|
28
86
|
};
|
|
29
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Replicast Vite plugin.
|
|
90
|
+
*
|
|
91
|
+
* replicastPlugin() // Vite 6+ environments: client env → client transform, others → server
|
|
92
|
+
* replicastPlugin('client') // explicit target (Vite 5 style, one config per target)
|
|
93
|
+
*
|
|
94
|
+
* Returns the per-target transform plus (by default) decorator lowering, so consumers need no
|
|
95
|
+
* extra Babel/SWC configuration on Vite 8.
|
|
96
|
+
*/
|
|
97
|
+
export function replicastPlugin(target, options = {}) {
|
|
98
|
+
const plugins = [replicastTransformPlugin(target, options)];
|
|
99
|
+
if (options.lowerDecorators !== false)
|
|
100
|
+
plugins.push(replicastDecoratorPlugin());
|
|
101
|
+
return plugins;
|
|
102
|
+
}
|
|
30
103
|
export default replicastPlugin;
|
|
31
104
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,UAAU,MAAM,mCAAmC,CAAA;AA8B1D,MAAM,cAAc,GAAG,iCAAiC,CAAA;AACxD,MAAM,QAAQ,GAAG,+BAA+B,CAAA;AAChD,MAAM,SAAS,GAAG,WAAW,CAAA;AAC7B,MAAM,YAAY,GAAG,2DAA2D,CAAA;AAChF,MAAM,SAAS,GAAG,WAAW,CAAA;AAE7B,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,EAAU;IAClD,MAAM,KAAK,GAAwB,EAAE,CAAA;IACrC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,CAAA;IACrG,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9E,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjF,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC1F,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,EAAU,EAAE,MAAmB;IAClF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACnC,IAAI,GAAG,GAAG,IAAI,CAAA;IACd,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAClE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpE,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,GAAG,GAAG,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpE,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,SAAS,GAAG,iBAAiB,CAAA;AAEnC;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAoB,EAAE,UAAkC,EAAE;IACjG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACpE,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK;QACd,SAAS,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;YAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC3E,MAAM,OAAO,GAAI,IAAkD,EAAE,WAAW,EAAE,IAAI,CAAA;YACtF,MAAM,QAAQ,GAAgB,MAAM,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;YAChH,OAAO,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QACnD,CAAC;KACF,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,MAAM;QACf,SAAS,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;YAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC3E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAA;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE;gBACjC,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE;gBAC7D,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;aAChD,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,EAAE,IAAI;gBAAE,OAAO,IAAI,CAAA;YAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB,EAAE,UAAkC,EAAE;IACxF,MAAM,OAAO,GAAG,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3D,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAA;IAC/E,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type BuildTarget = 'server' | 'client';
|
|
2
|
+
/**
|
|
3
|
+
* Per-target rewriting of `@Entity` classes: the client bundle loses server bodies and
|
|
4
|
+
* `@ServerOnly` fields, the server bundle loses the client-side bodies (runtime dispatch replaces
|
|
5
|
+
* them with sends). Decorators are kept on both sides — the runtime reads them on both.
|
|
6
|
+
*/
|
|
7
|
+
export declare function transformEntityFile(source: string, target: BuildTarget): string;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/transforms/entity.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAiCtC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAkE/E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { parseSource, printFile, hasDecorator, getDecoratorName } from '../ast-helpers.js';
|
|
3
|
+
/** Method decorators an `@Entity` class can carry, and which bundle keeps the body. */
|
|
4
|
+
const strippedOnClient = new Set(['ServerTick']);
|
|
5
|
+
const strippedOnServer = new Set(['Client', 'Multicast', 'ClientSpawn', 'ClientDespawn']);
|
|
6
|
+
/** `return this.__wsClient.callEntity(this.id, 'Ship.fire', [side, power])` */
|
|
7
|
+
function makeEntityClientStub(className, methodName, params) {
|
|
8
|
+
const argNames = Array.from(params)
|
|
9
|
+
.filter(p => ts.isIdentifier(p.name))
|
|
10
|
+
.map(p => p.name.text);
|
|
11
|
+
return [
|
|
12
|
+
ts.factory.createReturnStatement(ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createPropertyAccessExpression(ts.factory.createThis(), '__wsClient'), 'callEntity'), undefined, [
|
|
13
|
+
ts.factory.createPropertyAccessExpression(ts.factory.createThis(), 'id'),
|
|
14
|
+
ts.factory.createStringLiteral(`${className}.${methodName}`),
|
|
15
|
+
ts.factory.createArrayLiteralExpression(argNames.map(n => ts.factory.createIdentifier(n))),
|
|
16
|
+
]))
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Per-target rewriting of `@Entity` classes: the client bundle loses server bodies and
|
|
21
|
+
* `@ServerOnly` fields, the server bundle loses the client-side bodies (runtime dispatch replaces
|
|
22
|
+
* them with sends). Decorators are kept on both sides — the runtime reads them on both.
|
|
23
|
+
*/
|
|
24
|
+
export function transformEntityFile(source, target) {
|
|
25
|
+
const sourceFile = parseSource(source);
|
|
26
|
+
const transformer = (context) => (sf) => {
|
|
27
|
+
function visitClass(classNode) {
|
|
28
|
+
const className = classNode.name?.text ?? 'UnknownEntity';
|
|
29
|
+
const members = classNode.members
|
|
30
|
+
// @ServerOnly fields never reach the client — drop the declaration and its initialiser.
|
|
31
|
+
.filter(member => !(target === 'client' && ts.isPropertyDeclaration(member) && hasDecorator(member, 'ServerOnly')))
|
|
32
|
+
.map(member => {
|
|
33
|
+
if (!ts.isMethodDeclaration(member) || !ts.isIdentifier(member.name))
|
|
34
|
+
return member;
|
|
35
|
+
const methodName = member.name.text;
|
|
36
|
+
const roles = (ts.getDecorators(member) ?? []).map(getDecoratorName);
|
|
37
|
+
let body = member.body;
|
|
38
|
+
if (target === 'client' && roles.includes('Server')) {
|
|
39
|
+
body = ts.factory.createBlock(makeEntityClientStub(className, methodName, member.parameters), true);
|
|
40
|
+
}
|
|
41
|
+
else if (roles.some(r => r !== null && (target === 'client' ? strippedOnClient : strippedOnServer).has(r))) {
|
|
42
|
+
body = ts.factory.createBlock([], false);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return member;
|
|
46
|
+
}
|
|
47
|
+
return ts.factory.updateMethodDeclaration(member, member.modifiers, // keeps decorators: the runtime reads them on both sides
|
|
48
|
+
member.asteriskToken, member.name, member.questionToken, member.typeParameters, member.parameters, member.type, body);
|
|
49
|
+
});
|
|
50
|
+
// Stamp the source class name so the wire type survives bundling and minification.
|
|
51
|
+
const nameStamp = ts.factory.createPropertyDeclaration([ts.factory.createModifier(ts.SyntaxKind.StaticKeyword)], '__replicastName', undefined, undefined, ts.factory.createStringLiteral(className));
|
|
52
|
+
return ts.factory.updateClassDeclaration(classNode, classNode.modifiers, classNode.name, classNode.typeParameters, classNode.heritageClauses, ts.factory.createNodeArray([nameStamp, ...members]));
|
|
53
|
+
}
|
|
54
|
+
function visit(node) {
|
|
55
|
+
if (ts.isClassDeclaration(node) && hasDecorator(node, 'Entity'))
|
|
56
|
+
return visitClass(node);
|
|
57
|
+
return ts.visitEachChild(node, visit, context);
|
|
58
|
+
}
|
|
59
|
+
return ts.visitNode(sf, visit);
|
|
60
|
+
};
|
|
61
|
+
const result = ts.transform(sourceFile, [transformer]);
|
|
62
|
+
return printFile(result.transformed[0]);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/transforms/entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,8 @@ export function transformLifecycleFile(source, target) {
|
|
|
14
14
|
return true;
|
|
15
15
|
})
|
|
16
16
|
.map(stmt => {
|
|
17
|
-
// Strip decorators from the kept lifecycle class
|
|
18
|
-
if (ts.isClassDeclaration(stmt)) {
|
|
17
|
+
// Strip decorators from the kept lifecycle class only (other classes in the file are untouched)
|
|
18
|
+
if (ts.isClassDeclaration(stmt) && (hasDecorator(stmt, 'Server') || hasDecorator(stmt, 'Client'))) {
|
|
19
19
|
return ts.factory.updateClassDeclaration(stmt, ts.getModifiers(stmt), stmt.name, stmt.typeParameters, stmt.heritageClauses, stmt.members);
|
|
20
20
|
}
|
|
21
21
|
return stmt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/transforms/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIxE,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,MAAmB;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,WAAW,GAAyC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7E,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU;aAChC,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAA;gBACrE,IAAI,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAA;YACvE,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC;aACD,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/transforms/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIxE,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,MAAmB;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,WAAW,GAAyC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7E,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU;aAChC,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAA;gBACrE,IAAI,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAA;YACvE,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC;aACD,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,gGAAgG;YAChG,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAClG,OAAO,EAAE,CAAC,OAAO,CAAC,sBAAsB,CACtC,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,CACb,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QACJ,OAAO,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACvD,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IACtD,OAAO,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC"}
|
package/dist/transforms/store.js
CHANGED
|
@@ -6,7 +6,7 @@ export function transformStoreFile(source, target) {
|
|
|
6
6
|
const sourceFile = parseSource(source);
|
|
7
7
|
const transformer = (context) => (sf) => {
|
|
8
8
|
function visit(node) {
|
|
9
|
-
if (ts.isClassDeclaration(node)) {
|
|
9
|
+
if (ts.isClassDeclaration(node) && (hasDecorator(node, 'GlobalStore') || hasDecorator(node, 'OwnerStore'))) {
|
|
10
10
|
const newMembers = node.members
|
|
11
11
|
.filter(member => {
|
|
12
12
|
if (ts.isPropertyDeclaration(member)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/transforms/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIxE,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAmB;IACpE,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAEtC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,WAAW,GAAyC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;QAC5E,SAAS,KAAK,CAAC,IAAa;YAC1B,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/transforms/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIxE,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAmB;IACpE,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAEtC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,WAAW,GAAyC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;QAC5E,SAAS,KAAK,CAAC,IAAa;YAC1B,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;gBAC3G,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO;qBAC5B,MAAM,CAAC,MAAM,CAAC,EAAE;oBACf,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACrC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;oBAC5C,CAAC;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC;qBACD,GAAG,CAAC,MAAM,CAAC,EAAE;oBACZ,6CAA6C;oBAC7C,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACrC,OAAO,EAAE,CAAC,OAAO,CAAC,yBAAyB,CACzC,MAAM,EACN,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EACvB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,gBAAgB,EAC/C,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,CACnB,CAAA;oBACH,CAAC;oBACD,OAAO,MAAM,CAAA;gBACf,CAAC,CAAC,CAAA;gBACJ,OAAO,EAAE,CAAC,OAAO,CAAC,sBAAsB,CACtC,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAG,gDAAgD;gBACxE,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,eAAe,EACpB,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CACvC,CAAA;YACH,CAAC;YACD,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAkB,CAAA;IACjD,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IACtD,OAAO,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/transforms/system.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAmItC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/transforms/system.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAmItC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CA+G/E"}
|
|
@@ -75,9 +75,12 @@ export function transformSystemFile(source, target) {
|
|
|
75
75
|
const modifiers = target === 'client' ? ts.getModifiers(member) : member.modifiers;
|
|
76
76
|
return ts.factory.updateMethodDeclaration(member, modifiers, member.asteriskToken, member.name, member.questionToken, member.typeParameters, member.parameters, member.type, newStatements ? ts.factory.createBlock(newStatements, true) : member.body);
|
|
77
77
|
});
|
|
78
|
+
// Stamp the source class name so the server can register RPC methods without relying on
|
|
79
|
+
// constructor.name, which bundlers/minifiers (e.g. rolldown in Vite 8) may drop or rename.
|
|
80
|
+
const nameStamp = ts.factory.createPropertyDeclaration([ts.factory.createModifier(ts.SyntaxKind.StaticKeyword)], '__replicastName', undefined, undefined, ts.factory.createStringLiteral(className));
|
|
78
81
|
// Strip @System decorator from class on client
|
|
79
82
|
const classModifiers = target === 'client' ? ts.getModifiers(classNode) : classNode.modifiers;
|
|
80
|
-
return ts.factory.updateClassDeclaration(classNode, classModifiers, classNode.name, classNode.typeParameters, classNode.heritageClauses, ts.factory.createNodeArray(newMembers));
|
|
83
|
+
return ts.factory.updateClassDeclaration(classNode, classModifiers, classNode.name, classNode.typeParameters, classNode.heritageClauses, ts.factory.createNodeArray([nameStamp, ...newMembers]));
|
|
81
84
|
}
|
|
82
85
|
function visit(node) {
|
|
83
86
|
if (ts.isClassDeclaration(node) && hasDecorator(node, 'System')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/transforms/system.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/transforms/system.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@replicast/vite-plugin",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.8",
|
|
4
4
|
"description": "Vite plugin for replicast — transforms store, system, and lifecycle files per build target",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -17,13 +17,16 @@
|
|
|
17
17
|
"test": "vitest run"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"typescript": "^5.5.0"
|
|
20
|
+
"typescript": "^5.5.0",
|
|
21
|
+
"@babel/core": "^7.26.0",
|
|
22
|
+
"@babel/plugin-proposal-decorators": "^7.25.0"
|
|
21
23
|
},
|
|
22
24
|
"peerDependencies": {
|
|
23
|
-
"vite": "^5.0.0"
|
|
25
|
+
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
|
|
24
26
|
},
|
|
25
27
|
"devDependencies": {
|
|
26
|
-
"vite": "^
|
|
27
|
-
"vitest": "^1.6.0"
|
|
28
|
+
"vite": "^8.0.0",
|
|
29
|
+
"vitest": "^1.6.0",
|
|
30
|
+
"@types/babel__core": "^7.20.5"
|
|
28
31
|
}
|
|
29
32
|
}
|