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.
Files changed (2) hide show
  1. package/dist/lib/sanity.js +41 -65
  2. package/package.json +1 -1
@@ -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
- * .env 파일에서 환경 변수를 읽어옵니다
3
+ * 환경 변수에서 Sanity 설정을 로드합니다
4
+ * npm 패키지에서는 process.env에서만 읽습니다
9
5
  */
10
6
  const loadEnvConfig = () => {
11
- try {
12
- const envPath = join(__dirname, "..", "..", ".env");
13
- const envContent = readFileSync(envPath, "utf-8");
14
- const config = {};
15
- envContent.split("\n").forEach((line) => {
16
- const trimmedLine = line.trim();
17
- if (trimmedLine && !trimmedLine.startsWith("#")) {
18
- const [key, ...valueParts] = trimmedLine.split("=");
19
- const value = valueParts.join("=").replace(/^["']|["']$/g, "");
20
- switch (key.trim()) {
21
- case "SANITY_PROJECT_ID":
22
- config.projectId = value;
23
- break;
24
- case "SANITY_DATASET":
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
- const client = createSanityClient();
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 client.fetch(query);
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 client.fetch(query, { id });
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 client.fetch(query, { name })
135
- : await client.fetch(query);
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 = () => client;
121
+ export const getSanityClient = () => getClient();
146
122
  //# sourceMappingURL=sanity.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tylersong",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "나의 CLI 자기소개 도구",
5
5
  "main": "dist/index.js",
6
6
  "bin": {