@starlightcms/js-sdk 0.1.2 → 0.1.6

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.
@@ -0,0 +1,3 @@
1
+ import { DefaultModelDefinition, ProxiedStarlightClient, StarlightConfig, WorkspaceModelDefinition } from './types';
2
+ export declare function makeClient<D extends WorkspaceModelDefinition = DefaultModelDefinition>(config?: StarlightConfig): ProxiedStarlightClient<D>;
3
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEtB,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAKhB,wBAAgB,UAAU,CACxB,CAAC,SAAS,wBAAwB,GAAG,sBAAsB,EAC3D,MAAM,GAAE,eAAoB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAkDzD"}
package/dist/client.js ADDED
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.makeClient = void 0;
16
+ const errors_1 = __importDefault(require("./errors"));
17
+ const EntrySelector_1 = __importDefault(require("./selectors/EntrySelector"));
18
+ const ModelSelector_1 = __importDefault(require("./selectors/ModelSelector"));
19
+ function makeClient(config = {}) {
20
+ var _a, _b, _c;
21
+ let baseUrl = (_a = config.baseUrl) !== null && _a !== void 0 ? _a : 'https://query.starlight.sh/v2';
22
+ let workspace = (_b = config.workspace) !== null && _b !== void 0 ? _b : '';
23
+ let debug = (_c = config.debug) !== null && _c !== void 0 ? _c : false;
24
+ const client = {
25
+ configure(config) {
26
+ var _a, _b, _c;
27
+ baseUrl = (_a = config.baseUrl) !== null && _a !== void 0 ? _a : baseUrl;
28
+ workspace = (_b = config.workspace) !== null && _b !== void 0 ? _b : workspace;
29
+ debug = (_c = config.debug) !== null && _c !== void 0 ? _c : debug;
30
+ },
31
+ log(message, ...optionalParams) {
32
+ if (debug)
33
+ console.log(message, ...optionalParams);
34
+ },
35
+ getBaseUrl() {
36
+ return `${baseUrl}/workspaces/${workspace}`;
37
+ },
38
+ get(path, options) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ this.log(`Starlight - GET ${path}`);
41
+ const response = yield fetch(`${this.getBaseUrl()}${path}`, options);
42
+ if (response.status >= 200 && response.status < 300) {
43
+ return yield response.json();
44
+ }
45
+ else {
46
+ const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`;
47
+ throw new errors_1.default(message);
48
+ }
49
+ });
50
+ },
51
+ getEntrySelector(slug) {
52
+ return new EntrySelector_1.default(slug, this);
53
+ },
54
+ models() {
55
+ return new ModelSelector_1.default(this);
56
+ },
57
+ };
58
+ return new Proxy(client, {
59
+ get(target, prop) {
60
+ if (typeof prop === 'string' && !Reflect.has(target, prop)) {
61
+ return target.getEntrySelector(prop);
62
+ }
63
+ return Reflect.get(target, prop);
64
+ },
65
+ });
66
+ }
67
+ exports.makeClient = makeClient;
68
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAOA,sDAAqC;AACrC,8EAAqD;AACrD,8EAAqD;AAErD,SAAgB,UAAU,CAExB,SAA0B,EAAE;;IAC5B,IAAI,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,+BAA+B,CAAA;IAC/D,IAAI,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,CAAA;IACtC,IAAI,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,KAAK,CAAA;IAEjC,MAAM,MAAM,GAAoB;QAC9B,SAAS,CAAC,MAAuB;;YAC/B,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,OAAO,CAAA;YACnC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,SAAS,CAAA;YACzC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,KAAK,CAAA;QAC/B,CAAC;QACD,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc;YAC5B,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;QACpD,CAAC;QACD,UAAU;YACR,OAAO,GAAG,OAAO,eAAe,SAAS,EAAE,CAAA;QAC7C,CAAC;QACK,GAAG,CACP,IAAY,EACZ,OAAqB;;gBAErB,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;gBAEnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,CAAA;gBAEpE,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;oBACnD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;iBAC7B;qBAAM;oBACL,MAAM,OAAO,GAAG,mBAAmB,IAAI,aAAa,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAA;oBAE7F,MAAM,IAAI,gBAAc,CAAC,OAAO,CAAC,CAAA;iBAClC;YACH,CAAC;SAAA;QACD,gBAAgB,CAAC,IAAY;YAC3B,OAAO,IAAI,uBAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;QACD,MAAM;YACJ,OAAO,IAAI,uBAAa,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;KACF,CAAA;IAED,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC1D,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;aACrC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClC,CAAC;KACF,CAA8B,CAAA;AACjC,CAAC;AApDD,gCAoDC","sourcesContent":["import {\n DefaultModelDefinition,\n ProxiedStarlightClient,\n StarlightClient,\n StarlightConfig,\n WorkspaceModelDefinition,\n} from './types'\nimport StarlightError from './errors'\nimport EntrySelector from './selectors/EntrySelector'\nimport ModelSelector from './selectors/ModelSelector'\n\nexport function makeClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n>(config: StarlightConfig = {}): ProxiedStarlightClient<D> {\n let baseUrl = config.baseUrl ?? 'https://query.starlight.sh/v2'\n let workspace = config.workspace ?? ''\n let debug = config.debug ?? false\n\n const client: StarlightClient = {\n configure(config: StarlightConfig) {\n baseUrl = config.baseUrl ?? baseUrl\n workspace = config.workspace ?? workspace\n debug = config.debug ?? debug\n },\n log(message, ...optionalParams) {\n if (debug) console.log(message, ...optionalParams)\n },\n getBaseUrl(): string {\n return `${baseUrl}/workspaces/${workspace}`\n },\n async get<T = Record<string, unknown>>(\n path: string,\n options?: RequestInit\n ): Promise<T> {\n this.log(`Starlight - GET ${path}`)\n\n const response = await fetch(`${this.getBaseUrl()}${path}`, options)\n\n if (response.status >= 200 && response.status < 300) {\n return await response.json()\n } else {\n const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`\n\n throw new StarlightError(message)\n }\n },\n getEntrySelector(slug: string): EntrySelector {\n return new EntrySelector(slug, this)\n },\n models(): ModelSelector {\n return new ModelSelector(this)\n },\n }\n\n return new Proxy(client, {\n get(target, prop) {\n if (typeof prop === 'string' && !Reflect.has(target, prop)) {\n return target.getEntrySelector(prop)\n }\n\n return Reflect.get(target, prop)\n },\n }) as ProxiedStarlightClient<D>\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export default class StarlightError extends Error {
2
+ }
3
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;CAAG"}
package/dist/errors.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class StarlightError extends Error {
4
+ }
5
+ exports.default = StarlightError;
6
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;AAAA,MAAqB,cAAe,SAAQ,KAAK;CAAG;AAApD,iCAAoD","sourcesContent":["export default class StarlightError extends Error {}\n"]}
@@ -0,0 +1,6 @@
1
+ import { makeClient } from './client';
2
+ export { DefaultModelDefinition, WorkspaceModelDefinition } from './types';
3
+ declare const Starlight: import("./types").ProxiedStarlightClient<import("./types").DefaultModelDefinition>;
4
+ export { makeClient as makeStarlightClient };
5
+ export default Starlight;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAE1E,QAAA,MAAM,SAAS,oFAAe,CAAA;AAE9B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,CAAA;AAE5C,eAAe,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StarlightClient = void 0;
7
- const client_1 = __importDefault(require("./client"));
8
- exports.StarlightClient = client_1.default;
9
- const Starlight = new client_1.default();
3
+ exports.makeStarlightClient = void 0;
4
+ const client_1 = require("./client");
5
+ Object.defineProperty(exports, "makeStarlightClient", { enumerable: true, get: function () { return client_1.makeClient; } });
6
+ const Starlight = (0, client_1.makeClient)();
10
7
  exports.default = Starlight;
