@react-scad/core 0.1.6 → 0.1.7

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 CHANGED
@@ -17,7 +17,7 @@ npm install react @react-scad/core
17
17
  ### Minimal example
18
18
 
19
19
  ```jsx
20
- import { createRoot, Cube, Sphere, Union } from "react-scad";
20
+ import { createRoot, Cube, Sphere, Union } from "@react-scad/core";
21
21
 
22
22
  const root = createRoot("model.scad");
23
23
 
@@ -3,7 +3,7 @@ import { Primitive } from "./primitive.js";
3
3
  export const Text = (props) => React.createElement(Primitive, { ...props, type: "text" });
4
4
  Text.displayName = "Text";
5
5
  function escapeString(s) {
6
- return s.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
6
+ return s.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\r/g, "\\r").replace(/\n/g, "\\n");
7
7
  }
8
8
  export function serialize(node, _indent, _ctx) {
9
9
  const parts = [`text = "${escapeString(node.text)}"`];
@@ -6,7 +6,7 @@ export declare const extraDevToolsConfig: null;
6
6
  export declare function getRootHostContext(): null;
7
7
  export declare function getChildHostContext(_parentHostContext: null, _type: string, _rootContainer: ScadContainer): null;
8
8
  export declare function prepareForCommit(_containerInfo: ScadContainer): null;
9
- export declare function resetAfterCommit(_containerInfo: ScadContainer): void;
9
+ export declare function resetAfterCommit(containerInfo: ScadContainer): void;
10
10
  export declare function createInstance(type: string, props: Record<string, unknown>, _rootContainer: ScadContainer, _hostContext: null, _internalHandle: unknown): ScadNode;
11
11
  export declare function cloneMutableInstance(instance: ScadNode, keepChildren: boolean): ScadNode;
12
12
  export declare function appendInitialChild(parentInstance: ScadNode, child: ScadNode): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { cloneScadNode, createScadNode, updateScadNode } from "./node-ops.js";
2
+ import { writeAfterCommit } from "./write-on-commit.js";
2
3
  const NO_CONTEXT = null;
3
4
  export const rendererVersion = "0.1.0";
4
5
  export const rendererPackageName = "react-scad";
@@ -12,7 +13,9 @@ export function getChildHostContext(_parentHostContext, _type, _rootContainer) {
12
13
  export function prepareForCommit(_containerInfo) {
13
14
  return null;
14
15
  }
15
- export function resetAfterCommit(_containerInfo) { }
16
+ export function resetAfterCommit(containerInfo) {
17
+ writeAfterCommit(containerInfo);
18
+ }
16
19
  export function createInstance(type, props, _rootContainer, _hostContext, _internalHandle) {
17
20
  const node = createScadNode(type, { ...props });
18
21
  return node;
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/runtime/root.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,QAAQ;IACxB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1C,MAAM,IAAI,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAE1B,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,CAahD;AAED,wBAAgB,eAAe,IAAI,aAAa,CAE/C;AAED,wBAAgB,MAAM,CACrB,OAAO,EAAE,KAAK,CAAC,YAAY,EAC3B,SAAS,EAAE,aAAa,EACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,GACnB,IAAI,CAGN;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/runtime/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,QAAQ;IACxB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1C,MAAM,IAAI,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAE1B,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,CAchD;AAED,wBAAgB,eAAe,IAAI,aAAa,CAE/C;AAED,wBAAgB,MAAM,CACrB,OAAO,EAAE,KAAK,CAAC,YAAY,EAC3B,SAAS,EAAE,aAAa,EACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,GACnB,IAAI,CAGN;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,15 +1,17 @@
1
- import { writeFileSync } from "node:fs";
2
1
  import { toScad } from "../serialize/index.js";
3
2
  import { createScadContainer } from "./node-ops.js";
4
3
  import { createFiberRoot, updateContainer } from "./reconciler.js";
4
+ import { registerWriteOnCommit, writeAfterCommit } from "./write-on-commit.js";
5
5
  export function createRoot(path) {
6
6
  const container = createScadContainer();
7
7
  const fiberRoot = createFiberRoot(container);
8
+ if (path)
9
+ registerWriteOnCommit(container, path);
8
10
  return {
9
11
  render(element) {
10
12
  updateContainer(element, fiberRoot, null, null);
11
13
  if (path)
12
- writeFileSync(path, toScad(container), "utf8");
14
+ writeAfterCommit(container);
13
15
  },
14
16
  toScad() {
15
17
  return toScad(container);
@@ -0,0 +1,4 @@
1
+ import type { ScadContainer } from "../types.js";
2
+ export declare function registerWriteOnCommit(container: ScadContainer, path: string): void;
3
+ export declare function writeAfterCommit(container: ScadContainer): void;
4
+ //# sourceMappingURL=write-on-commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-on-commit.d.ts","sourceRoot":"","sources":["../../src/runtime/write-on-commit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAG/D"}
@@ -0,0 +1,11 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import { toScad } from "../serialize/index.js";
3
+ const writeOnCommitPaths = new WeakMap();
4
+ export function registerWriteOnCommit(container, path) {
5
+ writeOnCommitPaths.set(container, path);
6
+ }
7
+ export function writeAfterCommit(container) {
8
+ const path = writeOnCommitPaths.get(container);
9
+ if (path)
10
+ writeFileSync(path, toScad(container), "utf8");
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-scad/core",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Render JSX to OpenSCAD models using the React reconciler",
5
5
  "keywords": [
6
6
  "react",