@replicast/vite-plugin 1.0.0-rc.7 → 1.0.0-rc.9
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 +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- 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/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -30,11 +30,11 @@ export interface ReplicastVitePlugin {
|
|
|
30
30
|
} | string | null;
|
|
31
31
|
}
|
|
32
32
|
/** Which Replicast transforms a module needs. Detected by content, so naming is not load-bearing. */
|
|
33
|
-
export type ReplicastFileKind = 'store' | 'system' | 'lifecycle';
|
|
33
|
+
export type ReplicastFileKind = 'store' | 'system' | 'lifecycle' | 'entity';
|
|
34
34
|
export declare function detectKinds(code: string, id: string): ReplicastFileKind[];
|
|
35
35
|
export declare function transformReplicastFile(code: string, id: string, target: BuildTarget): string | null;
|
|
36
36
|
/**
|
|
37
|
-
* Per-target store/system/lifecycle rewriting. Runs before any other transform so it sees the
|
|
37
|
+
* Per-target store/system/lifecycle/entity rewriting. Runs before any other transform so it sees the
|
|
38
38
|
* original decorators. With no explicit target, the target is derived from the Vite environment
|
|
39
39
|
* (Vite 6+ Environment API): `client` → client transform, anything else → server transform.
|
|
40
40
|
*/
|
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,12 +1,14 @@
|
|
|
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
|
+
import { transformEntityFile } from './transforms/entity.js';
|
|
4
5
|
import { transformSync } from '@babel/core';
|
|
5
6
|
import decorators from '@babel/plugin-proposal-decorators';
|
|
6
7
|
const RE_CORE_IMPORT = /from\s+['"]@replicast\/core['"]/;
|
|
7
8
|
const RE_STORE = /@(?:GlobalStore|OwnerStore)\b/;
|
|
8
9
|
const RE_SYSTEM = /@System\b/;
|
|
9
10
|
const RE_LIFECYCLE = /@(?:Server|Client)\s+(?:export\s+)?(?:default\s+)?class\b/;
|
|
11
|
+
const RE_ENTITY = /@Entity\b/;
|
|
10
12
|
export function detectKinds(code, id) {
|
|
11
13
|
const kinds = [];
|
|
12
14
|
const clean = id.split('?')[0];
|
|
@@ -18,6 +20,8 @@ export function detectKinds(code, id) {
|
|
|
18
20
|
kinds.push('system');
|
|
19
21
|
if (byName('lifecycle') || (byContent && RE_LIFECYCLE.test(code)))
|
|
20
22
|
kinds.push('lifecycle');
|
|
23
|
+
if (byName('entity') || (byContent && RE_ENTITY.test(code)))
|
|
24
|
+
kinds.push('entity');
|
|
21
25
|
return kinds;
|
|
22
26
|
}
|
|
23
27
|
export function transformReplicastFile(code, id, target) {
|
|
@@ -31,11 +35,13 @@ export function transformReplicastFile(code, id, target) {
|
|
|
31
35
|
out = transformSystemFile(out, target);
|
|
32
36
|
if (kinds.includes('lifecycle'))
|
|
33
37
|
out = transformLifecycleFile(out, target);
|
|
38
|
+
if (kinds.includes('entity'))
|
|
39
|
+
out = transformEntityFile(out, target);
|
|
34
40
|
return out;
|
|
35
41
|
}
|
|
36
42
|
const SCRIPT_RE = /\.[cm]?[jt]sx?$/;
|
|
37
43
|
/**
|
|
38
|
-
* Per-target store/system/lifecycle rewriting. Runs before any other transform so it sees the
|
|
44
|
+
* Per-target store/system/lifecycle/entity rewriting. Runs before any other transform so it sees the
|
|
39
45
|
* original decorators. With no explicit target, the target is derived from the Vite environment
|
|
40
46
|
* (Vite 6+ Environment API): `client` → client transform, anything else → server transform.
|
|
41
47
|
*/
|
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;AAClE,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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/package.json
CHANGED