eddev 0.2.67-beta1 → 0.3.0-beta1
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/admin/components/ImageWell.d.ts +2 -2
- package/admin/components/ImageWell.js +51 -39
- package/admin/defineField.d.ts +2 -2
- package/admin/defineWidget.d.ts +1 -1
- package/admin/defineWidget.js +2 -2
- package/admin/index.js +1 -5
- package/admin/installFieldTypes.js +26 -26
- package/admin/runWidgets.js +28 -17
- package/admin/selectMedia.d.ts +2 -2
- package/admin/selectMedia.js +1 -1
- package/blocks/ContentBlocks.d.ts +6 -6
- package/blocks/ContentBlocks.js +66 -58
- package/blocks/ErrorBoundaryEditor.d.ts +1 -1
- package/blocks/ErrorBoundaryEditor.js +45 -16
- package/blocks/ErrorBoundaryFrontend.d.ts +1 -1
- package/blocks/ErrorBoundaryFrontend.js +45 -16
- package/blocks/InspectorControls.d.ts +1 -1
- package/blocks/InspectorControls.js +3 -3
- package/blocks/blockAttributes.d.ts +2 -2
- package/blocks/blockAttributes.js +44 -24
- package/blocks/index.js +1 -5
- package/blocks/inlineEditing.d.ts +6 -6
- package/blocks/inlineEditing.js +55 -36
- package/blocks/installGutenbergHooks.js +68 -48
- package/build/babel/plugin-name-defined-components.js +16 -15
- package/build/build-favicon.js +62 -11
- package/build/clean.js +52 -5
- package/build/create-codegen-worker.js +33 -78
- package/build/create-serverless-dev-worker.js +39 -61
- package/build/create-webpack-worker.js +33 -65
- package/build/file-tree.d.ts +2 -2
- package/build/file-tree.js +12 -12
- package/build/get-webpack-config.js +395 -341
- package/build/graphql-codegen/graphql-codegen-files.js +25 -31
- package/build/graphql-codegen/graphql-codegen-no-duplicates.js +4 -4
- package/build/graphql-codegen/graphql-codegen-queries.js +99 -102
- package/build/manifests/manifest-blocks.d.ts +1 -1
- package/build/manifests/manifest-blocks.js +29 -37
- package/build/manifests/manifest-fields.d.ts +1 -1
- package/build/manifests/manifest-fields.js +21 -23
- package/build/manifests/manifest-views.d.ts +1 -1
- package/build/manifests/manifest-views.js +25 -32
- package/build/manifests/manifest-widgets.d.ts +1 -1
- package/build/manifests/manifest-widgets.js +20 -22
- package/build/manifests/manifest.d.ts +2 -2
- package/build/manifests/manifest.js +94 -30
- package/build/reporter.d.ts +1 -1
- package/build/reporter.js +32 -29
- package/build/serverless/create-next-app.d.ts +1 -1
- package/build/serverless/create-next-app.js +467 -245
- package/build/state/codegen-state.d.ts +4 -4
- package/build/state/compiler-state.d.ts +5 -5
- package/build/state/serverless-state.d.ts +3 -3
- package/build/workers/codegen-worker-script.js +519 -393
- package/build/workers/serverless-worker-dev-script.js +4 -4
- package/build/workers/webpack-worker-script.js +156 -90
- package/cli/build.dev.d.ts +1 -1
- package/cli/build.dev.js +126 -79
- package/cli/build.prod.d.ts +1 -1
- package/cli/build.prod.js +98 -42
- package/cli/cli.js +28 -19
- package/cli/display/components/BundleDisplay.d.ts +1 -1
- package/cli/display/components/BundleDisplay.js +24 -13
- package/cli/display/components/CodegenDisplay.d.ts +1 -1
- package/cli/display/components/CodegenDisplay.js +25 -14
- package/cli/display/components/DevCLIDisplay.d.ts +2 -2
- package/cli/display/components/DevCLIDisplay.js +25 -14
- package/cli/display/components/Fullscreen.js +20 -9
- package/cli/display/components/ServerlessDisplay.d.ts +2 -2
- package/cli/display/components/ServerlessDisplay.js +26 -15
- package/cli/display/components/StatusIcon.d.ts +2 -2
- package/cli/display/components/StatusIcon.js +3 -3
- package/cli/preinstall.js +5 -4
- package/cli/setup.js +73 -25
- package/components/AdminBar.d.ts +1 -1
- package/components/AdminBar.js +3 -37
- package/components/BrowserRouter.d.ts +2 -2
- package/components/BrowserRouter.js +54 -41
- package/components/InlinePage.d.ts +2 -2
- package/components/InlinePage.js +29 -17
- package/components/NextRouter.d.ts +2 -2
- package/components/NextRouter.js +29 -20
- package/components/index.js +1 -5
- package/config/config-schema.d.ts +1 -1
- package/config/config-schema.js +1 -1
- package/config/create-schema-file.js +6 -6
- package/config/get-config.js +13 -10
- package/config/index.js +1 -5
- package/config/parse-config.js +1 -1
- package/config/print-zod-errors.js +3 -3
- package/dev-ui/components/BreakpointColumnHeader.d.ts +2 -2
- package/dev-ui/components/BreakpointColumnHeader.js +18 -7
- package/dev-ui/components/BreakpointIndicator.d.ts +1 -1
- package/dev-ui/components/BreakpointIndicator.js +32 -25
- package/dev-ui/components/DevUI.d.ts +1 -1
- package/dev-ui/components/DevUI.js +13 -13
- package/dev-ui/components/Launcher.d.ts +2 -2
- package/dev-ui/components/Launcher.js +25 -13
- package/dev-ui/components/PanelWrapper.d.ts +2 -2
- package/dev-ui/components/PanelWrapper.js +8 -8
- package/dev-ui/components/ResponsiveLerpControl.d.ts +2 -2
- package/dev-ui/components/ResponsiveLerpControl.js +38 -27
- package/dev-ui/components/ResponsiveScaleEditor.d.ts +4 -4
- package/dev-ui/components/ResponsiveScaleEditor.js +78 -64
- package/dev-ui/components/atoms/Button.js +1 -1
- package/dev-ui/components/atoms/Dropdown.d.ts +3 -3
- package/dev-ui/components/atoms/Dropdown.js +9 -8
- package/dev-ui/components/atoms/NumberField.d.ts +2 -2
- package/dev-ui/components/atoms/NumberField.js +42 -29
- package/dev-ui/components/atoms/Spacer.js +1 -1
- package/dev-ui/components/atoms/Text.js +1 -1
- package/dev-ui/components/atoms/ToggleButton.d.ts +2 -2
- package/dev-ui/components/atoms/ToggleButton.js +16 -5
- package/dev-ui/components/atoms/Tooltip.d.ts +2 -2
- package/dev-ui/components/atoms/Tooltip.js +20 -8
- package/dev-ui/components/panels/AppDataDebugger.d.ts +1 -1
- package/dev-ui/components/panels/AppDataDebugger.js +19 -8
- package/dev-ui/components/panels/ColorEditor.d.ts +1 -1
- package/dev-ui/components/panels/ColorEditor.js +42 -35
- package/dev-ui/components/panels/PageDataDebugger.d.ts +1 -1
- package/dev-ui/components/panels/PageDataDebugger.js +20 -8
- package/dev-ui/components/panels/QueryDebugger.d.ts +1 -1
- package/dev-ui/components/panels/QueryDebugger.js +24 -12
- package/dev-ui/components/panels/SpacingEditor.d.ts +1 -1
- package/dev-ui/components/panels/SpacingEditor.js +48 -34
- package/dev-ui/components/panels/TypographyEditor.d.ts +1 -1
- package/dev-ui/components/panels/TypographyEditor.js +46 -38
- package/dev-ui/hooks/useBreakpoint.d.ts +1 -1
- package/dev-ui/hooks/useBreakpoint.js +13 -13
- package/dev-ui/hooks/usePersistState.js +7 -6
- package/dev-ui/hooks/useStylesheet.js +6 -6
- package/dev-ui/icons.d.ts +15 -15
- package/dev-ui/icons.js +27 -16
- package/dev-ui/index.js +1 -5
- package/dev-ui/loader.d.ts +1 -1
- package/dev-ui/loader.js +9 -13
- package/dev-ui/panels.d.ts +2 -2
- package/dev-ui/panels.js +7 -7
- package/dev-ui/theme.js +3 -3
- package/dynamic/dynamic-component.js +1 -1
- package/dynamic/index.js +1 -5
- package/entry/Root.d.ts +2 -2
- package/entry/Root.js +26 -16
- package/entry/entry.admin.dev.js +4 -4
- package/entry/entry.admin.prod.js +4 -4
- package/entry/entry.monolith.dev.js +5 -5
- package/entry/entry.monolith.prod.js +5 -5
- package/gravityforms/gravity-forms.d.ts +2 -2
- package/gravityforms/index.js +1 -5
- package/gravityforms/useGravityForm.d.ts +2 -2
- package/gravityforms/useGravityForm.js +130 -126
- package/hooks/index.js +1 -5
- package/hooks/queryUtils.d.ts +14 -14
- package/hooks/queryUtils.js +192 -101
- package/hooks/useAppData.d.ts +2 -2
- package/hooks/useAppData.js +9 -9
- package/hooks/usePageLoad.js +4 -4
- package/hooks/useQueryDebug.d.ts +1 -1
- package/hooks/useQueryDebug.js +7 -7
- package/hooks/useRPC.d.ts +4 -4
- package/hooks/useRPC.js +3 -3
- package/package.json +11 -11
- package/routing/index.js +1 -5
- package/routing/remoteProps.d.ts +1 -1
- package/routing/remoteProps.js +72 -31
- package/routing/routing.d.ts +25 -15
- package/routing/routing.js +200 -112
- package/routing/updateEditLink.js +1 -1
- package/serverless/define-api.d.ts +1 -1
- package/serverless/define-rpc-router.js +4 -8
- package/serverless/index.js +2 -6
- package/style/createStitches.js +142 -164
- package/style/index.js +1 -5
- package/tsconfig.json +1 -1
- package/utils/Observable.d.ts +2 -2
- package/utils/Observable.js +15 -12
- package/utils/getRepoName.js +3 -3
- package/utils/promptIfRepoNameIncorrect.js +64 -18
- package/utils/refreshOverlayInterop.js +1 -1
- package/utils/reportErrorStack.d.ts +1 -1
- package/utils/reportErrorStack.js +1 -1
- package/utils/serverlessAppContext.js +1 -1
- package/utils/updateEnvFile.js +69 -19
- package/utils/useObservable.js +3 -3
- package/views/index.js +1 -5
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
14
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
16
|
}) : (function(o, m, k, k2) {
|
|
10
17
|
if (k2 === undefined) k2 = k;
|
|
11
18
|
o[k2] = m[k];
|
|
@@ -22,424 +29,523 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
29
|
__setModuleDefault(result, mod);
|
|
23
30
|
return result;
|
|
24
31
|
};
|
|
32
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
33
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
34
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
35
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
36
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
37
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
38
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
42
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
43
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
44
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
45
|
+
function step(op) {
|
|
46
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
47
|
+
while (_) try {
|
|
48
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
49
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
50
|
+
switch (op[0]) {
|
|
51
|
+
case 0: case 1: t = op; break;
|
|
52
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
53
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
54
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
55
|
+
default:
|
|
56
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
57
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
58
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
59
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
60
|
+
if (t[2]) _.ops.pop();
|
|
61
|
+
_.trys.pop(); continue;
|
|
62
|
+
}
|
|
63
|
+
op = body.call(thisArg, _);
|
|
64
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
65
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
69
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
70
|
+
if (ar || !(i in from)) {
|
|
71
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
72
|
+
ar[i] = from[i];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
76
|
+
};
|
|
25
77
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
78
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
79
|
};
|
|
28
80
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
81
|
exports.beginWork = void 0;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
82
|
+
var worker_threads_1 = require("worker_threads");
|
|
83
|
+
var chokidar_1 = require("chokidar");
|
|
84
|
+
var Path = __importStar(require("path"));
|
|
85
|
+
var fs_1 = require("fs");
|
|
86
|
+
var graphql_1 = require("graphql");
|
|
87
|
+
var load_1 = require("@graphql-tools/load");
|
|
88
|
+
var url_loader_1 = require("@graphql-tools/url-loader");
|
|
37
89
|
// import { generate } from "@graphql-codegen/cli"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
90
|
+
var core_1 = require("@graphql-codegen/core");
|
|
91
|
+
var glob_promise_1 = __importDefault(require("glob-promise"));
|
|
92
|
+
var promises_1 = require("fs/promises");
|
|
93
|
+
var cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
42
94
|
// Plugins
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
95
|
+
var typescriptPlugin = __importStar(require("@graphql-codegen/typescript"));
|
|
96
|
+
var typescriptOperationsPlugin = __importStar(require("@graphql-codegen/typescript-operations"));
|
|
97
|
+
var CodegenNoDuplicates = __importStar(require("../graphql-codegen/graphql-codegen-no-duplicates"));
|
|
98
|
+
var CodegenFiles = __importStar(require("../graphql-codegen/graphql-codegen-files"));
|
|
99
|
+
var CodegenQueries = __importStar(require("../graphql-codegen/graphql-codegen-queries"));
|
|
100
|
+
var https_1 = require("https");
|
|
101
|
+
var sendSignal = function (sig) {
|
|
50
102
|
if (worker_threads_1.parentPort) {
|
|
51
103
|
worker_threads_1.parentPort.postMessage(sig);
|
|
52
104
|
}
|
|
105
|
+
else {
|
|
106
|
+
console.log(sig);
|
|
107
|
+
}
|
|
53
108
|
};
|
|
54
|
-
|
|
109
|
+
var graphqlPatterns = {
|
|
55
110
|
blocks: "./blocks/**/*.graphql",
|
|
56
111
|
views: "./views/**/*.graphql",
|
|
57
112
|
queries: "./queries/**/*.graphql",
|
|
58
113
|
fragments: "./queries/fragments/**/*.graphql",
|
|
59
114
|
};
|
|
60
|
-
|
|
115
|
+
var tsxPatterns = {
|
|
61
116
|
blocks: "./blocks/**/*.tsx",
|
|
62
117
|
views: "./views/**/*.tsx",
|
|
63
118
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
let envFile = Path.resolve(opts.baseDirectory, "./.env");
|
|
70
|
-
let endpoint = process.env.DEBUG_GRAPHQL_URL;
|
|
71
|
-
const schemaFile = Path.resolve(opts.baseDirectory, "schema.json"); //relative(process.cwd(), Path.join(opts.baseDirectory, "schema.json"))
|
|
72
|
-
let schema = null;
|
|
73
|
-
let rawSchema = null;
|
|
74
|
-
let lastSchemaHash = "";
|
|
75
|
-
let regenerating = false;
|
|
76
|
-
// Track what needs regenerating
|
|
77
|
-
let needsSchemaFetch = true;
|
|
78
|
-
// console.log (await response.text())
|
|
79
|
-
// Loads the schema from WP, and returns whether or not it's changed
|
|
80
|
-
const loadSchemaFromWordPress = async () => {
|
|
81
|
-
rawSchema = await (0, load_1.loadSchema)(endpoint, {
|
|
82
|
-
loaders: [new url_loader_1.UrlLoader()],
|
|
83
|
-
customFetch: (url, opts) => {
|
|
84
|
-
const httpsAgent = new https_1.Agent({
|
|
85
|
-
rejectUnauthorized: false,
|
|
86
|
-
});
|
|
87
|
-
return (0, cross_fetch_1.default)(url, {
|
|
88
|
-
...opts,
|
|
89
|
-
agent: url.includes("https") ? httpsAgent : undefined,
|
|
90
|
-
});
|
|
91
|
-
},
|
|
92
|
-
});
|
|
93
|
-
schema = (0, graphql_1.introspectionFromSchema)(rawSchema, {
|
|
94
|
-
descriptions: true,
|
|
95
|
-
schemaDescription: false,
|
|
96
|
-
specifiedByUrl: true,
|
|
97
|
-
});
|
|
98
|
-
processSchema(schema);
|
|
99
|
-
const hash = JSON.stringify(schema);
|
|
100
|
-
if (hash !== lastSchemaHash) {
|
|
101
|
-
lastSchemaHash = hash;
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
// Create RPC/API types
|
|
109
|
-
(0, promises_1.writeFile)(Path.join(opts.baseDirectory, "types.api.ts"), `
|
|
110
|
-
import type { router, createContext } from "./apis/_rpc"
|
|
111
|
-
import { createReactQueryHooks } from "@trpc/react"
|
|
112
|
-
export {}
|
|
113
|
-
|
|
114
|
-
const createQueryHooks = () => createReactQueryHooks<typeof router>()
|
|
115
|
-
|
|
116
|
-
declare global {
|
|
117
|
-
type RPCUse = ReturnType<typeof createQueryHooks>
|
|
118
|
-
type RPCRouter = typeof router
|
|
119
|
-
type RPCContextType = Awaited<ReturnType<typeof createContext>>
|
|
120
|
-
type RPCClient = ReturnType<RPCUse["createClient"]>
|
|
121
|
-
type RPCUseQuery = RPCUse["useQuery"]
|
|
122
|
-
type RPCUseMutation = RPCUse["useMutation"]
|
|
123
|
-
type RPCUseInfiniteQuery = RPCUse["useInfiniteQuery"]
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
declare global {
|
|
127
|
-
namespace NodeJS {
|
|
128
|
-
interface Process {
|
|
129
|
-
// @ts-ignore
|
|
130
|
-
browser: boolean
|
|
131
|
-
dev: boolean
|
|
132
|
-
admin: boolean
|
|
133
|
-
serverless: boolean
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
`);
|
|
139
|
-
// Function which runs the full process
|
|
140
|
-
const regenerate = debounce(100, async () => {
|
|
141
|
-
regenerating = true;
|
|
142
|
-
const startTime = Date.now();
|
|
143
|
-
// Only refetch the schema when necessary
|
|
144
|
-
if (needsSchemaFetch) {
|
|
119
|
+
function beginWork(opts) {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
121
|
+
var envFile, endpoint, schemaFile, schema, rawSchema, lastSchemaHash, regenerating, needsSchemaFetch, loadSchemaFromWordPress, regenerate, regenerateBecauseChanges, key, key, maybeRegenerate_1;
|
|
122
|
+
var _this = this;
|
|
123
|
+
return __generator(this, function (_a) {
|
|
145
124
|
sendSignal({
|
|
146
|
-
code: "
|
|
125
|
+
code: "ready",
|
|
147
126
|
});
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
127
|
+
envFile = Path.resolve(opts.baseDirectory, "./.env");
|
|
128
|
+
endpoint = process.env.DEBUG_GRAPHQL_URL;
|
|
129
|
+
schemaFile = Path.resolve(opts.baseDirectory, "schema.json") //relative(process.cwd(), Path.join(opts.baseDirectory, "schema.json"))
|
|
130
|
+
;
|
|
131
|
+
schema = null;
|
|
132
|
+
rawSchema = null;
|
|
133
|
+
lastSchemaHash = "";
|
|
134
|
+
regenerating = false;
|
|
135
|
+
needsSchemaFetch = true;
|
|
136
|
+
loadSchemaFromWordPress = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
137
|
+
var hash;
|
|
138
|
+
return __generator(this, function (_a) {
|
|
139
|
+
switch (_a.label) {
|
|
140
|
+
case 0: return [4 /*yield*/, (0, load_1.loadSchema)(endpoint, {
|
|
141
|
+
loaders: [new url_loader_1.UrlLoader()],
|
|
142
|
+
customFetch: function (url, opts) {
|
|
143
|
+
var httpsAgent = new https_1.Agent({
|
|
144
|
+
rejectUnauthorized: false,
|
|
145
|
+
});
|
|
146
|
+
return (0, cross_fetch_1.default)(url, __assign(__assign({}, opts), { agent: url.includes("https") ? httpsAgent : undefined }));
|
|
147
|
+
},
|
|
148
|
+
})];
|
|
149
|
+
case 1:
|
|
150
|
+
rawSchema = _a.sent();
|
|
151
|
+
schema = (0, graphql_1.introspectionFromSchema)(rawSchema, {
|
|
152
|
+
descriptions: true,
|
|
153
|
+
schemaDescription: false,
|
|
154
|
+
specifiedByUrl: true,
|
|
155
|
+
});
|
|
156
|
+
processSchema(schema);
|
|
157
|
+
hash = JSON.stringify(schema);
|
|
158
|
+
if (hash !== lastSchemaHash) {
|
|
159
|
+
lastSchemaHash = hash;
|
|
160
|
+
return [2 /*return*/, true];
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return [2 /*return*/, false];
|
|
164
|
+
}
|
|
165
|
+
return [2 /*return*/];
|
|
166
|
+
}
|
|
155
167
|
});
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
168
|
+
}); };
|
|
169
|
+
// Create RPC/API types
|
|
170
|
+
(0, promises_1.writeFile)(Path.join(opts.baseDirectory, "types.api.ts"), "\n import type { router, createContext } from \"./apis/_rpc\"\n import { createReactQueryHooks } from \"@trpc/react\"\n export {}\n \n const createQueryHooks = () => createReactQueryHooks<typeof router>()\n \n declare global {\n type RPCUse = ReturnType<typeof createQueryHooks>\n type RPCRouter = typeof router\n type RPCContextType = Awaited<ReturnType<typeof createContext>>\n type RPCClient = ReturnType<RPCUse[\"createClient\"]>\n type RPCUseQuery = RPCUse[\"useQuery\"]\n type RPCUseMutation = RPCUse[\"useMutation\"]\n type RPCUseInfiniteQuery = RPCUse[\"useInfiniteQuery\"]\n }\n\n declare global {\n namespace NodeJS {\n interface Process {\n // @ts-ignore\n browser: boolean\n dev: boolean\n admin: boolean\n serverless: boolean\n }\n }\n }\n \n ");
|
|
171
|
+
regenerate = debounce(100, function () { return __awaiter(_this, void 0, void 0, function () {
|
|
172
|
+
var startTime, hasChanged, err_1, documentSets, parseErrors, _loop_1, _a, _b, _i, key, generates, errors, _c, _d, _e, file, base, config, output, err_2;
|
|
173
|
+
var _this = this;
|
|
174
|
+
return __generator(this, function (_f) {
|
|
175
|
+
switch (_f.label) {
|
|
176
|
+
case 0:
|
|
177
|
+
regenerating = true;
|
|
178
|
+
startTime = Date.now();
|
|
179
|
+
if (!needsSchemaFetch) return [3 /*break*/, 5];
|
|
180
|
+
sendSignal({
|
|
181
|
+
code: "fetching",
|
|
182
|
+
});
|
|
183
|
+
// Show an error if no endpoint was found
|
|
184
|
+
if (!endpoint) {
|
|
185
|
+
sendSignal({
|
|
186
|
+
code: "error",
|
|
187
|
+
errors: [
|
|
188
|
+
"Could not find DEBUG_GRAPHQL_URL value in .env. This will be automatically populated once you visit WP Admin first the first time!",
|
|
189
|
+
],
|
|
190
|
+
});
|
|
191
|
+
regenerating = false;
|
|
192
|
+
return [2 /*return*/];
|
|
193
|
+
}
|
|
194
|
+
_f.label = 1;
|
|
195
|
+
case 1:
|
|
196
|
+
_f.trys.push([1, 3, , 4]);
|
|
197
|
+
return [4 /*yield*/, loadSchemaFromWordPress()];
|
|
198
|
+
case 2:
|
|
199
|
+
hasChanged = _f.sent();
|
|
200
|
+
return [3 /*break*/, 4];
|
|
201
|
+
case 3:
|
|
202
|
+
err_1 = _f.sent();
|
|
203
|
+
// Error loading schema
|
|
204
|
+
sendSignal({
|
|
205
|
+
code: "error",
|
|
206
|
+
errors: ["Could not load GraphQL schema from server:\n" + String(err_1)],
|
|
207
|
+
});
|
|
208
|
+
regenerating = false;
|
|
209
|
+
return [2 /*return*/];
|
|
210
|
+
case 4:
|
|
211
|
+
// Store the schema file
|
|
212
|
+
(0, fs_1.writeFileSync)(schemaFile, JSON.stringify(schema), {
|
|
213
|
+
encoding: "utf-8",
|
|
214
|
+
});
|
|
215
|
+
// No need to refetch
|
|
216
|
+
needsSchemaFetch = false;
|
|
217
|
+
_f.label = 5;
|
|
218
|
+
case 5:
|
|
219
|
+
documentSets = {};
|
|
220
|
+
parseErrors = [];
|
|
221
|
+
_loop_1 = function (key) {
|
|
222
|
+
var pattern, files;
|
|
223
|
+
return __generator(this, function (_g) {
|
|
224
|
+
switch (_g.label) {
|
|
225
|
+
case 0:
|
|
226
|
+
pattern = graphqlPatterns[key];
|
|
227
|
+
// Find all the documents by globbing
|
|
228
|
+
documentSets[key] = [];
|
|
229
|
+
return [4 /*yield*/, (0, glob_promise_1.default)(Path.resolve(opts.baseDirectory, pattern))];
|
|
230
|
+
case 1:
|
|
231
|
+
files = _g.sent();
|
|
232
|
+
return [4 /*yield*/, Promise.all(files.map(function (file) { return __awaiter(_this, void 0, void 0, function () {
|
|
233
|
+
var contents, document_1, err_3;
|
|
234
|
+
return __generator(this, function (_a) {
|
|
235
|
+
switch (_a.label) {
|
|
236
|
+
case 0:
|
|
237
|
+
_a.trys.push([0, 2, , 3]);
|
|
238
|
+
return [4 /*yield*/, (0, promises_1.readFile)(file)];
|
|
239
|
+
case 1:
|
|
240
|
+
contents = (_a.sent()).toString();
|
|
241
|
+
document_1 = (0, graphql_1.parse)(contents);
|
|
242
|
+
documentSets[key].push({
|
|
243
|
+
document: document_1,
|
|
244
|
+
rawSDL: contents,
|
|
245
|
+
location: file,
|
|
246
|
+
});
|
|
247
|
+
return [3 /*break*/, 3];
|
|
248
|
+
case 2:
|
|
249
|
+
err_3 = _a.sent();
|
|
250
|
+
parseErrors.push("Error parsing \"".concat(file.replace(opts.baseDirectory, ""), ":\n").concat(err_3));
|
|
251
|
+
return [3 /*break*/, 3];
|
|
252
|
+
case 3: return [2 /*return*/];
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}); }))];
|
|
256
|
+
case 2:
|
|
257
|
+
_g.sent();
|
|
258
|
+
return [2 /*return*/];
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
};
|
|
262
|
+
_a = [];
|
|
263
|
+
for (_b in graphqlPatterns)
|
|
264
|
+
_a.push(_b);
|
|
265
|
+
_i = 0;
|
|
266
|
+
_f.label = 6;
|
|
267
|
+
case 6:
|
|
268
|
+
if (!(_i < _a.length)) return [3 /*break*/, 9];
|
|
269
|
+
key = _a[_i];
|
|
270
|
+
return [5 /*yield**/, _loop_1(key)];
|
|
271
|
+
case 7:
|
|
272
|
+
_f.sent();
|
|
273
|
+
_f.label = 8;
|
|
274
|
+
case 8:
|
|
275
|
+
_i++;
|
|
276
|
+
return [3 /*break*/, 6];
|
|
277
|
+
case 9:
|
|
278
|
+
if (parseErrors.length > 0) {
|
|
279
|
+
sendSignal({
|
|
280
|
+
code: "error",
|
|
281
|
+
errors: parseErrors,
|
|
282
|
+
});
|
|
283
|
+
regenerating = false;
|
|
284
|
+
return [2 /*return*/];
|
|
285
|
+
}
|
|
286
|
+
generates = {
|
|
287
|
+
"types.graphql.ts": {
|
|
288
|
+
documents: __spreadArray(__spreadArray(__spreadArray([], documentSets.queries, true), documentSets.views, true), documentSets.blocks, true),
|
|
289
|
+
hasDocuments: true,
|
|
290
|
+
plugins: [
|
|
291
|
+
{
|
|
292
|
+
typescript: {},
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
typescriptOperations: {},
|
|
296
|
+
},
|
|
297
|
+
],
|
|
298
|
+
pluginMap: {
|
|
299
|
+
typescript: typescriptPlugin,
|
|
300
|
+
typescriptOperations: typescriptOperationsPlugin,
|
|
301
|
+
noDuplicates: CodegenNoDuplicates,
|
|
302
|
+
},
|
|
303
|
+
config: {
|
|
304
|
+
// maybeValue: "T",
|
|
305
|
+
avoidOptionals: {
|
|
306
|
+
field: true,
|
|
307
|
+
inputValue: false,
|
|
308
|
+
object: true,
|
|
309
|
+
defaultValue: true,
|
|
310
|
+
},
|
|
311
|
+
// exportFragmentSpreadSubTypes: true,
|
|
312
|
+
inlineFragmentTypes: "combine",
|
|
313
|
+
onlyOperationTypes: true,
|
|
314
|
+
skipTypename: true,
|
|
315
|
+
preResolveTypes: true,
|
|
316
|
+
maybeValue: "T | null",
|
|
317
|
+
},
|
|
318
|
+
},
|
|
319
|
+
"types.views.ts": {
|
|
320
|
+
documents: __spreadArray(__spreadArray([], documentSets.views, true), documentSets.fragments, true),
|
|
321
|
+
hasDocuments: true,
|
|
322
|
+
plugins: [
|
|
323
|
+
{
|
|
324
|
+
files: {},
|
|
325
|
+
},
|
|
326
|
+
],
|
|
327
|
+
pluginMap: {
|
|
328
|
+
files: CodegenFiles,
|
|
329
|
+
},
|
|
330
|
+
config: {
|
|
331
|
+
rootDir: opts.baseDirectory,
|
|
332
|
+
folderName: "views",
|
|
333
|
+
globalName: "ViewProps",
|
|
334
|
+
additionalTypes: {
|
|
335
|
+
_html: "{ \"template\": string, \"htmlContent\": string }",
|
|
336
|
+
_app: "{ children: any }",
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
"types.blocks.ts": {
|
|
341
|
+
documents: __spreadArray(__spreadArray([], documentSets.blocks, true), documentSets.fragments, true),
|
|
342
|
+
hasDocuments: documentSets.blocks.length > 0,
|
|
343
|
+
plugins: [
|
|
344
|
+
{
|
|
345
|
+
files: {},
|
|
346
|
+
},
|
|
347
|
+
],
|
|
348
|
+
pluginMap: {
|
|
349
|
+
files: CodegenFiles,
|
|
350
|
+
},
|
|
351
|
+
config: {
|
|
352
|
+
rootDir: opts.baseDirectory,
|
|
353
|
+
globalName: "BlockProps",
|
|
354
|
+
folderName: "blocks",
|
|
355
|
+
getType: function (importedName, def) {
|
|
356
|
+
var _a, _b, _c;
|
|
357
|
+
var queryKeyVals = [];
|
|
358
|
+
var blockSelection = "";
|
|
359
|
+
for (var _i = 0, _d = def.selectionSet.selections; _i < _d.length; _i++) {
|
|
360
|
+
var item = _d[_i];
|
|
361
|
+
if (item.name.value === "block") {
|
|
362
|
+
var blockField = (_c = (_b = (_a = item === null || item === void 0 ? void 0 : item.selectionSet) === null || _a === void 0 ? void 0 : _a.selections[0]) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.value;
|
|
363
|
+
blockSelection = "Exclude<".concat(importedName, "[\"block\"][").concat(JSON.stringify(blockField), "], null | undefined>");
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
queryKeyVals.push([JSON.stringify(item.name.value), "".concat(importedName, "[").concat(JSON.stringify(item.name.value), "]")].join(": "));
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
var type = [];
|
|
370
|
+
if (queryKeyVals.length)
|
|
371
|
+
type.push("{".concat(queryKeyVals.join(",\n"), "}"));
|
|
372
|
+
if (blockSelection)
|
|
373
|
+
type.push(blockSelection);
|
|
374
|
+
if (type.length === 0)
|
|
375
|
+
return {};
|
|
376
|
+
return type.join(" & ");
|
|
377
|
+
},
|
|
378
|
+
},
|
|
379
|
+
},
|
|
380
|
+
"hooks/queries.ts": {
|
|
381
|
+
documents: __spreadArray([], documentSets.queries, true),
|
|
382
|
+
hasDocuments: true,
|
|
383
|
+
plugins: [
|
|
384
|
+
{
|
|
385
|
+
queries: {},
|
|
386
|
+
},
|
|
387
|
+
],
|
|
388
|
+
pluginMap: {
|
|
389
|
+
queries: CodegenQueries,
|
|
390
|
+
},
|
|
391
|
+
config: {
|
|
392
|
+
rootDir: opts.baseDirectory,
|
|
393
|
+
},
|
|
394
|
+
},
|
|
395
|
+
};
|
|
396
|
+
// Notify of generation start
|
|
397
|
+
sendSignal({
|
|
398
|
+
code: "generating",
|
|
399
|
+
});
|
|
400
|
+
errors = [];
|
|
401
|
+
_c = 0, _d = Object.entries(generates);
|
|
402
|
+
_f.label = 10;
|
|
403
|
+
case 10:
|
|
404
|
+
if (!(_c < _d.length)) return [3 /*break*/, 16];
|
|
405
|
+
_e = _d[_c], file = _e[0], base = _e[1];
|
|
406
|
+
_f.label = 11;
|
|
407
|
+
case 11:
|
|
408
|
+
_f.trys.push([11, 14, , 15]);
|
|
409
|
+
config = __assign(__assign({}, base), { documents: base.documents.sort(function (a, b) { return a.location.localeCompare(b.location); }), filename: Path.join(opts.baseDirectory, file), schema: rawSchema });
|
|
410
|
+
output = "export {}";
|
|
411
|
+
if (!base.hasDocuments) return [3 /*break*/, 13];
|
|
412
|
+
return [4 /*yield*/, (0, core_1.codegen)(config)];
|
|
413
|
+
case 12:
|
|
414
|
+
output = _f.sent();
|
|
415
|
+
_f.label = 13;
|
|
416
|
+
case 13:
|
|
417
|
+
// Write the file
|
|
418
|
+
writeFileIfUnchanged(file, output);
|
|
419
|
+
return [3 /*break*/, 15];
|
|
420
|
+
case 14:
|
|
421
|
+
err_2 = _f.sent();
|
|
422
|
+
errors.push(String(err_2));
|
|
423
|
+
return [3 /*break*/, 15];
|
|
424
|
+
case 15:
|
|
425
|
+
_c++;
|
|
426
|
+
return [3 /*break*/, 10];
|
|
427
|
+
case 16:
|
|
428
|
+
// Success/fail
|
|
429
|
+
if (errors.length) {
|
|
430
|
+
sendSignal({
|
|
431
|
+
code: "error",
|
|
432
|
+
errors: errors,
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
sendSignal({
|
|
437
|
+
code: "success",
|
|
438
|
+
duration: Date.now() - startTime,
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
regenerating = false;
|
|
442
|
+
return [2 /*return*/];
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
}); });
|
|
446
|
+
regenerateBecauseChanges = function (reason) {
|
|
165
447
|
sendSignal({
|
|
166
|
-
code: "
|
|
167
|
-
|
|
448
|
+
code: "invalidated",
|
|
449
|
+
reason: reason.replace(opts.baseDirectory, ""),
|
|
168
450
|
});
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
});
|
|
176
|
-
// No need to refetch
|
|
177
|
-
needsSchemaFetch = false;
|
|
178
|
-
}
|
|
179
|
-
// Load all the GraphQL files
|
|
180
|
-
const documentSets = {};
|
|
181
|
-
let parseErrors = [];
|
|
182
|
-
for (const key in graphqlPatterns) {
|
|
183
|
-
const pattern = graphqlPatterns[key];
|
|
184
|
-
// Find all the documents by globbing
|
|
185
|
-
documentSets[key] = [];
|
|
186
|
-
const files = await (0, glob_promise_1.default)(Path.resolve(opts.baseDirectory, pattern));
|
|
187
|
-
await Promise.all(files.map(async (file) => {
|
|
188
|
-
try {
|
|
189
|
-
const contents = (await (0, promises_1.readFile)(file)).toString();
|
|
190
|
-
const document = (0, graphql_1.parse)(contents);
|
|
191
|
-
documentSets[key].push({
|
|
192
|
-
document,
|
|
193
|
-
rawSDL: contents,
|
|
194
|
-
location: file,
|
|
451
|
+
regenerate();
|
|
452
|
+
};
|
|
453
|
+
if (opts.watch) {
|
|
454
|
+
for (key in graphqlPatterns) {
|
|
455
|
+
watchGlob(Path.resolve(opts.baseDirectory, graphqlPatterns[key]), function (path) {
|
|
456
|
+
regenerateBecauseChanges(path);
|
|
195
457
|
});
|
|
196
458
|
}
|
|
197
|
-
|
|
198
|
-
|
|
459
|
+
for (key in tsxPatterns) {
|
|
460
|
+
watchFilenames(Path.resolve(opts.baseDirectory, tsxPatterns[key]), function (path) {
|
|
461
|
+
regenerateBecauseChanges(path);
|
|
462
|
+
});
|
|
199
463
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
noDuplicates: CodegenNoDuplicates,
|
|
226
|
-
},
|
|
227
|
-
config: {
|
|
228
|
-
// maybeValue: "T",
|
|
229
|
-
avoidOptionals: {
|
|
230
|
-
field: true,
|
|
231
|
-
inputValue: false,
|
|
232
|
-
object: true,
|
|
233
|
-
defaultValue: true,
|
|
234
|
-
},
|
|
235
|
-
// exportFragmentSpreadSubTypes: true,
|
|
236
|
-
inlineFragmentTypes: "combine",
|
|
237
|
-
onlyOperationTypes: true,
|
|
238
|
-
skipTypename: true,
|
|
239
|
-
preResolveTypes: true,
|
|
240
|
-
maybeValue: "T | null",
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
"types.views.ts": {
|
|
244
|
-
documents: [...documentSets.views, ...documentSets.fragments],
|
|
245
|
-
plugins: [
|
|
246
|
-
{
|
|
247
|
-
files: {},
|
|
248
|
-
},
|
|
249
|
-
],
|
|
250
|
-
pluginMap: {
|
|
251
|
-
files: CodegenFiles,
|
|
252
|
-
},
|
|
253
|
-
config: {
|
|
254
|
-
rootDir: opts.baseDirectory,
|
|
255
|
-
folderName: "views",
|
|
256
|
-
globalName: "ViewProps",
|
|
257
|
-
additionalTypes: {
|
|
258
|
-
_html: `{ "template": string, "htmlContent": string }`,
|
|
259
|
-
_app: `{ children: any }`,
|
|
260
|
-
},
|
|
261
|
-
},
|
|
262
|
-
},
|
|
263
|
-
"types.blocks.ts": {
|
|
264
|
-
documents: [...documentSets.blocks, ...documentSets.fragments],
|
|
265
|
-
plugins: [
|
|
266
|
-
{
|
|
267
|
-
files: {},
|
|
268
|
-
},
|
|
269
|
-
],
|
|
270
|
-
pluginMap: {
|
|
271
|
-
files: CodegenFiles,
|
|
272
|
-
},
|
|
273
|
-
config: {
|
|
274
|
-
rootDir: opts.baseDirectory,
|
|
275
|
-
globalName: "BlockProps",
|
|
276
|
-
folderName: "blocks",
|
|
277
|
-
getType: (importedName, def) => {
|
|
278
|
-
const queryKeyVals = [];
|
|
279
|
-
let blockSelection = "";
|
|
280
|
-
for (const item of def.selectionSet.selections) {
|
|
281
|
-
if (item.name.value === "block") {
|
|
282
|
-
const blockField = item?.selectionSet?.selections[0]?.name?.value;
|
|
283
|
-
blockSelection = `Exclude<${importedName}["block"][${JSON.stringify(blockField)}], null | undefined>`;
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
queryKeyVals.push([JSON.stringify(item.name.value), `${importedName}[${JSON.stringify(item.name.value)}]`].join(": "));
|
|
287
|
-
}
|
|
464
|
+
maybeRegenerate_1 = function (path) { return __awaiter(_this, void 0, void 0, function () {
|
|
465
|
+
var hasChanged;
|
|
466
|
+
return __generator(this, function (_a) {
|
|
467
|
+
switch (_a.label) {
|
|
468
|
+
case 0:
|
|
469
|
+
sendSignal({
|
|
470
|
+
code: "invalidated",
|
|
471
|
+
reason: path.replace(opts.baseDirectory, ""),
|
|
472
|
+
});
|
|
473
|
+
if (!!regenerating) return [3 /*break*/, 2];
|
|
474
|
+
return [4 /*yield*/, loadSchemaFromWordPress()];
|
|
475
|
+
case 1:
|
|
476
|
+
hasChanged = _a.sent();
|
|
477
|
+
if (hasChanged) {
|
|
478
|
+
regenerateBecauseChanges(path);
|
|
479
|
+
return [2 /*return*/];
|
|
480
|
+
}
|
|
481
|
+
_a.label = 2;
|
|
482
|
+
case 2:
|
|
483
|
+
sendSignal({
|
|
484
|
+
code: "success",
|
|
485
|
+
reason: "No changes to schema",
|
|
486
|
+
duration: 0,
|
|
487
|
+
});
|
|
488
|
+
return [2 /*return*/];
|
|
288
489
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
{
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
});
|
|
319
|
-
// Generate each file
|
|
320
|
-
let errors = [];
|
|
321
|
-
for (let [file, base] of Object.entries(generates)) {
|
|
322
|
-
try {
|
|
323
|
-
const config = {
|
|
324
|
-
...base,
|
|
325
|
-
documents: base.documents.sort((a, b) => a.location.localeCompare(b.location)),
|
|
326
|
-
filename: Path.join(opts.baseDirectory, file),
|
|
327
|
-
schema: rawSchema,
|
|
328
|
-
};
|
|
329
|
-
// Actually generate
|
|
330
|
-
const output = await (0, core_1.codegen)(config);
|
|
331
|
-
// Write the file
|
|
332
|
-
writeFileIfUnchanged(file, output);
|
|
333
|
-
}
|
|
334
|
-
catch (err) {
|
|
335
|
-
errors.push(String(err));
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
// Success/fail
|
|
339
|
-
if (errors.length) {
|
|
340
|
-
sendSignal({
|
|
341
|
-
code: "error",
|
|
342
|
-
errors: errors,
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
sendSignal({
|
|
347
|
-
code: "success",
|
|
348
|
-
duration: Date.now() - startTime,
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
regenerating = false;
|
|
352
|
-
});
|
|
353
|
-
const regenerateBecauseChanges = (reason) => {
|
|
354
|
-
sendSignal({
|
|
355
|
-
code: "invalidated",
|
|
356
|
-
reason: reason.replace(opts.baseDirectory, ""),
|
|
357
|
-
});
|
|
358
|
-
regenerate();
|
|
359
|
-
};
|
|
360
|
-
if (opts.watch) {
|
|
361
|
-
for (let key in graphqlPatterns) {
|
|
362
|
-
watchGlob(Path.resolve(opts.baseDirectory, graphqlPatterns[key]), (path) => {
|
|
363
|
-
regenerateBecauseChanges(path);
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
for (let key in tsxPatterns) {
|
|
367
|
-
watchFilenames(Path.resolve(opts.baseDirectory, tsxPatterns[key]), (path) => {
|
|
368
|
-
regenerateBecauseChanges(path);
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
// Watch PHP files + ACF JSON files for changes
|
|
372
|
-
const maybeRegenerate = async (path) => {
|
|
373
|
-
sendSignal({
|
|
374
|
-
code: "invalidated",
|
|
375
|
-
reason: path.replace(opts.baseDirectory, ""),
|
|
376
|
-
});
|
|
377
|
-
if (!regenerating) {
|
|
378
|
-
const hasChanged = await loadSchemaFromWordPress();
|
|
379
|
-
if (hasChanged) {
|
|
380
|
-
regenerateBecauseChanges(path);
|
|
381
|
-
return;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
sendSignal({
|
|
385
|
-
code: "success",
|
|
386
|
-
reason: "No changes to schema",
|
|
387
|
-
duration: 0,
|
|
388
|
-
});
|
|
389
|
-
};
|
|
390
|
-
watchGlob(Path.resolve(opts.baseDirectory, "./acf-json/*.json"), (path) => {
|
|
391
|
-
needsSchemaFetch = true;
|
|
392
|
-
maybeRegenerate(path);
|
|
393
|
-
});
|
|
394
|
-
watchGlob(Path.resolve(opts.baseDirectory, "./backend/**/*.php"), (path) => {
|
|
395
|
-
needsSchemaFetch = true;
|
|
396
|
-
maybeRegenerate(path);
|
|
397
|
-
});
|
|
398
|
-
watchGlob(envFile, () => {
|
|
399
|
-
// Parse the env file and extract the endpoint
|
|
400
|
-
let nextEndpoint = "";
|
|
401
|
-
try {
|
|
402
|
-
const contents = (0, fs_1.readFileSync)(envFile, "utf8");
|
|
403
|
-
nextEndpoint = contents.match(/DEBUG_GRAPHQL_URL=(.*)/)?.[1];
|
|
404
|
-
}
|
|
405
|
-
catch (err) {
|
|
406
|
-
sendSignal({
|
|
407
|
-
code: "error",
|
|
408
|
-
errors: ["Unable to read .env file"],
|
|
490
|
+
});
|
|
491
|
+
}); };
|
|
492
|
+
watchGlob(Path.resolve(opts.baseDirectory, "./acf-json/*.json"), function (path) {
|
|
493
|
+
needsSchemaFetch = true;
|
|
494
|
+
maybeRegenerate_1(path);
|
|
495
|
+
});
|
|
496
|
+
watchGlob(Path.resolve(opts.baseDirectory, "./backend/**/*.php"), function (path) {
|
|
497
|
+
needsSchemaFetch = true;
|
|
498
|
+
maybeRegenerate_1(path);
|
|
499
|
+
});
|
|
500
|
+
watchGlob(envFile, function () {
|
|
501
|
+
var _a;
|
|
502
|
+
// Parse the env file and extract the endpoint
|
|
503
|
+
var nextEndpoint = "";
|
|
504
|
+
try {
|
|
505
|
+
var contents = (0, fs_1.readFileSync)(envFile, "utf8");
|
|
506
|
+
nextEndpoint = (_a = contents.match(/DEBUG_GRAPHQL_URL=(.*)/)) === null || _a === void 0 ? void 0 : _a[1];
|
|
507
|
+
}
|
|
508
|
+
catch (err) {
|
|
509
|
+
sendSignal({
|
|
510
|
+
code: "error",
|
|
511
|
+
errors: ["Unable to read .env file"],
|
|
512
|
+
});
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
if (endpoint !== nextEndpoint && nextEndpoint) {
|
|
516
|
+
needsSchemaFetch = true;
|
|
517
|
+
regenerate();
|
|
518
|
+
}
|
|
409
519
|
});
|
|
410
|
-
return;
|
|
411
|
-
}
|
|
412
|
-
if (endpoint !== nextEndpoint && nextEndpoint) {
|
|
413
|
-
needsSchemaFetch = true;
|
|
414
|
-
regenerate();
|
|
415
520
|
}
|
|
521
|
+
regenerate();
|
|
522
|
+
return [2 /*return*/];
|
|
416
523
|
});
|
|
417
|
-
}
|
|
418
|
-
regenerate();
|
|
524
|
+
});
|
|
419
525
|
}
|
|
420
526
|
exports.beginWork = beginWork;
|
|
421
527
|
function watchGlob(glob, callback) {
|
|
422
|
-
|
|
528
|
+
var watcher = (0, chokidar_1.watch)(glob, {
|
|
423
529
|
ignoreInitial: true,
|
|
424
530
|
persistent: true,
|
|
425
531
|
});
|
|
426
|
-
watcher.on("ready", ()
|
|
427
|
-
watcher.on("all", (event, path)
|
|
532
|
+
watcher.on("ready", function () {
|
|
533
|
+
watcher.on("all", function (event, path) {
|
|
428
534
|
callback(path);
|
|
429
535
|
});
|
|
430
536
|
});
|
|
431
537
|
return watcher;
|
|
432
538
|
}
|
|
433
539
|
function watchFilenames(glob, callback) {
|
|
434
|
-
|
|
540
|
+
var watcher = (0, chokidar_1.watch)(glob, {
|
|
435
541
|
ignoreInitial: true,
|
|
436
542
|
persistent: true,
|
|
437
543
|
});
|
|
438
|
-
watcher.on("ready", ()
|
|
439
|
-
watcher.on("add", (path)
|
|
544
|
+
watcher.on("ready", function () {
|
|
545
|
+
watcher.on("add", function (path) {
|
|
440
546
|
callback(path);
|
|
441
547
|
});
|
|
442
|
-
watcher.on("unlink", (path)
|
|
548
|
+
watcher.on("unlink", function (path) {
|
|
443
549
|
callback(path);
|
|
444
550
|
});
|
|
445
551
|
});
|
|
@@ -447,32 +553,48 @@ function watchFilenames(glob, callback) {
|
|
|
447
553
|
}
|
|
448
554
|
function writeFileIfUnchanged(file, contents) {
|
|
449
555
|
if ((0, fs_1.existsSync)(file)) {
|
|
450
|
-
|
|
556
|
+
var existing = (0, fs_1.readFileSync)(file).toString();
|
|
451
557
|
if (existing === contents)
|
|
452
558
|
return;
|
|
453
559
|
}
|
|
454
560
|
(0, fs_1.writeFileSync)(file, contents);
|
|
455
561
|
}
|
|
456
562
|
function debounce(wait, fn) {
|
|
457
|
-
|
|
458
|
-
|
|
563
|
+
var _this = this;
|
|
564
|
+
var timeout;
|
|
565
|
+
var debounced = function () {
|
|
566
|
+
var args = [];
|
|
567
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
568
|
+
args[_i] = arguments[_i];
|
|
569
|
+
}
|
|
459
570
|
clearTimeout(timeout);
|
|
460
|
-
timeout = setTimeout(
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
571
|
+
timeout = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
572
|
+
var err_4;
|
|
573
|
+
return __generator(this, function (_a) {
|
|
574
|
+
switch (_a.label) {
|
|
575
|
+
case 0:
|
|
576
|
+
_a.trys.push([0, 2, , 3]);
|
|
577
|
+
return [4 /*yield*/, fn.apply(void 0, args)];
|
|
578
|
+
case 1:
|
|
579
|
+
_a.sent();
|
|
580
|
+
return [3 /*break*/, 3];
|
|
581
|
+
case 2:
|
|
582
|
+
err_4 = _a.sent();
|
|
583
|
+
console.error(err_4);
|
|
584
|
+
return [3 /*break*/, 3];
|
|
585
|
+
case 3: return [2 /*return*/];
|
|
586
|
+
}
|
|
587
|
+
});
|
|
588
|
+
}); }, wait);
|
|
468
589
|
};
|
|
469
590
|
return debounced;
|
|
470
591
|
}
|
|
471
592
|
function processSchema(schema) {
|
|
472
|
-
|
|
473
|
-
|
|
593
|
+
var walkFields = function (fields) { };
|
|
594
|
+
var updateFieldType = function (fieldType) {
|
|
595
|
+
var _a;
|
|
474
596
|
if (fieldType.kind === "LIST") {
|
|
475
|
-
if (fieldType.ofType
|
|
597
|
+
if (((_a = fieldType.ofType) === null || _a === void 0 ? void 0 : _a.kind) !== "NON_NULL") {
|
|
476
598
|
fieldType.ofType = {
|
|
477
599
|
kind: "NON_NULL",
|
|
478
600
|
name: null,
|
|
@@ -481,18 +603,22 @@ function processSchema(schema) {
|
|
|
481
603
|
}
|
|
482
604
|
}
|
|
483
605
|
};
|
|
484
|
-
|
|
606
|
+
var updateType = function (type) {
|
|
485
607
|
if (typeof type.type === "object" && type.type) {
|
|
486
608
|
updateFieldType(type.type);
|
|
487
609
|
}
|
|
488
610
|
if (type.fields) {
|
|
489
|
-
for (
|
|
611
|
+
for (var _i = 0, _a = type.fields; _i < _a.length; _i++) {
|
|
612
|
+
var field = _a[_i];
|
|
490
613
|
updateType(field);
|
|
491
614
|
}
|
|
492
615
|
}
|
|
493
616
|
};
|
|
494
|
-
for (
|
|
617
|
+
for (var _i = 0, _a = schema.__schema.types; _i < _a.length; _i++) {
|
|
618
|
+
var type = _a[_i];
|
|
495
619
|
updateType(type);
|
|
496
620
|
}
|
|
497
621
|
}
|
|
498
|
-
|
|
622
|
+
if (worker_threads_1.parentPort) {
|
|
623
|
+
beginWork(worker_threads_1.workerData);
|
|
624
|
+
}
|