tylersong 1.0.14 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/sanity.js +41 -65
- package/package.json +1 -1
package/dist/lib/sanity.js
CHANGED
|
@@ -1,66 +1,31 @@
|
|
|
1
1
|
import { createClient } from "@sanity/client";
|
|
2
|
-
import { readFileSync } from "fs";
|
|
3
|
-
import { join, dirname } from "path";
|
|
4
|
-
import { fileURLToPath } from "url";
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = dirname(__filename);
|
|
7
2
|
/**
|
|
8
|
-
*
|
|
3
|
+
* 환경 변수에서 Sanity 설정을 로드합니다
|
|
4
|
+
* npm 패키지에서는 process.env에서만 읽습니다
|
|
9
5
|
*/
|
|
10
6
|
const loadEnvConfig = () => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
config.dataset = value;
|
|
26
|
-
break;
|
|
27
|
-
case "SANITY_API_VERSION":
|
|
28
|
-
config.apiVersion = value;
|
|
29
|
-
break;
|
|
30
|
-
case "SANITY_API_TOKEN":
|
|
31
|
-
config.token = value;
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
if (!config.projectId || !config.dataset || !config.apiVersion) {
|
|
37
|
-
throw new Error("필수 Sanity 환경 변수가 누락되었습니다: SANITY_PROJECT_ID, SANITY_DATASET, SANITY_API_VERSION");
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
projectId: config.projectId,
|
|
41
|
-
dataset: config.dataset,
|
|
42
|
-
apiVersion: config.apiVersion,
|
|
43
|
-
token: config.token,
|
|
44
|
-
useCdn: false, // 읽기 전용이므로 CDN 사용 안 함
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
// .env 파일이 없거나 읽을 수 없는 경우 process.env에서 시도
|
|
49
|
-
const projectId = process.env.SANITY_PROJECT_ID;
|
|
50
|
-
const dataset = process.env.SANITY_DATASET;
|
|
51
|
-
const apiVersion = process.env.SANITY_API_VERSION;
|
|
52
|
-
const token = process.env.SANITY_API_TOKEN;
|
|
53
|
-
if (!projectId || !dataset || !apiVersion) {
|
|
54
|
-
throw new Error("Sanity 환경 변수를 찾을 수 없습니다. .env 파일을 확인해주세요.");
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
projectId,
|
|
58
|
-
dataset,
|
|
59
|
-
apiVersion,
|
|
60
|
-
token,
|
|
61
|
-
useCdn: false,
|
|
62
|
-
};
|
|
7
|
+
const projectId = process.env.SANITY_PROJECT_ID;
|
|
8
|
+
const dataset = process.env.SANITY_DATASET;
|
|
9
|
+
const apiVersion = process.env.SANITY_API_VERSION;
|
|
10
|
+
const token = process.env.SANITY_API_TOKEN;
|
|
11
|
+
if (!projectId || !dataset || !apiVersion) {
|
|
12
|
+
throw new Error("Sanity 환경 변수를 찾을 수 없습니다. 다음 환경 변수를 설정해주세요:\n" +
|
|
13
|
+
" - SANITY_PROJECT_ID\n" +
|
|
14
|
+
" - SANITY_DATASET\n" +
|
|
15
|
+
" - SANITY_API_VERSION\n" +
|
|
16
|
+
" - SANITY_API_TOKEN (선택사항)\n\n" +
|
|
17
|
+
"환경 변수 설정 방법:\n" +
|
|
18
|
+
" export SANITY_PROJECT_ID='your-project-id'\n" +
|
|
19
|
+
" export SANITY_DATASET='production'\n" +
|
|
20
|
+
" export SANITY_API_VERSION='2025-12-06'");
|
|
63
21
|
}
|
|
22
|
+
return {
|
|
23
|
+
projectId,
|
|
24
|
+
dataset,
|
|
25
|
+
apiVersion,
|
|
26
|
+
token,
|
|
27
|
+
useCdn: false, // 읽기 전용이므로 CDN 사용 안 함
|
|
28
|
+
};
|
|
64
29
|
};
|
|
65
30
|
/**
|
|
66
31
|
* Sanity 클라이언트 인스턴스를 생성합니다
|
|
@@ -75,8 +40,17 @@ const createSanityClient = () => {
|
|
|
75
40
|
useCdn: config.useCdn,
|
|
76
41
|
});
|
|
77
42
|
};
|
|
78
|
-
// Sanity 클라이언트 인스턴스
|
|
79
|
-
|
|
43
|
+
// Sanity 클라이언트 인스턴스 (지연 초기화)
|
|
44
|
+
let client = null;
|
|
45
|
+
/**
|
|
46
|
+
* Sanity 클라이언트를 가져옵니다 (지연 초기화)
|
|
47
|
+
*/
|
|
48
|
+
const getClient = () => {
|
|
49
|
+
if (!client) {
|
|
50
|
+
client = createSanityClient();
|
|
51
|
+
}
|
|
52
|
+
return client;
|
|
53
|
+
};
|
|
80
54
|
/**
|
|
81
55
|
* 모든 Experience(경력) 데이터를 조회합니다
|
|
82
56
|
*/
|
|
@@ -92,7 +66,7 @@ export const getExperiences = async () => {
|
|
|
92
66
|
technologies,
|
|
93
67
|
location
|
|
94
68
|
}`;
|
|
95
|
-
const experiences = await
|
|
69
|
+
const experiences = await getClient().fetch(query);
|
|
96
70
|
return experiences;
|
|
97
71
|
}
|
|
98
72
|
catch (error) {
|
|
@@ -114,7 +88,9 @@ export const getExperienceById = async (id) => {
|
|
|
114
88
|
technologies,
|
|
115
89
|
location
|
|
116
90
|
}`;
|
|
117
|
-
const experience = await
|
|
91
|
+
const experience = await getClient().fetch(query, {
|
|
92
|
+
id,
|
|
93
|
+
});
|
|
118
94
|
return experience;
|
|
119
95
|
}
|
|
120
96
|
catch (error) {
|
|
@@ -131,8 +107,8 @@ export const getPortfolio = async (name) => {
|
|
|
131
107
|
}
|
|
132
108
|
}`;
|
|
133
109
|
const portfolio = name
|
|
134
|
-
? await
|
|
135
|
-
: await
|
|
110
|
+
? await getClient().fetch(query, { name })
|
|
111
|
+
: await getClient().fetch(query);
|
|
136
112
|
return portfolio;
|
|
137
113
|
}
|
|
138
114
|
catch (error) {
|
|
@@ -142,5 +118,5 @@ export const getPortfolio = async (name) => {
|
|
|
142
118
|
/**
|
|
143
119
|
* Sanity 클라이언트 인스턴스를 반환합니다 (필요한 경우)
|
|
144
120
|
*/
|
|
145
|
-
export const getSanityClient = () =>
|
|
121
|
+
export const getSanityClient = () => getClient();
|
|
146
122
|
//# sourceMappingURL=sanity.js.map
|