This commit is contained in:
donggang
2024-02-23 11:04:32 +08:00
parent 723dfcaaed
commit 9500a7474b
10 changed files with 366 additions and 2 deletions

9
assets/libs/jszip.meta Normal file
View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "5dedf13d-d504-483f-8b75-01f419da354e",
"files": [],
"subMetas": {},
"userData": {}
}

276
assets/libs/jszip/jszip.d.ts vendored Normal file
View File

@@ -0,0 +1,276 @@
interface JSZipSupport {
arraybuffer: boolean
uint8array: boolean
blob: boolean
// nodebuffer: boolean
}
type Compression = 'STORE' | 'DEFLATE'
interface Metadata {
percent: number
currentFile: string
}
type OnUpdateCallback = (metadata: Metadata) => void
interface InputByType {
base64: string
string: string
text: string
binarystring: string
array: number[]
uint8array: Uint8Array
arraybuffer: ArrayBuffer
blob: Blob
// stream: NodeJS.ReadableStream
}
interface OutputByType {
base64: string
text: string
binarystring: string
array: number[]
uint8array: Uint8Array
arraybuffer: ArrayBuffer
blob: Blob
// nodebuffer: Buffer
}
type InputFileFormat = InputByType[keyof InputByType]
declare namespace JSZip {
type InputType = keyof InputByType
type OutputType = keyof OutputByType
interface JSZipObject {
name: string
dir: boolean
date: Date
comment: string
/** The UNIX permissions of the file, if any. */
unixPermissions: number | string | null
/** The UNIX permissions of the file, if any. */
dosPermissions: number | null
options: JSZipObjectOptions
/**
* Prepare the content in the asked type.
* @param type the type of the result.
* @param onUpdate a function to call on each internal update.
* @return Promise the promise of the result.
*/
async<T extends OutputType>(
type: T,
onUpdate?: OnUpdateCallback
): Promise<OutputByType[T]>
// nodeStream(
// type?: 'nodestream',
// onUpdate?: OnUpdateCallback
// ): NodeJS.ReadableStream
}
interface JSZipFileOptions {
/** Set to `true` if the data is `base64` encoded. For example image data from a `<canvas>` element. Plain text and HTML do not need this option. */
base64?: boolean
/**
* Set to `true` if the data should be treated as raw content, `false` if this is a text. If `base64` is used,
* this defaults to `true`, if the data is not a `string`, this will be set to `true`.
*/
binary?: boolean
/**
* The last modification date, defaults to the current date.
*/
date?: Date
compression?: string
comment?: string
/** Set to `true` if (and only if) the input is a "binary string" and has already been prepared with a `0xFF` mask. */
optimizedBinaryString?: boolean
/** Set to `true` if folders in the file path should be automatically created, otherwise there will only be virtual folders that represent the path to the file. */
createFolders?: boolean
/** Set to `true` if this is a directory and content should be ignored. */
dir?: boolean
/** 6 bits number. The DOS permissions of the file, if any. */
dosPermissions?: number | null
/**
* 16 bits number. The UNIX permissions of the file, if any.
* Also accepts a `string` representing the octal value: `"644"`, `"755"`, etc.
*/
unixPermissions?: number | string | null
}
interface JSZipObjectOptions {
compression: Compression
}
interface JSZipGeneratorOptions<T extends OutputType> {
compression?: Compression
compressionOptions?: null | {
level: number
}
type?: T
comment?: string
/**
* mime-type for the generated file.
* Useful when you need to generate a file with a different extension, ie: “.ods”.
* @default 'application/zip'
*/
mimeType?: string
encodeFileName?(filename: string): string
/** Stream the files and create file descriptors */
streamFiles?: boolean
/** DOS (default) or UNIX */
platform?: 'DOS' | 'UNIX'
}
interface JSZipLoadOptions {
base64?: boolean
checkCRC32?: boolean
optimizedBinaryString?: boolean
createFolders?: boolean
}
}
interface JSZip {
files: { [key: string]: JSZip.JSZipObject }
/**
* Get a file from the archive
*
* @param Path relative path to file
* @return File matching path, null if no file found
*/
file(path: string): JSZip.JSZipObject
/**
* Get files matching a RegExp from archive
*
* @param path RegExp to match
* @return Return all matching files or an empty array
*/
file(path: RegExp): JSZip.JSZipObject[]
/**
* Add a file to the archive
*
* @param path Relative path to file
* @param data Content of the file
* @param options Optional information about the file
* @return JSZip object
*/
file<T extends JSZip.InputType>(
path: string,
data: InputByType[T] | Promise<InputByType[T]>,
options?: JSZip.JSZipFileOptions
): this
file<T extends JSZip.InputType>(
path: string,
data: null,
options?: JSZip.JSZipFileOptions & { dir: true }
): this
/**
* Returns an new JSZip instance with the given folder as root
*
* @param name Name of the folder
* @return New JSZip object with the given folder as root or null
*/
folder(name: string): JSZip
/**
* Returns new JSZip instances with the matching folders as root
*
* @param name RegExp to match
* @return New array of JSZipFile objects which match the RegExp
*/
folder(name: RegExp): JSZip.JSZipObject[]
/**
* Call a callback function for each entry at this folder level.
*
* @param callback function
*/
forEach(
callback: (relativePath: string, file: JSZip.JSZipObject) => void
): void
/**
* Get all files which match the given filter function
*
* @param predicate Filter function
* @return Array of matched elements
*/
filter(
predicate: (relativePath: string, file: JSZip.JSZipObject) => boolean
): JSZip.JSZipObject[]
/**
* Removes the file or folder from the archive
*
* @param path Relative path of file or folder
* @return Returns the JSZip instance
*/
remove(path: string): JSZip
/**
* Generates a new archive asynchronously
*
* @param options Optional options for the generator
* @param onUpdate The optional function called on each internal update with the metadata.
* @return The serialized archive
*/
generateAsync<T extends JSZip.OutputType>(
options?: JSZip.JSZipGeneratorOptions<T>,
onUpdate?: OnUpdateCallback
): Promise<OutputByType[T]>
/**
* Generates a new archive asynchronously
*
* @param options Optional options for the generator
* @param onUpdate The optional function called on each internal update with the metadata.
* @return A Node.js `ReadableStream`
*/
// generateNodeStream(
// options?: JSZip.JSZipGeneratorOptions<'nodebuffer'>,
// onUpdate?: OnUpdateCallback
// ): NodeJS.ReadableStream
/**
* Deserialize zip file asynchronously
*
* @param data Serialized zip file
* @param options Options for deserializing
* @return Returns promise
*/
loadAsync(
data: InputFileFormat,
options?: JSZip.JSZipLoadOptions
): Promise<JSZip>
/**
* Create JSZip instance
*/
/**
* Create JSZip instance
* If no parameters given an empty zip archive will be created
*
* @param data Serialized zip archive
* @param options Description of the serialized zip archive
*/
new(data?: InputFileFormat, options?: JSZip.JSZipLoadOptions): this
(): JSZip
prototype: JSZip
support: JSZipSupport
external: {
Promise: PromiseConstructorLike
}
version: string
}
declare var JSZip: JSZip

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "afca87cd-db6a-4395-8971-ed2fc22404b7",
"files": [],
"subMetas": {},
"userData": {}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
{
"ver": "4.0.23",
"importer": "javascript",
"imported": true,
"uuid": "ceb28d21-6bee-4514-890f-e1ff4aab3bcf",
"files": [
".js"
],
"subMetas": {},
"userData": {
"dependencies": [],
"isPlugin": true,
"loadPluginInWeb": true,
"loadPluginInNative": true
}
}