11
8
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAKd,oGALd,mBAAU,OAKuB;AAF1C,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAA;AAI9B,kBAAe,SAAS,CAAA","sourcesContent":["import { makeClient } from './client'\nexport { DefaultModelDefinition, WorkspaceModelDefinition } from './types'\n\nconst Starlight = makeClient()\n\nexport { makeClient as makeStarlightClient }\n\nexport default Starlight\n"]}
@@ -1,10 +1,9 @@
1
- import Client from '../client';
2
- import { Entry, StarlightItem, StarlightList } from '../types';
3
- export default class EntrySelector {
1
+ import { Entry, EntryData, StarlightClient, StarlightItem, StarlightList } from '../types';
2
+ export default class EntrySelector<D extends EntryData = undefined> {
4
3
  protected model: string;
5
- protected client: Client;
6
- constructor(model: string, client: Client);
7
- list(): Promise<StarlightList<Entry>>;
8
- get(slug: string): Promise<StarlightItem<Entry>>;
4
+ protected client: StarlightClient;
5
+ constructor(model: string, client: StarlightClient);
6
+ list(): Promise<StarlightList<Entry<D>>>;
7
+ get(slug: string): Promise<StarlightItem<Entry<D>>>;
9
8
  }
10
9
  //# sourceMappingURL=EntrySelector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntrySelector.d.ts","sourceRoot":"","sources":["../../src/selectors/EntrySelector.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE9D,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;gBAEZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK5B,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAIrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAG9D"}
1
+ {"version":3,"file":"EntrySelector.d.ts","sourceRoot":"","sources":["../../src/selectors/EntrySelector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACd,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAChE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,MAAM,EAAE,eAAe,CAAA;gBAErB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IAKrC,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAIxC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAGjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntrySelector.js","sourceRoot":"","sources":["../../src/selectors/EntrySelector.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,MAAqB,aAAa;IAIhC,YAAY,KAAa,EAAE,MAAc;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEY,IAAI;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,KAAK,UAAU,CAAC,CAAA;QACzD,CAAC;KAAA;IAEY,GAAG,CAAC,IAAY;;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,KAAK,YAAY,IAAI,EAAE,CAAC,CAAA;QACjE,CAAC;KAAA;CACF;AAhBD,gCAgBC","sourcesContent":["import Client from '../client'\nimport { Entry, StarlightItem, StarlightList } from '../types'\n\nexport default class EntrySelector {\n protected model: string\n protected client: Client\n\n constructor(model: string, client: Client) {\n this.model = model\n this.client = client\n }\n\n public async list(): Promise<StarlightList<Entry>> {\n return this.client.get(`/models/${this.model}/entries`)\n }\n\n public async get(slug: string): Promise<StarlightItem<Entry>> {\n return this.client.get(`/models/${this.model}/entries/${slug}`)\n }\n}\n"]}
1
+ {"version":3,"file":"EntrySelector.js","sourceRoot":"","sources":["../../src/selectors/EntrySelector.ts"],"names":[],"mappings":";;;;;;;;;;;AAQA,MAAqB,aAAa;IAIhC,YAAY,KAAa,EAAE,MAAuB;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEY,IAAI;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,KAAK,UAAU,CAAC,CAAA;QACzD,CAAC;KAAA;IAEY,GAAG,CAAC,IAAY;;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,KAAK,YAAY,IAAI,EAAE,CAAC,CAAA;QACjE,CAAC;KAAA;CACF;AAhBD,gCAgBC","sourcesContent":["import {\n Entry,\n EntryData,\n StarlightClient,\n StarlightItem,\n StarlightList,\n} from '../types'\n\nexport default class EntrySelector<D extends EntryData = undefined> {\n protected model: string\n protected client: StarlightClient\n\n constructor(model: string, client: StarlightClient) {\n this.model = model\n this.client = client\n }\n\n public async list(): Promise<StarlightList<Entry<D>>> {\n return this.client.get(`/models/${this.model}/entries`)\n }\n\n public async get(slug: string): Promise<StarlightItem<Entry<D>>> {\n return this.client.get(`/models/${this.model}/entries/${slug}`)\n }\n}\n"]}
@@ -1,9 +1,8 @@
1
- import Client from '../client';
2
- import { Model, StarlightItem, StarlightList } from '../types';
1
+ import { Model, StarlightClient, StarlightItem, StarlightList } from '../types';
3
2
  export default class ModelSelector {
4
- protected client: Client;
5
- constructor(client: Client);
6
- getClient(): Client;
3
+ protected client: StarlightClient;
4
+ constructor(client: StarlightClient);
5
+ getClient(): StarlightClient;
7
6
  list(): Promise<StarlightList<Model>>;
8
7
  get(slug: string): Promise<StarlightItem<Model>>;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../src/selectors/ModelSelector.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE9D,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;gBAEZ,MAAM,EAAE,MAAM;IAInB,SAAS,IAAI,MAAM;IAIb,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAIrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAG9D"}
1
+ {"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../src/selectors/ModelSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE/E,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAA;gBAErB,MAAM,EAAE,eAAe;IAI5B,SAAS,IAAI,eAAe;IAItB,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAIrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAG9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../src/selectors/ModelSelector.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,MAAqB,aAAa;IAGhC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAEY,IAAI;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACnC,CAAC;KAAA;IAEY,GAAG,CAAC,IAAY;;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;KAAA;CACF;AAlBD,gCAkBC","sourcesContent":["import Client from '../client'\nimport { Model, StarlightItem, StarlightList } from '../types'\n\nexport default class ModelSelector {\n protected client: Client\n\n constructor(client: Client) {\n this.client = client\n }\n\n public getClient(): Client {\n return this.client\n }\n\n public async list(): Promise<StarlightList<Model>> {\n return this.client.get('/models')\n }\n\n public async get(slug: string): Promise<StarlightItem<Model>> {\n return this.client.get(`/models/${slug}`)\n }\n}\n"]}
1
+ {"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../src/selectors/ModelSelector.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAqB,aAAa;IAGhC,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAEY,IAAI;;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACnC,CAAC;KAAA;IAEY,GAAG,CAAC,IAAY;;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;KAAA;CACF;AAlBD,gCAkBC","sourcesContent":["import { Model, StarlightClient, StarlightItem, StarlightList } from '../types'\n\nexport default class ModelSelector {\n protected client: StarlightClient\n\n constructor(client: StarlightClient) {\n this.client = client\n }\n\n public getClient(): StarlightClient {\n return this.client\n }\n\n public async list(): Promise<StarlightList<Model>> {\n return this.client.get('/models')\n }\n\n public async get(slug: string): Promise<StarlightItem<Model>> {\n return this.client.get(`/models/${slug}`)\n }\n}\n"]}
@@ -0,0 +1,74 @@
1
+ import EntrySelector from './selectors/EntrySelector';
2
+ import ModelSelector from './selectors/ModelSelector';
3
+ declare type BaseUrl = 'https://query.starlight.sh/v2' | string;
4
+ export declare type StarlightConfig = {
5
+ workspace?: string;
6
+ baseUrl?: BaseUrl;
7
+ debug?: boolean;
8
+ };
9
+ export interface StarlightClient {
10
+ configure(config: StarlightConfig): void;
11
+ log(message?: unknown, ...optionalParams: unknown[]): void;
12
+ getBaseUrl(): string;
13
+ get<T = Record<string, unknown>>(path: string, options?: RequestInit): Promise<T>;
14
+ getEntrySelector(slug: string): EntrySelector;
15
+ models(): ModelSelector;
16
+ }
17
+ export declare type ProxiedStarlightClient<T extends WorkspaceModelDefinition> = StarlightClient & {
18
+ [K in keyof T]: EntrySelector<T[K]>;
19
+ };
20
+ export declare type StarlightItem<T> = {
21
+ data: T;
22
+ };
23
+ export declare type StarlightList<T> = {
24
+ data: T[];
25
+ links: {
26
+ first: string;
27
+ last: string;
28
+ prev?: string;
29
+ next?: string;
30
+ };
31
+ meta: {
32
+ current_page: number;
33
+ last_page: number;
34
+ from: number;
35
+ to: number;
36
+ per_page: number;
37
+ total: number;
38
+ };
39
+ };
40
+ interface StarlightEntity {
41
+ id: number;
42
+ created_at: string;
43
+ updated_at?: string;
44
+ }
45
+ export interface Model extends StarlightEntity {
46
+ title: string;
47
+ slug: string;
48
+ entry_count?: number;
49
+ }
50
+ interface Author {
51
+ id: number;
52
+ name: string;
53
+ }
54
+ interface ModelCategory extends StarlightEntity {
55
+ title: string;
56
+ slug: string;
57
+ }
58
+ export interface DefaultModelDefinition extends WorkspaceModelDefinition {
59
+ }
60
+ export interface WorkspaceModelDefinition {
61
+ [slug: string]: EntryData;
62
+ }
63
+ export declare type EntryData = Record<string, unknown> | undefined;
64
+ export interface Entry<D extends EntryData = undefined> extends Omit<StarlightEntity, 'created_at'> {
65
+ title: string;
66
+ slug: string;
67
+ data: D;
68
+ author: Author;
69
+ category: ModelCategory | null;
70
+ model?: Model;
71
+ published_at: string | null;
72
+ }
73
+ export {};
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import EntrySelector from './selectors/EntrySelector'\nimport ModelSelector from './selectors/ModelSelector'\n\ntype BaseUrl = 'https://query.starlight.sh/v2' | string\n\nexport type StarlightConfig = {\n workspace?: string\n baseUrl?: BaseUrl\n debug?: boolean\n}\n\nexport interface StarlightClient {\n configure(config: StarlightConfig): void\n\n log(message?: unknown, ...optionalParams: unknown[]): void\n\n getBaseUrl(): string\n\n get<T = Record<string, unknown>>(\n path: string,\n options?: RequestInit\n ): Promise<T>\n\n getEntrySelector(slug: string): EntrySelector\n\n models(): ModelSelector\n}\n\nexport type ProxiedStarlightClient<T extends WorkspaceModelDefinition> =\n StarlightClient & {\n [K in keyof T]: EntrySelector<T[K]>\n }\n\nexport type StarlightItem<T> = {\n data: T\n}\n\nexport type StarlightList<T> = {\n data: T[]\n links: {\n first: string\n last: string\n prev?: string\n next?: string\n }\n meta: {\n current_page: number\n last_page: number\n from: number\n to: number\n per_page: number\n total: number\n }\n}\n\ninterface StarlightEntity {\n id: number\n created_at: string\n updated_at?: string\n}\n\nexport interface Model extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\ninterface Author {\n id: number\n name: string\n}\n\ninterface ModelCategory extends StarlightEntity {\n title: string\n slug: string\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DefaultModelDefinition extends WorkspaceModelDefinition {}\n\nexport interface WorkspaceModelDefinition {\n [slug: string]: EntryData\n}\n\nexport type EntryData = Record<string, unknown> | undefined\n\nexport interface Entry<D extends EntryData = undefined>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n author: Author\n category: ModelCategory | null\n model?: Model\n published_at: string | null\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starlightcms/js-sdk",
3
- "version": "0.1.2",
3
+ "version": "0.1.6",
4
4
  "description": "The Starlight SDK for JavaScript",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -11,7 +11,7 @@
11
11
  "test": "echo \"Error: no test specified\" && exit 1"
12
12
  },
13
13
  "files": [
14
- "dist/*/**"
14
+ "dist/**/*"
15
15
  ],
16
16
  "repository": {
17
17
  "type": "git",