Initial commit: KidsAI Explorer with complete functionality
- Complete KidsAI Explorer application - Multi-language support (English/German) - AI-powered educational guidance using OpenAI - Interactive chat interface for children - Proper placeholder translation fixes - Mobile-responsive design - Educational framework for critical thinking
This commit is contained in:
125
node_modules/openai/core/pagination.js
generated
vendored
Normal file
125
node_modules/openai/core/pagination.js
generated
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
"use strict";
|
||||
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
||||
var _AbstractPage_client;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CursorPage = exports.Page = exports.PagePromise = exports.AbstractPage = void 0;
|
||||
const tslib_1 = require("../internal/tslib.js");
|
||||
const error_1 = require("./error.js");
|
||||
const parse_1 = require("../internal/parse.js");
|
||||
const api_promise_1 = require("./api-promise.js");
|
||||
const values_1 = require("../internal/utils/values.js");
|
||||
class AbstractPage {
|
||||
constructor(client, response, body, options) {
|
||||
_AbstractPage_client.set(this, void 0);
|
||||
tslib_1.__classPrivateFieldSet(this, _AbstractPage_client, client, "f");
|
||||
this.options = options;
|
||||
this.response = response;
|
||||
this.body = body;
|
||||
}
|
||||
hasNextPage() {
|
||||
const items = this.getPaginatedItems();
|
||||
if (!items.length)
|
||||
return false;
|
||||
return this.nextPageRequestOptions() != null;
|
||||
}
|
||||
async getNextPage() {
|
||||
const nextOptions = this.nextPageRequestOptions();
|
||||
if (!nextOptions) {
|
||||
throw new error_1.OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');
|
||||
}
|
||||
return await tslib_1.__classPrivateFieldGet(this, _AbstractPage_client, "f").requestAPIList(this.constructor, nextOptions);
|
||||
}
|
||||
async *iterPages() {
|
||||
let page = this;
|
||||
yield page;
|
||||
while (page.hasNextPage()) {
|
||||
page = await page.getNextPage();
|
||||
yield page;
|
||||
}
|
||||
}
|
||||
async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {
|
||||
for await (const page of this.iterPages()) {
|
||||
for (const item of page.getPaginatedItems()) {
|
||||
yield item;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.AbstractPage = AbstractPage;
|
||||
/**
|
||||
* This subclass of Promise will resolve to an instantiated Page once the request completes.
|
||||
*
|
||||
* It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
|
||||
*
|
||||
* for await (const item of client.items.list()) {
|
||||
* console.log(item)
|
||||
* }
|
||||
*/
|
||||
class PagePromise extends api_promise_1.APIPromise {
|
||||
constructor(client, request, Page) {
|
||||
super(client, request, async (client, props) => new Page(client, props.response, await (0, parse_1.defaultParseResponse)(client, props), props.options));
|
||||
}
|
||||
/**
|
||||
* Allow auto-paginating iteration on an unawaited list call, eg:
|
||||
*
|
||||
* for await (const item of client.items.list()) {
|
||||
* console.log(item)
|
||||
* }
|
||||
*/
|
||||
async *[Symbol.asyncIterator]() {
|
||||
const page = await this;
|
||||
for await (const item of page) {
|
||||
yield item;
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.PagePromise = PagePromise;
|
||||
/**
|
||||
* Note: no pagination actually occurs yet, this is for forwards-compatibility.
|
||||
*/
|
||||
class Page extends AbstractPage {
|
||||
constructor(client, response, body, options) {
|
||||
super(client, response, body, options);
|
||||
this.data = body.data || [];
|
||||
this.object = body.object;
|
||||
}
|
||||
getPaginatedItems() {
|
||||
return this.data ?? [];
|
||||
}
|
||||
nextPageRequestOptions() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
exports.Page = Page;
|
||||
class CursorPage extends AbstractPage {
|
||||
constructor(client, response, body, options) {
|
||||
super(client, response, body, options);
|
||||
this.data = body.data || [];
|
||||
this.has_more = body.has_more || false;
|
||||
}
|
||||
getPaginatedItems() {
|
||||
return this.data ?? [];
|
||||
}
|
||||
hasNextPage() {
|
||||
if (this.has_more === false) {
|
||||
return false;
|
||||
}
|
||||
return super.hasNextPage();
|
||||
}
|
||||
nextPageRequestOptions() {
|
||||
const data = this.getPaginatedItems();
|
||||
const id = data[data.length - 1]?.id;
|
||||
if (!id) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
...this.options,
|
||||
query: {
|
||||
...(0, values_1.maybeObj)(this.options.query),
|
||||
after: id,
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.CursorPage = CursorPage;
|
||||
//# sourceMappingURL=pagination.js.map
|
||||
Reference in New Issue
Block a user