View File

@@ -265,7 +265,7 @@
"_priority": 1073741824,
"_fov": 45,
"_fovAxis": 0,
"_orthoHeight": 362.34028244788163,
"_orthoHeight": 421.5962441314554,
"_near": 1,
"_far": 2000,
"_color": {

View File

@@ -1,5 +1,5 @@
{
"ver": "1.1.0",
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "290b1e09-c538-41d7-8b27-c70a15a0d9b7",

Binary file not shown.

View File

@@ -0,0 +1,12 @@
{
"ver": "1.0.3",
"importer": "buffer",
"imported": true,
"uuid": "6cdeb7f3-6a17-40e2-9570-7bf47e030563",
"files": [
".bin",
".json"
],
"subMetas": {},
"userData": {}
}

View File

@@ -54,8 +54,20 @@ export class Demo extends Component {
this.labChange.changeTo(0.5, 250, () => {
})
// this.test_zip();
}
// private async test_zip() {
// var z = new ZipLoader();
// var zip_path = "zip/data";
// await z.load(zip_path);
// var a = await z.getJson(zip_path, "data/a.json");
// console.log(a);
// var s = await z.getSpriteFrame(zip_path, "data/Dungeon.png");
// console.log(s);
// }
private btn_long(event: EventTouch, data: any) {
oops.gui.toast(data, true);
}