@rocicorp/zero 0.3.2024102600 → 0.3.2024102800
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/out/react.js +3 -3
- package/out/react.js.map +2 -2
- package/out/solid.js +3 -1
- package/out/solid.js.map +2 -2
- package/out/zero-cache/src/config/config-query.d.ts +1 -1
- package/out/zero-cache/src/config/config-query.d.ts.map +1 -1
- package/out/zero-cache/src/config/config-query.js +1 -1
- package/out/zero-cache/src/config/config-query.js.map +1 -1
- package/out/zero-cache/src/server/life-cycle.d.ts +2 -1
- package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/server/life-cycle.js +29 -14
- package/out/zero-cache/src/server/life-cycle.js.map +1 -1
- package/out/zero-cache/src/server/main.js +2 -9
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js +9 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +2 -2
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.js +1 -0
- package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.js +2 -5
- package/out/zero-client/src/client/query-manager.js.map +1 -1
- package/out/zero-internal/src/mod.d.ts +1 -0
- package/out/zero-internal/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/ast-hash.d.ts +3 -0
- package/out/zero-protocol/src/ast-hash.d.ts.map +1 -0
- package/out/zero-protocol/src/ast-hash.js +14 -0
- package/out/zero-protocol/src/ast-hash.js.map +1 -0
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +8 -1
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-solid/src/use-query.d.ts +1 -2
- package/out/zero-solid/src/use-query.d.ts.map +1 -1
- package/out/zero.js +426 -400
- package/out/zero.js.map +4 -4
- package/out/zql/src/zql/query/query-impl.d.ts +10 -10
- package/out/zql/src/zql/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/zql/query/query-impl.js +50 -41
- package/out/zql/src/zql/query/query-impl.js.map +1 -1
- package/out/zql/src/zql/query/query-internal.d.ts +11 -0
- package/out/zql/src/zql/query/query-internal.d.ts.map +1 -0
- package/out/zql/src/zql/query/query-internal.js +2 -0
- package/out/zql/src/zql/query/query-internal.js.map +1 -0
- package/out/zql/src/zql/query/query.d.ts +0 -2
- package/out/zql/src/zql/query/query.d.ts.map +1 -1
- package/package.json +1 -1
- package/out/zero-cache/src/server/task-state-watcher.d.ts +0 -14
- package/out/zero-cache/src/server/task-state-watcher.d.ts.map +0 -1
- package/out/zero-cache/src/server/task-state-watcher.js +0 -75
- package/out/zero-cache/src/server/task-state-watcher.js.map +0 -1
package/out/react.js
CHANGED
|
@@ -88,11 +88,11 @@ var ViewStore = class {
|
|
|
88
88
|
getView(clientID, query, enabled) {
|
|
89
89
|
if (!enabled) {
|
|
90
90
|
return {
|
|
91
|
-
getSnapshot: () => query.singular ? void 0 : emptyArray,
|
|
91
|
+
getSnapshot: () => query.format.singular ? void 0 : emptyArray,
|
|
92
92
|
subscribeReactInternals: disabledSubscriber
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
|
-
const hash =
|
|
95
|
+
const hash = query.hash() + clientID;
|
|
96
96
|
let existing = this.#views.get(hash);
|
|
97
97
|
if (!existing) {
|
|
98
98
|
existing = new ViewWrapper(
|
|
@@ -123,7 +123,7 @@ var ViewWrapper = class {
|
|
|
123
123
|
#snapshot;
|
|
124
124
|
#reactInternals;
|
|
125
125
|
constructor(query, onMaterialized, onDematerialized) {
|
|
126
|
-
this.#defaultSnapshot = query.singular ? void 0 : emptyArray;
|
|
126
|
+
this.#defaultSnapshot = query.format.singular ? void 0 : emptyArray;
|
|
127
127
|
this.#snapshot = this.#defaultSnapshot;
|
|
128
128
|
this.#onMaterialized = onMaterialized;
|
|
129
129
|
this.#onDematerialized = onDematerialized;
|
package/out/react.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../zero-react/src/use-query.tsx", "../../shared/src/deep-clone.ts", "../../zero-react/src/use-zero.tsx"],
|
|
4
|
-
"sourcesContent": ["import {useSyncExternalStore} from 'react';\nimport {deepClone} from '../../shared/src/deep-clone.js';\nimport type {Immutable} from '../../shared/src/immutable.js';\nimport type {\n Query,\n
|
|
5
|
-
"mappings": ";;;;;;AAAA,SAAQ,4BAA2B;;;ACG5B,SAAS,UAAU,OAAqC;AAC7D,QAAM,OAAiC,CAAC;AACxC,SAAO,kBAAkB,OAAO,IAAI;AACtC;AAEO,SAAS,kBACd,OACA,MACW;AACX,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK,UAAU;AACb,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,MACT;AACA,UAAI,KAAK,SAAS,KAAK,GAAG;AACxB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AACA,WAAK,KAAK,KAAK;AACf,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,cAAM,KAAK,MAAM,IAAI,OAAK,kBAAkB,GAAG,IAAI,CAAC;AACpD,aAAK,IAAI;AACT,eAAO;AAAA,MACT;AAEA,YAAM,MAAiB,CAAC;AAExB,iBAAW,KAAK,OAAO;AACrB,YAAI,OAAO,OAAO,CAAC,GAAG;AACpB,gBAAM,IAAK,MAA4C,CAAC;AACxD,cAAI,MAAM,QAAW;AACnB,gBAAI,CAAC,IAAI,kBAAkB,GAAG,IAAI;AAAA,UACpC;AAAA,QACF;AAAA,MACF;AACA,WAAK,IAAI;AACT,aAAO;AAAA,IACT;AAAA,IAEA;AACE,YAAM,IAAI,MAAM,iBAAiB,OAAO,KAAK,EAAE;AAAA,EACnD;AACF;;;ACjDA,SAAQ,eAAe,kBAAiB;AA0BpC;AAtBJ,IAAM,cAAc,cAAwC,MAAS;AAE9D,SAAS,UAAqC;AACnD,QAAM,OAAO,WAAW,WAAW;AACnC,MAAI,SAAS,QAAW;AACtB,UAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AACA,SAAO;AACT;AAEO,SAAS,gBAAkC;AAChD,SAAO,MAAM,QAAW;AAC1B;AAEO,SAAS,aAA+B;AAAA,EAC7C;AAAA,EACA;AACF,GAGG;AACD,SACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,MAC1B,UACH;AAEJ;;;AFjBO,SAAS,SAGd,GAA4B,SAAkB,MAAsB;AACpE,QAAM,IAAI,QAAQ;AAClB,QAAM,OAAO,UAAU;AAAA,IACrB,EAAE;AAAA,IACF;AAAA,IACA;AAAA,EACF;AAEA,SAAO,qBAAqB,KAAK,yBAAyB,KAAK,WAAW;AAC5E;AAEA,IAAM,aAAwB,CAAC;AAC/B,IAAM,qBAAqB,MAAM,MAAM;AAAC;AAkDxC,IAAM,YAAN,MAAgB;AAAA;AAAA,EAEd,SAAS,oBAAI,IAAmC;AAAA,EAEhD,QACE,UACA,OACA,SAIA;AACA,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,QACL,aAAa,MACV,MAAM,WAAW,SAAY;AAAA,
|
|
4
|
+
"sourcesContent": ["import {useSyncExternalStore} from 'react';\nimport {deepClone} from '../../shared/src/deep-clone.js';\nimport type {Immutable} from '../../shared/src/immutable.js';\nimport type {\n Query,\n QueryType,\n Smash,\n TableSchema,\n TypedView,\n} from '../../zero-client/src/mod.js';\nimport type {QueryInternal} from '../../zql/src/zql/query/query-internal.js';\nimport {useZero} from './use-zero.js';\n\nexport function useQuery<\n TSchema extends TableSchema,\n TReturn extends QueryType,\n>(q: Query<TSchema, TReturn>, enable: boolean = true): Smash<TReturn> {\n const z = useZero();\n const view = viewStore.getView(\n z.clientID,\n q as QueryInternal<TSchema, TReturn>,\n enable,\n );\n // https://react.dev/reference/react/useSyncExternalStore\n return useSyncExternalStore(view.subscribeReactInternals, view.getSnapshot);\n}\n\nconst emptyArray: unknown[] = [];\nconst disabledSubscriber = () => () => {};\n\n/**\n * A global store of all active views.\n *\n * React subscribes and unsubscribes to these views\n * via `useSyncExternalStore`.\n *\n * Managing views through `useEffect` or `useLayoutEffect` causes\n * inconsistencies because effects run after render.\n *\n * For example, if useQuery used use*Effect in the component below:\n * ```ts\n * function Foo({issueID}) {\n * const issue = useQuery(z.query.issue.where('id', issueID).one());\n * if (issue?.id !== undefined && issue.id !== issueID) {\n * console.log('MISMATCH!', issue.id, issueID);\n * }\n * }\n * ```\n *\n * `MISMATCH` will be printed whenever the `issueID` prop changes.\n *\n * This is because the component will render once with\n * the old state returned from `useQuery`. Then the effect inside\n * `useQuery` will run. The component will render again with the new\n * state. This inconsistent transition can cause unexpected results.\n *\n * Emulating `useEffect` via `useState` and `if` causes resource leaks.\n * That is:\n *\n * ```ts\n * function useQuery(q) {\n * const [oldHash, setOldHash] = useState();\n * if (hash(q) !== oldHash) {\n * // make new view\n * }\n *\n * useEffect(() => {\n * return () => view.destroy();\n * }, []);\n * }\n * ```\n *\n * I'm not sure why but in strict mode the cleanup function\n * fails to be called for the first instance of the view and only\n * cleans up later instances.\n *\n * Swapping `useState` to `useRef` has similar problems.\n */\nclass ViewStore {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #views = new Map<string, ViewWrapper<any, any>>();\n\n getView<TSchema extends TableSchema, TReturn extends QueryType>(\n clientID: string,\n query: QueryInternal<TSchema, TReturn>,\n enabled: boolean,\n ): {\n getSnapshot: () => Smash<TReturn>;\n subscribeReactInternals: (internals: () => void) => () => void;\n } {\n if (!enabled) {\n return {\n getSnapshot: () =>\n (query.format.singular ? undefined : emptyArray) as Smash<TReturn>,\n subscribeReactInternals: disabledSubscriber,\n };\n }\n\n const hash = query.hash() + clientID;\n let existing = this.#views.get(hash);\n if (!existing) {\n existing = new ViewWrapper(\n query,\n view => {\n const lastView = this.#views.get(hash);\n // I don't think this can happen\n // but lets guard against it so we don't\n // leak resources.\n if (lastView && lastView !== view) {\n throw new Error('View already exists');\n }\n this.#views.set(hash, view);\n },\n () => {\n this.#views.delete(hash);\n },\n ) as ViewWrapper<TSchema, TReturn>;\n this.#views.set(hash, existing);\n }\n return existing;\n }\n}\n\nconst viewStore = new ViewStore();\n\n/**\n * This wraps and ref counts a view.\n *\n * The only signal we have from React as to whether or not it is\n * done with a view is when it calls `unsubscribe`.\n *\n * In non-strict-mode we can clean up the view as soon\n * as the listener count goes to 0.\n *\n * In strict-mode, the listener cound will go to 0 then a\n * new listener for the same view is immeidatiely added back.\n *\n * This is why the `onMaterialized` and `onDematerialized` callbacks exist --\n * they allow a view which React is still referencing to be added\n * back into the store when React re-subscribes to it.\n *\n * This wrapper also exists to deal with the various\n * `useSyncExternalStore` caveats that cause excessive\n * re-renders and materializations.\n *\n * See: https://react.dev/reference/react/useSyncExternalStore#caveats\n * Especially:\n * 1. The store snapshot returned by getSnapshot must be immutable. If the underlying store has mutable data, return a new immutable snapshot if the data has changed. Otherwise, return a cached last snapshot.\n * 2. If a different subscribe function is passed during a re-render, React will re-subscribe to the store using the newly passed subscribe function. You can prevent this by declaring subscribe outside the component.\n */\nclass ViewWrapper<TSchema extends TableSchema, TReturn extends QueryType> {\n #view: TypedView<Smash<TReturn>> | undefined;\n readonly #defaultSnapshot: Smash<TReturn>;\n readonly #onDematerialized;\n readonly #onMaterialized;\n readonly #query: QueryInternal<TSchema, TReturn>;\n #snapshot: Smash<TReturn>;\n #reactInternals: Set<() => void>;\n\n constructor(\n query: QueryInternal<TSchema, TReturn>,\n onMaterialized: (view: ViewWrapper<TSchema, TReturn>) => void,\n onDematerialized: () => void,\n ) {\n this.#defaultSnapshot = (query.format.singular\n ? undefined\n : emptyArray) as unknown as Smash<TReturn>;\n this.#snapshot = this.#defaultSnapshot;\n this.#onMaterialized = onMaterialized;\n this.#onDematerialized = onDematerialized;\n this.#reactInternals = new Set();\n this.#query = query;\n }\n\n #onData = (snap: Immutable<Smash<TReturn>>) => {\n this.#snapshot = (\n snap === undefined ? snap : deepClone(snap)\n ) as Smash<TReturn>;\n for (const internals of this.#reactInternals) {\n internals();\n }\n };\n\n #materializeIfNeeded = () => {\n if (this.#view) {\n return;\n }\n\n this.#view = this.#query.materialize();\n this.#view.addListener(this.#onData);\n\n this.#onMaterialized(this);\n };\n\n getSnapshot = () => this.#snapshot;\n\n subscribeReactInternals = (internals: () => void): (() => void) => {\n this.#reactInternals.add(internals);\n this.#materializeIfNeeded();\n return () => {\n this.#reactInternals.delete(internals);\n if (this.#reactInternals.size === 0) {\n this.#view?.destroy();\n this.#view = undefined;\n this.#onDematerialized();\n }\n };\n };\n}\n", "import {hasOwn} from './has-own.js';\nimport type {JSONValue, ReadonlyJSONValue} from './json.js';\n\nexport function deepClone(value: ReadonlyJSONValue): JSONValue {\n const seen: Array<ReadonlyJSONValue> = [];\n return internalDeepClone(value, seen);\n}\n\nexport function internalDeepClone(\n value: ReadonlyJSONValue,\n seen: Array<ReadonlyJSONValue>,\n): JSONValue {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'string':\n case 'undefined':\n return value;\n case 'object': {\n if (value === null) {\n return null;\n }\n if (seen.includes(value)) {\n throw new Error('Cyclic object');\n }\n seen.push(value);\n if (Array.isArray(value)) {\n const rv = value.map(v => internalDeepClone(v, seen));\n seen.pop();\n return rv;\n }\n\n const obj: JSONValue = {};\n\n for (const k in value) {\n if (hasOwn(value, k)) {\n const v = (value as Record<string, ReadonlyJSONValue>)[k];\n if (v !== undefined) {\n obj[k] = internalDeepClone(v, seen);\n }\n }\n }\n seen.pop();\n return obj;\n }\n\n default:\n throw new Error(`Invalid type: ${typeof value}`);\n }\n}\n", "import {createContext, useContext} from 'react';\nimport type {Schema, Zero} from '../../zero-client/src/mod.js';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst ZeroContext = createContext<Zero<Schema> | undefined>(undefined);\n\nexport function useZero<S extends Schema>(): Zero<S> {\n const zero = useContext(ZeroContext);\n if (zero === undefined) {\n throw new Error('useZero must be used within a ZeroProvider');\n }\n return zero as Zero<S>;\n}\n\nexport function createUseZero<S extends Schema>() {\n return () => useZero<S>();\n}\n\nexport function ZeroProvider<S extends Schema>({\n children,\n zero,\n}: {\n children: React.ReactNode;\n zero: Zero<S>;\n}) {\n return (\n <ZeroContext.Provider value={zero as Zero<Schema>}>\n {children}\n </ZeroContext.Provider>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/out/solid.js
CHANGED
|
@@ -69,7 +69,9 @@ function solidViewFactory(_query, input, format, onDestroy) {
|
|
|
69
69
|
function useQuery(querySignal) {
|
|
70
70
|
return createMemo(() => {
|
|
71
71
|
const query = querySignal();
|
|
72
|
-
const view = query.materialize(
|
|
72
|
+
const view = query.materialize(
|
|
73
|
+
solidViewFactory
|
|
74
|
+
);
|
|
73
75
|
onCleanup(() => {
|
|
74
76
|
view.destroy();
|
|
75
77
|
});
|
package/out/solid.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../zero-solid/src/use-query.ts", "../../zero-solid/src/solid-view.ts"],
|
|
4
|
-
"sourcesContent": ["import {type Accessor, createMemo, onCleanup} from 'solid-js';\nimport type {
|
|
5
|
-
"mappings": ";;;;;;;AAAA,SAAuB,YAAY,iBAAgB;;;ACAnD,SAAQ,aAAa,eAAqC;AAenD,IAAM,YAAN,MAAkD;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAIA;AAAA,EACA;AAAA,EAET,YACE,OACA,SAAiB,EAAC,UAAU,OAAO,eAAe,CAAC,EAAC,GACpD,YAAwB,MAAM;AAAA,EAAC,GAC/B;AACA,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,aAAa;AAClB,SAAK,OAAO,UAAU,IAAI;AAC1B,KAAC,KAAK,OAAO,KAAK,QAAQ,IAAI,YAAY;AAAA,MACxC,IAAI,OAAO,WAAW,SAAY,CAAC;AAAA,IACrC,CAAC;AAED,SAAK;AAAA,MACH,QAAQ,eAAa;AACnB,mBAAW,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AACxC;AAAA,YACE;AAAA,YACA,EAAC,MAAM,OAAO,KAAI;AAAA,YAClB,KAAK,OAAO,UAAU;AAAA,YACtB;AAAA,YACA,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,MAAM,EAAE;AAAA,EACtB;AAAA,EAEA,UAAU;AACR,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,KAAK,QAAsB;AACzB,SAAK;AAAA,MACH,QAAQ,eAAa;AACnB;AAAA,UACE;AAAA,UACA;AAAA,UACA,KAAK,OAAO,UAAU;AAAA,UACtB;AAAA,UACA,KAAK;AAAA,QACP;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,SAAS,iBAId,QACA,OACA,QACA,WAC2B;AAC3B,QAAM,IAAI,IAAI,UAA0B,OAAO,QAAQ,SAAS;AAEhE,SAAO;AACT;;;
|
|
4
|
+
"sourcesContent": ["import {type Accessor, createMemo, onCleanup} from 'solid-js';\nimport type {\n Query,\n QueryInternal,\n QueryType,\n Smash,\n TableSchema,\n} from '../../zero-internal/src/mod.js';\nimport {solidViewFactory} from './solid-view.js';\n\nexport function useQuery<\n TSchema extends TableSchema,\n TReturn extends QueryType,\n>(querySignal: () => Query<TSchema, TReturn>): Accessor<Smash<TReturn>> {\n return createMemo(() => {\n const query = querySignal();\n const view = (query as QueryInternal<TSchema, TReturn>).materialize(\n solidViewFactory,\n );\n\n onCleanup(() => {\n view.destroy();\n });\n\n return view.data;\n });\n}\n", "import {createStore, produce, type SetStoreFunction} from 'solid-js/store';\nimport {\n applyChange,\n type Change,\n type Entry,\n type Format,\n type Input,\n type Output,\n type Query,\n type QueryType,\n type Smash,\n type TableSchema,\n type View,\n} from '../../zero-internal/src/mod.js';\n\nexport class SolidView<V extends View> implements Output {\n readonly #input: Input;\n readonly #format: Format;\n readonly #onDestroy: () => void;\n\n // Synthetic \"root\" entry that has a single \"\" relationship, so that we can\n // treat all changes, including the root change, generically.\n readonly #root: Entry;\n readonly #setRoot: SetStoreFunction<Entry>;\n\n constructor(\n input: Input,\n format: Format = {singular: false, relationships: {}},\n onDestroy: () => void = () => {},\n ) {\n this.#input = input;\n this.#format = format;\n this.#onDestroy = onDestroy;\n this.#input.setOutput(this);\n [this.#root, this.#setRoot] = createStore({\n '': format.singular ? undefined : [],\n });\n\n this.#setRoot(\n produce(draftRoot => {\n for (const node of this.#input.fetch({})) {\n applyChange(\n draftRoot,\n {type: 'add', node},\n this.#input.getSchema(),\n '',\n this.#format,\n );\n }\n }),\n );\n }\n\n get data() {\n return this.#root[''] as V;\n }\n\n destroy() {\n this.#onDestroy();\n }\n\n push(change: Change): void {\n this.#setRoot(\n produce(draftRoot => {\n applyChange(\n draftRoot,\n change,\n this.#input.getSchema(),\n '',\n this.#format,\n );\n }),\n );\n }\n}\n\nexport function solidViewFactory<\n TSchema extends TableSchema,\n TReturn extends QueryType,\n>(\n _query: Query<TSchema, TReturn>,\n input: Input,\n format: Format,\n onDestroy: () => void,\n): SolidView<Smash<TReturn>> {\n const v = new SolidView<Smash<TReturn>>(input, format, onDestroy);\n\n return v;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAAA,SAAuB,YAAY,iBAAgB;;;ACAnD,SAAQ,aAAa,eAAqC;AAenD,IAAM,YAAN,MAAkD;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAIA;AAAA,EACA;AAAA,EAET,YACE,OACA,SAAiB,EAAC,UAAU,OAAO,eAAe,CAAC,EAAC,GACpD,YAAwB,MAAM;AAAA,EAAC,GAC/B;AACA,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,aAAa;AAClB,SAAK,OAAO,UAAU,IAAI;AAC1B,KAAC,KAAK,OAAO,KAAK,QAAQ,IAAI,YAAY;AAAA,MACxC,IAAI,OAAO,WAAW,SAAY,CAAC;AAAA,IACrC,CAAC;AAED,SAAK;AAAA,MACH,QAAQ,eAAa;AACnB,mBAAW,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC,GAAG;AACxC;AAAA,YACE;AAAA,YACA,EAAC,MAAM,OAAO,KAAI;AAAA,YAClB,KAAK,OAAO,UAAU;AAAA,YACtB;AAAA,YACA,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,MAAM,EAAE;AAAA,EACtB;AAAA,EAEA,UAAU;AACR,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,KAAK,QAAsB;AACzB,SAAK;AAAA,MACH,QAAQ,eAAa;AACnB;AAAA,UACE;AAAA,UACA;AAAA,UACA,KAAK,OAAO,UAAU;AAAA,UACtB;AAAA,UACA,KAAK;AAAA,QACP;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,SAAS,iBAId,QACA,OACA,QACA,WAC2B;AAC3B,QAAM,IAAI,IAAI,UAA0B,OAAO,QAAQ,SAAS;AAEhE,SAAO;AACT;;;AD9EO,SAAS,SAGd,aAAsE;AACtE,SAAO,WAAW,MAAM;AACtB,UAAM,QAAQ,YAAY;AAC1B,UAAM,OAAQ,MAA0C;AAAA,MACtD;AAAA,IACF;AAEA,cAAU,MAAM;AACd,WAAK,QAAQ;AAAA,IACf,CAAC;AAED,WAAO,KAAK;AAAA,EACd,CAAC;AACH;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -6,7 +6,7 @@ import type { DefaultQueryResultRow, Query, QueryType, Smash } from '../../../zq
|
|
|
6
6
|
import type { TableSchema } from '../../../zql/src/zql/query/schema.js';
|
|
7
7
|
import type { TypedView } from '../../../zql/src/zql/query/typed-view.js';
|
|
8
8
|
export declare class ConfigQuery<TTableSchema extends TableSchema, TReturn extends QueryType = DefaultQueryResultRow<TTableSchema>> extends AbstractQuery<TTableSchema, TReturn> {
|
|
9
|
-
constructor(schema: NormalizedTableSchema, ast?: AST
|
|
9
|
+
constructor(schema: NormalizedTableSchema, ast?: AST, format?: Format | undefined);
|
|
10
10
|
get ast(): AST;
|
|
11
11
|
protected _newQuery<TSchema extends TableSchema, TReturn extends QueryType>(schema: NormalizedTableSchema, ast: AST, format: Format | undefined): Query<TSchema, TReturn>;
|
|
12
12
|
materialize(): TypedView<Smash<TReturn>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-query.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/config-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,sDAAsD,CAAC;AAChG,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,KAAK,EACV,qBAAqB,EACrB,KAAK,EACL,SAAS,EACT,KAAK,EACN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,sCAAsC,CAAC;AACtE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0CAA0C,CAAC;AAExE,qBAAa,WAAW,CACtB,YAAY,SAAS,WAAW,EAChC,OAAO,SAAS,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAC/D,SAAQ,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC;gBAE1C,MAAM,EAAE,qBAAqB,EAC7B,GAAG,
|
|
1
|
+
{"version":3,"file":"config-query.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/config-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,sDAAsD,CAAC;AAChG,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,KAAK,EACV,qBAAqB,EACrB,KAAK,EACL,SAAS,EACT,KAAK,EACN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,sCAAsC,CAAC;AACtE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0CAA0C,CAAC;AAExE,qBAAa,WAAW,CACtB,YAAY,SAAS,WAAW,EAChC,OAAO,SAAS,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAC/D,SAAQ,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC;gBAE1C,MAAM,EAAE,qBAAqB,EAC7B,GAAG,GAAE,GAA+B,EACpC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS;IAK7B,IAAI,GAAG,QAEN;IAED,SAAS,CAAC,SAAS,CAAC,OAAO,SAAS,WAAW,EAAE,OAAO,SAAS,SAAS,EACxE,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAI1B,WAAW,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAIxC,OAAO,IAAI;QACT,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB;CAGF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AbstractQuery } from '../../../zql/src/zql/query/query-impl.js';
|
|
2
2
|
export class ConfigQuery extends AbstractQuery {
|
|
3
|
-
constructor(schema, ast, format) {
|
|
3
|
+
constructor(schema, ast = { table: schema.tableName }, format) {
|
|
4
4
|
super(schema, ast, format);
|
|
5
5
|
}
|
|
6
6
|
get ast() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-query.js","sourceRoot":"","sources":["../../../../../zero-cache/src/config/config-query.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AAUvE,MAAM,OAAO,WAGX,SAAQ,aAAoC;IAC5C,YACE,MAA6B,EAC7B,
|
|
1
|
+
{"version":3,"file":"config-query.js","sourceRoot":"","sources":["../../../../../zero-cache/src/config/config-query.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AAUvE,MAAM,OAAO,WAGX,SAAQ,aAAoC;IAC5C,YACE,MAA6B,EAC7B,MAAW,EAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAC,EACpC,MAA2B;QAE3B,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAES,SAAS,CACjB,MAA6B,EAC7B,GAAQ,EACR,MAA0B;QAE1B,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW;QACT,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QAIL,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;CACF"}
|
|
@@ -23,7 +23,8 @@ export declare const FORCEFUL_SHUTDOWN: readonly ["SIGQUIT"];
|
|
|
23
23
|
export declare class Terminator {
|
|
24
24
|
#private;
|
|
25
25
|
constructor(lc: LogContext, proc?: EventEmitter, exit?: (code: number) => never);
|
|
26
|
-
|
|
26
|
+
/** Adds a "frontline" service that is killed on any signal. */
|
|
27
|
+
addFrontlineService(service: SingletonService): void;
|
|
27
28
|
addWorker(worker: Worker, type: WorkerType): Worker;
|
|
28
29
|
logErrorAndExit(err: unknown): never;
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"life-cycle.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/life-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,YAAY,CAAC;AAEtD,eAAO,MAAM,iBAAiB,gCAAiC,CAAC;AAChE,eAAO,MAAM,iBAAiB,sBAAuB,CAAC;AAEtD;;GAEG;AACH,qBAAa,UAAU;;
|
|
1
|
+
{"version":3,"file":"life-cycle.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/life-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,YAAY,CAAC;AAEtD,eAAO,MAAM,iBAAiB,gCAAiC,CAAC;AAChE,eAAO,MAAM,iBAAiB,sBAAuB,CAAC;AAEtD;;GAEG;AACH,qBAAa,UAAU;;gBAUnB,EAAE,EAAE,UAAU,EAEd,IAAI,GAAE,YAAsB,EAC5B,IAAI,UAAU,MAAM,UAAuB;IA2C7C,+DAA+D;IAC/D,mBAAmB,CAAC,OAAO,EAAE,gBAAgB;IAI7C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM;IAanD,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK;CAyCrC;AAyBD;;;;;;GAMG;AAEH,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,GAAG,QAAQ,EAAE,gBAAgB,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAQvD"}
|
|
@@ -9,6 +9,7 @@ export class Terminator {
|
|
|
9
9
|
#userFacing = new Set();
|
|
10
10
|
#all = new Set();
|
|
11
11
|
#exit;
|
|
12
|
+
#frontlineServices = [];
|
|
12
13
|
#drainStart = 0;
|
|
13
14
|
constructor(lc,
|
|
14
15
|
// testing hooks
|
|
@@ -18,10 +19,14 @@ export class Terminator {
|
|
|
18
19
|
// initiating a graceful shutdown. The terminator process will
|
|
19
20
|
// exit once all user-facing workers have exited ...
|
|
20
21
|
for (const signal of GRACEFUL_SHUTDOWN) {
|
|
21
|
-
proc.on(signal, () => this
|
|
22
|
+
proc.on(signal, () => this.#startDrain(signal));
|
|
22
23
|
}
|
|
23
24
|
// ... which will result in sending `SIGTERM` to the remaining workers.
|
|
24
|
-
proc.on('exit', code =>
|
|
25
|
+
proc.on('exit', code => {
|
|
26
|
+
const signal = code === 0 ? GRACEFUL_SHUTDOWN[0] : FORCEFUL_SHUTDOWN[0];
|
|
27
|
+
this.#stopServices(signal);
|
|
28
|
+
kill(this.#all, signal);
|
|
29
|
+
});
|
|
25
30
|
// For other (catchable) kill signals, exit with a non-zero error code
|
|
26
31
|
// to send a `SIGQUIT` to all workers. For this signal, workers are
|
|
27
32
|
// stopped immediately without draining. See `runUntilKilled()`.
|
|
@@ -30,8 +35,9 @@ export class Terminator {
|
|
|
30
35
|
}
|
|
31
36
|
this.#exit = exit;
|
|
32
37
|
}
|
|
33
|
-
startDrain(signal = 'SIGTERM') {
|
|
38
|
+
#startDrain(signal = 'SIGTERM') {
|
|
34
39
|
this.#drainStart = Date.now();
|
|
40
|
+
this.#stopServices(signal);
|
|
35
41
|
if (this.#userFacing.size) {
|
|
36
42
|
kill(this.#userFacing, signal);
|
|
37
43
|
}
|
|
@@ -39,6 +45,14 @@ export class Terminator {
|
|
|
39
45
|
kill(this.#all, signal);
|
|
40
46
|
}
|
|
41
47
|
}
|
|
48
|
+
#stopServices(signal) {
|
|
49
|
+
stop(this.#lc, this.#frontlineServices, signal);
|
|
50
|
+
this.#frontlineServices.splice(0);
|
|
51
|
+
}
|
|
52
|
+
/** Adds a "frontline" service that is killed on any signal. */
|
|
53
|
+
addFrontlineService(service) {
|
|
54
|
+
this.#frontlineServices.push(service);
|
|
55
|
+
}
|
|
42
56
|
addWorker(worker, type) {
|
|
43
57
|
if (type === 'user-facing') {
|
|
44
58
|
this.#userFacing.add(worker);
|
|
@@ -86,6 +100,17 @@ function kill(workers, signal) {
|
|
|
86
100
|
worker.kill(signal);
|
|
87
101
|
}
|
|
88
102
|
}
|
|
103
|
+
function stop(lc, services, signal) {
|
|
104
|
+
const GRACEFUL_SIGNALS = GRACEFUL_SHUTDOWN;
|
|
105
|
+
services.forEach(async (svc) => {
|
|
106
|
+
if (GRACEFUL_SIGNALS.includes(signal) && svc.drain) {
|
|
107
|
+
lc.info?.(`draining ${svc.constructor.name} ${svc.id} (${signal})`);
|
|
108
|
+
await svc.drain();
|
|
109
|
+
}
|
|
110
|
+
lc.info?.(`stopping ${svc.constructor.name} ${svc.id} (${signal})`);
|
|
111
|
+
await svc.stop();
|
|
112
|
+
});
|
|
113
|
+
}
|
|
89
114
|
/**
|
|
90
115
|
* Runs the specified services, stopping them on `SIGTERM` or `SIGINT` with
|
|
91
116
|
* an optional {@link SingletonService.drain drain()}, or stopping them
|
|
@@ -95,17 +120,7 @@ function kill(workers, signal) {
|
|
|
95
120
|
*/
|
|
96
121
|
export async function runUntilKilled(lc, parent, ...services) {
|
|
97
122
|
for (const signal of [...GRACEFUL_SHUTDOWN, ...FORCEFUL_SHUTDOWN]) {
|
|
98
|
-
parent.once(signal, () =>
|
|
99
|
-
const GRACEFUL_SIGNALS = GRACEFUL_SHUTDOWN;
|
|
100
|
-
services.forEach(async (svc) => {
|
|
101
|
-
if (GRACEFUL_SIGNALS.includes(signal) && svc.drain) {
|
|
102
|
-
lc.info?.(`draining ${svc.constructor.name} ${svc.id} (${signal})`);
|
|
103
|
-
await svc.drain();
|
|
104
|
-
}
|
|
105
|
-
lc.info?.(`stopping ${svc.constructor.name} ${svc.id} (${signal})`);
|
|
106
|
-
await svc.stop();
|
|
107
|
-
});
|
|
108
|
-
});
|
|
123
|
+
parent.once(signal, () => stop(lc, services, signal));
|
|
109
124
|
}
|
|
110
125
|
try {
|
|
111
126
|
// Run all services and resolve when any of them stops.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"life-cycle.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/life-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAmB5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,CAAU,CAAC;AAEtD;;GAEG;AACH,MAAM,OAAO,UAAU;IACZ,GAAG,CAAa;IAChB,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IACzB,KAAK,CAA0B;
|
|
1
|
+
{"version":3,"file":"life-cycle.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/life-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,8 @@ import { pgClient } from '../types/pg.js';
|
|
|
9
9
|
import { childWorker } from '../types/processes.js';
|
|
10
10
|
import { orTimeout } from '../types/timeout.js';
|
|
11
11
|
import { createNotifierFrom, handleSubscriptionsFrom, subscribeTo, } from '../workers/replicator.js';
|
|
12
|
-
import {
|
|
12
|
+
import { Terminator } from './life-cycle.js';
|
|
13
13
|
import { createLogContext } from './logging.js';
|
|
14
|
-
import { TaskStateWatcher } from './task-state-watcher.js';
|
|
15
14
|
const startMs = Date.now();
|
|
16
15
|
const config = await getZeroConfig();
|
|
17
16
|
const lc = createLogContext(config.log, { worker: 'dispatcher' });
|
|
@@ -76,21 +75,15 @@ if ((await orTimeout(Promise.all(ready), 30_000)) === 'timed-out') {
|
|
|
76
75
|
else {
|
|
77
76
|
lc.info?.(`all workers ready (${Date.now() - startMs} ms)`);
|
|
78
77
|
}
|
|
79
|
-
void new TaskStateWatcher(lc, terminator).run();
|
|
80
78
|
if (numSyncers) {
|
|
81
79
|
const workers = { syncers };
|
|
82
80
|
const dispatcher = new Dispatcher(lc, () => workers);
|
|
81
|
+
terminator.addFrontlineService(dispatcher);
|
|
83
82
|
try {
|
|
84
83
|
await dispatcher.run();
|
|
85
84
|
}
|
|
86
85
|
catch (err) {
|
|
87
86
|
terminator.logErrorAndExit(err);
|
|
88
87
|
}
|
|
89
|
-
for (const signal of GRACEFUL_SHUTDOWN) {
|
|
90
|
-
process.on(signal, () => {
|
|
91
|
-
lc.info?.('drain mode: no longer accepting connections');
|
|
92
|
-
return dispatcher.stop();
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
88
|
}
|
|
96
89
|
//# sourceMappingURL=main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,eAAe,CAAC;AACvB,OAAO,EAAC,oBAAoB,EAAC,MAAM,SAAS,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAe,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,WAAW,EAAc,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EAEvB,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/ddl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAU5D,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAQlC,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;aAGnB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAI9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAGzB,CAAC;AASH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAyDhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAGlC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/ddl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAU5D,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAQlC,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;aAGnB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAI9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAGzB,CAAC;AASH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAyDhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAGlC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAiMtE,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,UAgDvB"}
|
|
@@ -197,7 +197,15 @@ DECLARE
|
|
|
197
197
|
BEGIN
|
|
198
198
|
publications := ARRAY[${lit(publications)}];
|
|
199
199
|
|
|
200
|
-
SELECT objid, object_type, object_identity
|
|
200
|
+
SELECT objid, object_type, object_identity
|
|
201
|
+
FROM pg_event_trigger_ddl_commands()
|
|
202
|
+
WHERE object_type IN (
|
|
203
|
+
'table',
|
|
204
|
+
'table column',
|
|
205
|
+
'index',
|
|
206
|
+
'publication relation',
|
|
207
|
+
'publication namespace')
|
|
208
|
+
LIMIT 1 INTO cmd;
|
|
201
209
|
|
|
202
210
|
-- Filter DDL updates that are not relevant to the shard (i.e. publications) when possible.
|
|
203
211
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/ddl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/ddl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import type { Worker } from '../../types/processes.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { SingletonService } from '../service.js';
|
|
4
4
|
export declare const CONNECT_URL_PATTERN = "/api/sync/:version/connect";
|
|
5
5
|
export type Workers = {
|
|
6
6
|
syncers: Worker[];
|
|
@@ -9,7 +9,7 @@ export declare const DEFAULT_PORT = 4848;
|
|
|
9
9
|
export type Options = {
|
|
10
10
|
port: number;
|
|
11
11
|
};
|
|
12
|
-
export declare class Dispatcher implements
|
|
12
|
+
export declare class Dispatcher implements SingletonService {
|
|
13
13
|
#private;
|
|
14
14
|
readonly id = "dispatcher";
|
|
15
15
|
constructor(lc: LogContext, workersByHostname: (hostname: string) => Workers, opts?: Partial<Options>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAI5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAI5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAIpD,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,UAAW,YAAW,gBAAgB;;IACjD,QAAQ,CAAC,EAAE,gBAAgB;gBAOzB,EAAE,EAAE,UAAU,EACd,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EAChD,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM;IAkCvB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,OAAO,EAAE,EAAsB,MAAM,SAAS,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,EAAC,GAAG,EAAC,MAAM,kCAAkC,CAAC;AAGrD,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AAMhE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAMjC,MAAM,OAAO,UAAU;IACZ,EAAE,GAAG,YAAY,CAAC;IAClB,GAAG,CAAa;IAChB,kBAAkB,CAAgC;IAClD,QAAQ,CAAkB;IAC1B,KAAK,CAAS;IAEvB,YACE,EAAc,EACd,iBAAgD,EAChD,OAAyB,EAAE;QAE3B,MAAM,EAAC,IAAI,GAAG,YAAY,EAAC,GAAG,IAAI,CAAC;QAEnC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,QAAQ,CAAC,GAAoB;QAC3B,MAAM,EAAC,OAAO,EAAE,GAAG,EAAC,GAAG,GAAG,CAAC;QAC3B,MAAM,EAAC,MAAM,EAAE,KAAK,EAAC,GAAG,gBAAgB,CACtC,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,gBAAgB,CAAC,EACpC,OAAO,CACR,CAAC;QACF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,CAAC;QAC/B,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAEnD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,cAAc,aAAa,cAAc,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-manager.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/query-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4CAA4C,CAAC;AAG/E,OAAO,EAAe,KAAK,GAAG,EAAC,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EACV,2BAA2B,EAC3B,cAAc,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"query-manager.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/query-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4CAA4C,CAAC;AAG/E,OAAO,EAAe,KAAK,GAAG,EAAC,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EACV,2BAA2B,EAC3B,cAAc,EACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAK/C;;;;GAIG;AACH,qBAAa,YAAY;;gBAUrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,CAAC,MAAM,EAAE,2BAA2B,KAAK,IAAI,EACnD,iBAAiB,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,mBAAmB,CAAC;IAkC7E;;;;;;;;;;;;;;OAcG;IACG,eAAe,CACnB,EAAE,EAAE,eAAe,EACnB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,SAAS,GAClD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAsCvC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,IAAI;CAuDjE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { must } from '../../../shared/src/must.js';
|
|
2
|
-
import {
|
|
2
|
+
import { hashOfAST } from '../../../zero-protocol/src/ast-hash.js';
|
|
3
3
|
import { normalizeAST } from '../../../zero-protocol/src/ast.js';
|
|
4
4
|
import { desiredQueriesPrefixForClient, GOT_QUERIES_KEY_PREFIX } from './keys.js';
|
|
5
5
|
/**
|
|
@@ -92,7 +92,7 @@ export class QueryManager {
|
|
|
92
92
|
}
|
|
93
93
|
add(ast, gotCallback) {
|
|
94
94
|
const normalized = normalizeAST(ast);
|
|
95
|
-
const astHash =
|
|
95
|
+
const astHash = hashOfAST(normalized);
|
|
96
96
|
let entry = this.#queries.get(astHash);
|
|
97
97
|
if (!entry) {
|
|
98
98
|
entry = {
|
|
@@ -143,7 +143,4 @@ export class QueryManager {
|
|
|
143
143
|
return true;
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
|
-
function hash(normalized) {
|
|
147
|
-
return h64(JSON.stringify(normalized)).toString(36);
|
|
148
|
-
}
|
|
149
146
|
//# sourceMappingURL=query-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-manager.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/query-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"query-manager.js","sourceRoot":"","sources":["../../../../../zero-client/src/client/query-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ export type { Change } from '../../zql/src/zql/ivm/change.js';
|
|
|
2
2
|
export type { Input, Output } from '../../zql/src/zql/ivm/operator.js';
|
|
3
3
|
export { applyChange } from '../../zql/src/zql/ivm/view-apply-change.js';
|
|
4
4
|
export type { Entry, Format, View } from '../../zql/src/zql/ivm/view.js';
|
|
5
|
+
export type { QueryInternal } from '../../zql/src/zql/query/query-internal.js';
|
|
5
6
|
export type { Query, QueryType, Smash } from '../../zql/src/zql/query/query.js';
|
|
6
7
|
export type { TableSchema } from '../../zql/src/zql/query/schema.js';
|
|
7
8
|
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../zero-internal/src/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,MAAM,EAAC,MAAM,iCAAiC,CAAC;AAC5D,YAAY,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAC,WAAW,EAAC,MAAM,4CAA4C,CAAC;AACvE,YAAY,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,MAAM,kCAAkC,CAAC;AAC9E,YAAY,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../zero-internal/src/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,MAAM,EAAC,MAAM,iCAAiC,CAAC;AAC5D,YAAY,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAC,WAAW,EAAC,MAAM,4CAA4C,CAAC;AACvE,YAAY,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAC,aAAa,EAAC,MAAM,2CAA2C,CAAC;AAC7E,YAAY,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,MAAM,kCAAkC,CAAC;AAC9E,YAAY,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-hash.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/ast-hash.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,GAAG,EAAC,MAAM,UAAU,CAAC;AAIhD,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAS1C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { h64 } from '../../shared/src/xxhash.js';
|
|
2
|
+
import { normalizeAST } from './ast.js';
|
|
3
|
+
const hashCache = new WeakMap();
|
|
4
|
+
export function hashOfAST(ast) {
|
|
5
|
+
const normalized = normalizeAST(ast);
|
|
6
|
+
const cached = hashCache.get(normalized);
|
|
7
|
+
if (cached) {
|
|
8
|
+
return cached;
|
|
9
|
+
}
|
|
10
|
+
const hash = h64(JSON.stringify(normalized)).toString(36);
|
|
11
|
+
hashCache.set(normalized, hash);
|
|
12
|
+
return hash;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ast-hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-hash.js","sourceRoot":"","sources":["../../../../zero-protocol/src/ast-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,4BAA4B,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAW,MAAM,UAAU,CAAC;AAEhD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAe,CAAC;AAE7C,MAAM,UAAU,SAAS,CAAC,GAAQ;IAChC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1D,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/ast.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,8 +60,13 @@ export const astSchema = v.object({
|
|
|
60
60
|
})
|
|
61
61
|
.optional(),
|
|
62
62
|
});
|
|
63
|
+
const normalizeCache = new WeakMap();
|
|
63
64
|
export function normalizeAST(ast) {
|
|
64
|
-
|
|
65
|
+
const cached = normalizeCache.get(ast);
|
|
66
|
+
if (cached) {
|
|
67
|
+
return cached;
|
|
68
|
+
}
|
|
69
|
+
const normalized = {
|
|
65
70
|
schema: ast.schema,
|
|
66
71
|
table: ast.table,
|
|
67
72
|
alias: ast.alias,
|
|
@@ -81,6 +86,8 @@ export function normalizeAST(ast) {
|
|
|
81
86
|
limit: ast.limit,
|
|
82
87
|
orderBy: ast.orderBy,
|
|
83
88
|
};
|
|
89
|
+
normalizeCache.set(ast, normalized);
|
|
90
|
+
return normalized;
|
|
84
91
|
}
|
|
85
92
|
function sortedWhere(where) {
|
|
86
93
|
return [...where].sort(cmpCondition);
|