tinacms 0.0.0-c5dad82-20241009225242 → 0.0.0-c6915ea-20250421012527
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/admin/api.d.ts +1 -0
- package/dist/admin/components/AuthCallback.d.ts +5 -0
- package/dist/admin/components/GetCollection.d.ts +2 -2
- package/dist/admin/types.d.ts +3 -0
- package/dist/auth/TinaCloudProvider.d.ts +1 -1
- package/dist/auth/authenticate.d.ts +1 -1
- package/dist/cache/node-cache.d.ts +1 -0
- package/dist/client.d.ts +1 -4
- package/dist/client.js +100 -62
- package/dist/client.mjs +59 -36
- package/dist/hooks/create-page-plugin.d.ts +1 -1
- package/dist/index.d.ts +1 -61
- package/dist/index.js +3820 -2242
- package/dist/index.mjs +3811 -2232
- package/dist/internalClient/authProvider.d.ts +2 -0
- package/dist/internalClient/index.d.ts +3 -3
- package/dist/node-cache-5e8db9f0.mjs +63 -0
- package/dist/react.d.ts +1 -33
- package/dist/react.js +13 -1
- package/dist/react.mjs +13 -1
- package/dist/rich-text/index.d.ts +1 -139
- package/dist/rich-text/index.js +3 -1
- package/dist/rich-text/index.mjs +3 -1
- package/dist/rich-text/prism.d.ts +1 -10
- package/dist/toolkit/components/media/media-manager.d.ts +1 -1
- package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +4 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/fixed-toolbar-buttons.d.ts +0 -4
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/icons.d.ts +2 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +17 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mermaid-element.d.ts +11 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mermaid-toolbar-button.d.ts +20 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/text-area.d.ts +5 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/index.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/custom/mermaid-plugin.d.ts +2 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/code-block/index.d.ts +4 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +16 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +11 -3
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-provider.d.ts +3 -3
- package/dist/toolkit/fields/plugins/wrap-field-with-meta.d.ts +8 -0
- package/dist/toolkit/plugin-branch-switcher/branch-switcher-legacy.d.ts +1 -1
- package/dist/toolkit/plugin-branch-switcher/branch-switcher.d.ts +1 -1
- package/dist/toolkit/react-cloud-config/cloud-config-plugin.d.ts +3 -3
- package/dist/toolkit/react-sidebar/components/sidebar-body.d.ts +5 -4
- package/dist/toolkit/react-sidebar/components/sidebar-loading-placeholder.d.ts +2 -0
- package/dist/toolkit/react-sidebar/components/sidebar-no-forms-placeholder.d.ts +2 -0
- package/dist/toolkit/react-sidebar/sidebar.d.ts +2 -2
- package/dist/toolkit/tina-state.d.ts +4 -0
- package/dist/unifiedClient/index.d.ts +8 -1
- package/package.json +41 -40
- package/dist/__vite-browser-external-d06ac358.mjs +0 -4
- package/dist/node-cache-7fa2452c.mjs +0 -43
- package/dist/toolkit/react-sidebar/components/no-forms-placeholder.d.ts +0 -8
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
|
-
import type { MdxTemplate } from '../types';
|
|
4
3
|
import type { Form } from '../../../../../forms';
|
|
5
|
-
import type {
|
|
4
|
+
import type { MdxTemplate } from '../types';
|
|
5
|
+
import type { ToolbarOverrides, ToolbarOverrideType } from './toolbar-overrides';
|
|
6
6
|
interface ToolbarContextProps {
|
|
7
7
|
tinaForm: Form;
|
|
8
8
|
templates: MdxTemplate[];
|
|
9
|
-
overrides: ToolbarOverrideType[];
|
|
9
|
+
overrides: ToolbarOverrideType[] | ToolbarOverrides;
|
|
10
10
|
}
|
|
11
11
|
interface ToolbarProviderProps extends ToolbarContextProps {
|
|
12
12
|
children: ReactNode;
|
|
@@ -3,6 +3,14 @@ import { FieldProps } from './field-props';
|
|
|
3
3
|
import { Form } from '../../forms';
|
|
4
4
|
export type InputFieldType<ExtraFieldProps, InputProps> = FieldProps<InputProps> & ExtraFieldProps;
|
|
5
5
|
export declare function wrapFieldsWithMeta<ExtraFieldProps = {}, InputProps = {}>(Field: React.FunctionComponent<InputFieldType<ExtraFieldProps, InputProps>> | React.ComponentClass<InputFieldType<ExtraFieldProps, InputProps>>): (props: InputFieldType<ExtraFieldProps, InputProps>) => React.JSX.Element;
|
|
6
|
+
/**
|
|
7
|
+
* Same as wrapFieldsWithMeta but excludes the label, and description useful for fields that render their label and description
|
|
8
|
+
*/
|
|
9
|
+
export declare function wrapFieldWithNoHeader<ExtraFieldProps = {}, InputProps = {}>(Field: React.FunctionComponent<InputFieldType<ExtraFieldProps, InputProps>> | React.ComponentClass<InputFieldType<ExtraFieldProps, InputProps>>): (props: InputFieldType<ExtraFieldProps, InputProps>) => React.JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* Same as above but excludes the label, useful for fields that have their own label
|
|
12
|
+
* @deprecated This function is deprecated and will be removed in future versions.
|
|
13
|
+
*/
|
|
6
14
|
export declare function wrapFieldWithError<ExtraFieldProps = {}, InputProps = {}>(Field: React.FunctionComponent<InputFieldType<ExtraFieldProps, InputProps>> | React.ComponentClass<InputFieldType<ExtraFieldProps, InputProps>>): (props: InputFieldType<ExtraFieldProps, InputProps>) => React.JSX.Element;
|
|
7
15
|
interface FieldMetaProps extends React.HTMLAttributes<HTMLElement> {
|
|
8
16
|
name: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Branch, BranchSwitcherProps } from './types';
|
|
3
3
|
export declare function formatBranchName(str: string): string;
|
|
4
4
|
export declare const BranchSwitcherLegacy: ({ listBranches, createBranch, chooseBranch, }: BranchSwitcherProps) => React.JSX.Element;
|
|
5
5
|
export declare const getFilteredBranchList: (branchList: Branch[], filter: string, currentBranchName: string) => Branch[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Branch, BranchSwitcherProps } from './types';
|
|
3
3
|
export declare function formatBranchName(str: string): string;
|
|
4
4
|
export declare const BranchSwitcher: (props: BranchSwitcherProps) => React.JSX.Element;
|
|
5
5
|
export declare const EditoralBranchSwitcher: ({ listBranches, createBranch, chooseBranch, setModalTitle, }: BranchSwitcherProps) => React.JSX.Element;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Plugin } from '../core';
|
|
2
2
|
import type { IconType } from 'react-icons';
|
|
3
3
|
/**
|
|
4
|
-
* Represents a
|
|
4
|
+
* Represents a TinaCloud Config that should be accessible via the CMS.
|
|
5
5
|
*
|
|
6
6
|
* The purpose of these configs is to give a way to display & edit information
|
|
7
|
-
* about
|
|
7
|
+
* about TinaCloud Configuration
|
|
8
8
|
* cases may include:
|
|
9
9
|
*
|
|
10
|
-
* *
|
|
10
|
+
* * TinaCloud Project Configuration
|
|
11
11
|
* * User Management
|
|
12
12
|
*/
|
|
13
13
|
export interface CloudConfigPlugin extends Plugin {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import type { Form } from '../../forms';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface FormsViewProps {
|
|
4
|
+
loadingPlaceholder?: React.FC;
|
|
5
|
+
}
|
|
6
|
+
export declare const FormsView: ({ loadingPlaceholder }?: FormsViewProps) => React.JSX.Element;
|
|
6
7
|
export interface MultiformFormHeaderProps {
|
|
7
8
|
activeForm: {
|
|
8
9
|
activeFieldName?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EventBus, Callback } from '../core';
|
|
2
1
|
import * as React from 'react';
|
|
2
|
+
import { Callback, EventBus } from '../core';
|
|
3
3
|
export interface SidebarStateOptions {
|
|
4
4
|
position?: SidebarPosition;
|
|
5
5
|
buttons?: SidebarButtons;
|
|
@@ -22,7 +22,7 @@ export declare type DefaultSidebarState = 'open' | 'closed';
|
|
|
22
22
|
export declare class SidebarState {
|
|
23
23
|
private events;
|
|
24
24
|
private _isOpen;
|
|
25
|
-
|
|
25
|
+
loadingPlaceholder: React.FC;
|
|
26
26
|
defaultState: DefaultSidebarState;
|
|
27
27
|
position: SidebarPosition;
|
|
28
28
|
renderNav: boolean;
|
|
@@ -58,6 +58,9 @@ export type TinaAction = {
|
|
|
58
58
|
} | {
|
|
59
59
|
type: 'sidebar:set-display-state';
|
|
60
60
|
value: TinaState['sidebarDisplayState'] | 'openOrFull';
|
|
61
|
+
} | {
|
|
62
|
+
type: 'sidebar:set-loading-state';
|
|
63
|
+
value: boolean;
|
|
61
64
|
};
|
|
62
65
|
export interface TinaState {
|
|
63
66
|
activeFormId: string | null;
|
|
@@ -76,6 +79,7 @@ export interface TinaState {
|
|
|
76
79
|
}[];
|
|
77
80
|
formLists: FormList[];
|
|
78
81
|
editingMode: 'visual' | 'basic';
|
|
82
|
+
isLoadingContent: boolean;
|
|
79
83
|
quickEditSupported: boolean;
|
|
80
84
|
sidebarDisplayState: 'closed' | 'open' | 'fullscreen';
|
|
81
85
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { Config } from '@tinacms/schema-tools';
|
|
2
|
+
import AsyncLock from 'async-lock';
|
|
3
|
+
import type { GraphQLError } from 'graphql';
|
|
2
4
|
import type { Cache } from '../cache/index';
|
|
3
5
|
export declare const TINA_HOST = "content.tinajs.io";
|
|
4
6
|
export interface TinaClientArgs<GenQueries = Record<string, unknown>> {
|
|
@@ -25,12 +27,17 @@ export declare class TinaClient<GenQueries> {
|
|
|
25
27
|
queries: GenQueries;
|
|
26
28
|
errorPolicy: Config['client']['errorPolicy'];
|
|
27
29
|
initialized: boolean;
|
|
30
|
+
cacheLock: AsyncLock | undefined;
|
|
28
31
|
cacheDir: string;
|
|
29
32
|
cache: Cache;
|
|
30
33
|
constructor({ token, url, queries, errorPolicy, cacheDir, }: TinaClientArgs<GenQueries>);
|
|
31
34
|
init(): Promise<void>;
|
|
32
35
|
request<DataType extends Record<string, any> = any>({ errorPolicy, ...args }: TinaClientRequestArgs, options: {
|
|
33
36
|
fetchOptions?: Parameters<typeof fetch>[1];
|
|
34
|
-
}): Promise<
|
|
37
|
+
}): Promise<{
|
|
38
|
+
data: DataType;
|
|
39
|
+
errors: GraphQLError[] | null;
|
|
40
|
+
query: string;
|
|
41
|
+
}>;
|
|
35
42
|
}
|
|
36
43
|
export declare function createClient<GenQueries>(args: TinaClientArgs<GenQueries>): TinaClient<GenQueries>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tinacms",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-c6915ea-20250421012527",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -60,21 +60,21 @@
|
|
|
60
60
|
"typings": "dist/index.d.ts",
|
|
61
61
|
"license": "Apache-2.0",
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@ariakit/react": "^0.4.
|
|
64
|
-
"@floating-ui/dom": "^1.6.
|
|
63
|
+
"@ariakit/react": "^0.4.15",
|
|
64
|
+
"@floating-ui/dom": "^1.6.13",
|
|
65
65
|
"@floating-ui/react-dom": "^2.1.2",
|
|
66
|
-
"@graphql-inspector/core": "^6.1
|
|
66
|
+
"@graphql-inspector/core": "^6.2.1",
|
|
67
67
|
"@headlessui/react": "2.1.8",
|
|
68
68
|
"@heroicons/react": "^1.0.6",
|
|
69
69
|
"@monaco-editor/react": "4.4.5",
|
|
70
|
-
"@radix-ui/react-checkbox": "^1.1.
|
|
71
|
-
"@radix-ui/react-dialog": "^1.1.
|
|
72
|
-
"@radix-ui/react-dropdown-menu": "^2.1.
|
|
73
|
-
"@radix-ui/react-popover": "^1.1.
|
|
74
|
-
"@radix-ui/react-separator": "^1.1.
|
|
75
|
-
"@radix-ui/react-slot": "^1.1.
|
|
76
|
-
"@radix-ui/react-toolbar": "^1.1.
|
|
77
|
-
"@radix-ui/react-tooltip": "^1.1.
|
|
70
|
+
"@radix-ui/react-checkbox": "^1.1.4",
|
|
71
|
+
"@radix-ui/react-dialog": "^1.1.6",
|
|
72
|
+
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
|
73
|
+
"@radix-ui/react-popover": "^1.1.6",
|
|
74
|
+
"@radix-ui/react-separator": "^1.1.2",
|
|
75
|
+
"@radix-ui/react-slot": "^1.1.2",
|
|
76
|
+
"@radix-ui/react-toolbar": "^1.1.2",
|
|
77
|
+
"@radix-ui/react-tooltip": "^1.1.8",
|
|
78
78
|
"@react-hook/window-size": "^3.1.1",
|
|
79
79
|
"@udecode/cn": "^33.0.0",
|
|
80
80
|
"@udecode/plate": "^36.5.9",
|
|
@@ -92,13 +92,13 @@
|
|
|
92
92
|
"@udecode/plate-resizable": "36.0.0",
|
|
93
93
|
"@udecode/plate-slash-command": "^36.0.0",
|
|
94
94
|
"@udecode/plate-table": "36.5.8",
|
|
95
|
-
"
|
|
95
|
+
"async-lock": "^1.4.1",
|
|
96
|
+
"class-variance-authority": "^0.7.1",
|
|
96
97
|
"clsx": "^2.1.1",
|
|
97
|
-
"cmdk": "^1.0.
|
|
98
|
+
"cmdk": "^1.0.4",
|
|
98
99
|
"color-string": "^1.9.1",
|
|
99
100
|
"crypto-js": "^4.2.0",
|
|
100
101
|
"date-fns": "2.30.0",
|
|
101
|
-
"fetch-ponyfill": "^7.1.0",
|
|
102
102
|
"final-form": "4.20.10",
|
|
103
103
|
"final-form-arrays": "^3.1.0",
|
|
104
104
|
"final-form-set-field-data": "^1.0.2",
|
|
@@ -108,49 +108,50 @@
|
|
|
108
108
|
"lodash.get": "^4.4.2",
|
|
109
109
|
"lodash.set": "^4.3.2",
|
|
110
110
|
"lucide-react": "^0.424.0",
|
|
111
|
+
"mermaid": "9.3.0",
|
|
111
112
|
"moment": "2.29.4",
|
|
112
113
|
"monaco-editor": "0.31.0",
|
|
113
|
-
"prism-react-renderer": "^2.4.
|
|
114
|
+
"prism-react-renderer": "^2.4.1",
|
|
114
115
|
"prop-types": "15.7.2",
|
|
115
116
|
"react-beautiful-dnd": "^13.1.1",
|
|
116
117
|
"react-color": "^2.19.3",
|
|
117
|
-
"react-datetime": "^3.
|
|
118
|
+
"react-datetime": "^3.3.1",
|
|
118
119
|
"react-dropzone": "14.2.3",
|
|
119
120
|
"react-final-form": "^6.5.9",
|
|
120
|
-
"react-icons": "^5.
|
|
121
|
-
"react-onclickoutside": "^6.13.1",
|
|
121
|
+
"react-icons": "^5.4.0",
|
|
122
122
|
"react-router-dom": "6.3.0",
|
|
123
|
+
"react-use": "^17.6.0",
|
|
123
124
|
"slate": "^0.103.0",
|
|
124
125
|
"slate-history": "^0.100.0",
|
|
125
126
|
"slate-hyperscript": "^0.100.0",
|
|
126
127
|
"slate-react": "^0.107.1",
|
|
127
|
-
"tailwind-merge": "^2.
|
|
128
|
+
"tailwind-merge": "^2.6.0",
|
|
128
129
|
"webfontloader": "1.6.28",
|
|
129
|
-
"yup": "^1.
|
|
130
|
-
"zod": "^3.
|
|
131
|
-
"@tinacms/mdx": "0.0.0-
|
|
132
|
-
"@tinacms/schema-tools": "
|
|
133
|
-
"@tinacms/search": "0.0.0-
|
|
130
|
+
"yup": "^1.6.1",
|
|
131
|
+
"zod": "^3.24.2",
|
|
132
|
+
"@tinacms/mdx": "0.0.0-c6915ea-20250421012527",
|
|
133
|
+
"@tinacms/schema-tools": "0.0.0-c6915ea-20250421012527",
|
|
134
|
+
"@tinacms/search": "0.0.0-c6915ea-20250421012527"
|
|
134
135
|
},
|
|
135
136
|
"devDependencies": {
|
|
136
|
-
"@graphql-tools/utils": "^10.
|
|
137
|
+
"@graphql-tools/utils": "^10.8.1",
|
|
137
138
|
"@testing-library/dom": "^10.4.0",
|
|
138
|
-
"@testing-library/jest-dom": "^6.
|
|
139
|
-
"@testing-library/react": "^16.0
|
|
140
|
-
"@testing-library/user-event": "^14.
|
|
139
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
140
|
+
"@testing-library/react": "^16.2.0",
|
|
141
|
+
"@testing-library/user-event": "^14.6.1",
|
|
141
142
|
"@types/atob": "^2.1.4",
|
|
142
143
|
"@types/codemirror": "^5.60.15",
|
|
143
144
|
"@types/color-string": "^1.5.5",
|
|
144
145
|
"@types/lodash.debounce": "^4.0.9",
|
|
145
146
|
"@types/lodash.get": "^4.4.9",
|
|
146
|
-
"@types/node": "^22.
|
|
147
|
-
"@types/prop-types": "^15.7.
|
|
148
|
-
"@types/react": "^18.3.
|
|
147
|
+
"@types/node": "^22.13.1",
|
|
148
|
+
"@types/prop-types": "^15.7.14",
|
|
149
|
+
"@types/react": "^18.3.18",
|
|
149
150
|
"@types/react-beautiful-dnd": "^13.1.8",
|
|
150
|
-
"@types/react-color": "^3.0.
|
|
151
|
-
"@types/react-dom": "^18.3.
|
|
151
|
+
"@types/react-color": "^3.0.13",
|
|
152
|
+
"@types/react-dom": "^18.3.5",
|
|
152
153
|
"@types/yup": "^0.32.0",
|
|
153
|
-
"happy-dom": "
|
|
154
|
+
"happy-dom": "15.10.2",
|
|
154
155
|
"identity-obj-proxy": "^3.0.0",
|
|
155
156
|
"isomorphic-fetch": "^3.0.0",
|
|
156
157
|
"jest-file-snapshot": "^0.7.0",
|
|
@@ -159,11 +160,11 @@
|
|
|
159
160
|
"react-dom": "^18.3.1",
|
|
160
161
|
"react-is": "^18.3.1",
|
|
161
162
|
"tsc-alias": "^1.8.10",
|
|
162
|
-
"tslib": "^2.
|
|
163
|
-
"typescript": "^5.
|
|
164
|
-
"vite": "^5.4.
|
|
165
|
-
"vitest": "^2.1.
|
|
166
|
-
"@tinacms/scripts": "
|
|
163
|
+
"tslib": "^2.8.1",
|
|
164
|
+
"typescript": "^5.7.3",
|
|
165
|
+
"vite": "^5.4.14",
|
|
166
|
+
"vitest": "^2.1.9",
|
|
167
|
+
"@tinacms/scripts": "1.3.4"
|
|
167
168
|
},
|
|
168
169
|
"peerDependencies": {
|
|
169
170
|
"react": ">=16.14.0",
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
const makeCacheDir = async (dir, fs) => {
|
|
2
|
-
const path = await import("./__vite-browser-external-d06ac358.mjs");
|
|
3
|
-
const os = await import("./__vite-browser-external-d06ac358.mjs");
|
|
4
|
-
const parts = dir.split(path.sep).filter(Boolean);
|
|
5
|
-
let cacheDir = dir;
|
|
6
|
-
if (!fs.existsSync(path.join(path.sep, parts[0]))) {
|
|
7
|
-
cacheDir = path.join(os.tmpdir(), parts[parts.length - 1]);
|
|
8
|
-
}
|
|
9
|
-
fs.mkdirSync(cacheDir, { recursive: true });
|
|
10
|
-
return cacheDir;
|
|
11
|
-
};
|
|
12
|
-
const NodeCache = async (dir) => {
|
|
13
|
-
const fs = await import("./__vite-browser-external-d06ac358.mjs");
|
|
14
|
-
const { createHash } = await import("./__vite-browser-external-d06ac358.mjs");
|
|
15
|
-
const cacheDir = await makeCacheDir(dir, fs);
|
|
16
|
-
return {
|
|
17
|
-
makeKey: (key) => {
|
|
18
|
-
const input = key && key instanceof Object ? JSON.stringify(key) : key || "";
|
|
19
|
-
return createHash("sha256").update(input).digest("hex");
|
|
20
|
-
},
|
|
21
|
-
get: async (key) => {
|
|
22
|
-
try {
|
|
23
|
-
const data = await fs.promises.readFile(`${cacheDir}/${key}`, "utf-8");
|
|
24
|
-
return JSON.parse(data);
|
|
25
|
-
} catch (e) {
|
|
26
|
-
if (e.code === "ENOENT") {
|
|
27
|
-
return void 0;
|
|
28
|
-
}
|
|
29
|
-
throw e;
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
set: async (key, value) => {
|
|
33
|
-
await fs.promises.writeFile(
|
|
34
|
-
`${cacheDir}/${key}`,
|
|
35
|
-
JSON.stringify(value),
|
|
36
|
-
"utf-8"
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
export {
|
|
42
|
-
NodeCache
|
|
43
|
-
};
|