@sprucelabs/spruce-image-utils 1.1.2 → 2.0.0

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,17 @@
1
+ import { SpruceSchemas } from '@sprucelabs/spruce-test-fixtures';
2
+ import { UploadedImage, ImageUploader, ImageUploadOptions } from '../../uploading/RemoteImageUploader';
3
+ export default class FakeImageUploader implements ImageUploader {
4
+ static lastUploadOptions: ImageUploadOptions;
5
+ private static fakeUploadedImage?;
6
+ upload(options: ImageUploadOptions): Promise<SpruceSchemas.Images.v2022_05_31.UploadResponsePayload>;
7
+ static setUploadResponse(image: UploadedImage): void;
8
+ }
9
+ export declare function generateUploadedImageValues(): {
10
+ id: string;
11
+ sizes: {
12
+ lUri: string;
13
+ mUri: string;
14
+ sUri: string;
15
+ xlUri: string;
16
+ };
17
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateUploadedImageValues = void 0;
4
+ const test_utils_1 = require("@sprucelabs/test-utils");
5
+ class FakeImageUploader {
6
+ async upload(options) {
7
+ var _a;
8
+ FakeImageUploader.lastUploadOptions = options;
9
+ return (_a = FakeImageUploader.fakeUploadedImage) !== null && _a !== void 0 ? _a : generateUploadedImageValues();
10
+ }
11
+ static setUploadResponse(image) {
12
+ this.fakeUploadedImage = image;
13
+ }
14
+ }
15
+ exports.default = FakeImageUploader;
16
+ function generateUploadedImageValues() {
17
+ return {
18
+ id: (0, test_utils_1.generateId)(),
19
+ sizes: {
20
+ lUri: (0, test_utils_1.generateId)(),
21
+ mUri: (0, test_utils_1.generateId)(),
22
+ sUri: (0, test_utils_1.generateId)(),
23
+ xlUri: (0, test_utils_1.generateId)(),
24
+ },
25
+ };
26
+ }
27
+ exports.generateUploadedImageValues = generateUploadedImageValues;
@@ -0,0 +1,17 @@
1
+ import { SpruceSchemas } from '@sprucelabs/spruce-test-fixtures';
2
+ import { UploadedImage, ImageUploader, ImageUploadOptions } from '../../uploading/RemoteImageUploader';
3
+ export default class FakeImageUploader implements ImageUploader {
4
+ static lastUploadOptions: ImageUploadOptions;
5
+ private static fakeUploadedImage?;
6
+ upload(options: ImageUploadOptions): Promise<SpruceSchemas.Images.v2022_05_31.UploadResponsePayload>;
7
+ static setUploadResponse(image: UploadedImage): void;
8
+ }
9
+ export declare function generateUploadedImageValues(): {
10
+ id: string;
11
+ sizes: {
12
+ lUri: string;
13
+ mUri: string;
14
+ sUri: string;
15
+ xlUri: string;
16
+ };
17
+ };
@@ -0,0 +1,33 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { generateId } from '@sprucelabs/test-utils';
11
+ export default class FakeImageUploader {
12
+ upload(options) {
13
+ var _a;
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ FakeImageUploader.lastUploadOptions = options;
16
+ return (_a = FakeImageUploader.fakeUploadedImage) !== null && _a !== void 0 ? _a : generateUploadedImageValues();
17
+ });
18
+ }
19
+ static setUploadResponse(image) {
20
+ this.fakeUploadedImage = image;
21
+ }
22
+ }
23
+ export function generateUploadedImageValues() {
24
+ return {
25
+ id: generateId(),
26
+ sizes: {
27
+ lUri: generateId(),
28
+ mUri: generateId(),
29
+ sUri: generateId(),
30
+ xlUri: generateId(),
31
+ },
32
+ };
33
+ }
@@ -1,2 +1,4 @@
1
1
  export { default as RemoteImageUploader } from './uploading/RemoteImageUploader';
2
2
  export * from './uploading/RemoteImageUploader';
3
+ export { default as FakeImageUploader } from './__tests__/support/FakeImageUploader';
4
+ export * from './__tests__/support/FakeImageUploader';
@@ -1,2 +1,4 @@
1
1
  export { default as RemoteImageUploader } from './uploading/RemoteImageUploader.js';
2
2
  export * from './uploading/RemoteImageUploader.js';
3
+ export { default as FakeImageUploader } from './__tests__/support/FakeImageUploader.js';
4
+ export * from './__tests__/support/FakeImageUploader.js';
@@ -1,9 +1,21 @@
1
1
  import { MercuryClient } from '@sprucelabs/mercury-client';
2
+ import { SpruceSchemas } from '@sprucelabs/mercury-types';
3
+ declare type ImageUploaderConstructor = new () => ImageUploader;
2
4
  export default class RemoteImageUploader {
3
- static upload(options: RemoteImageUploadOptions): Promise<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false, never, import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false>>>;
5
+ private client;
6
+ private static UploaderClass?;
7
+ constructor(client: MercuryClient);
8
+ static Uploader(options: {
9
+ client: MercuryClient;
10
+ }): ImageUploader;
11
+ static setClass(Class: ImageUploaderConstructor): void;
12
+ upload(options: ImageUploadOptions): Promise<import("@sprucelabs/schema").SchemaStaticValues<SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false, never, import("@sprucelabs/schema").StaticSchemaAllValues<SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false>>>;
4
13
  }
5
- interface RemoteImageUploadOptions {
6
- client: MercuryClient;
14
+ export interface ImageUploader {
15
+ upload(options: ImageUploadOptions): Promise<UploadedImage>;
16
+ }
17
+ export declare type UploadedImage = SpruceSchemas.Images.v2022_05_31.UploadResponsePayload;
18
+ export interface ImageUploadOptions {
7
19
  base64: string;
8
20
  name: string;
9
21
  }
@@ -9,14 +9,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { assertOptions } from '@sprucelabs/schema';
11
11
  export default class RemoteImageUploader {
12
- static upload(options) {
12
+ constructor(client) {
13
+ this.client = client;
14
+ }
15
+ static Uploader(options) {
16
+ var _a;
17
+ const { client } = assertOptions(options, ['client']);
18
+ return new ((_a = this.UploaderClass) !== null && _a !== void 0 ? _a : this)(client);
19
+ }
20
+ static setClass(Class) {
21
+ this.UploaderClass = Class;
22
+ }
23
+ upload(options) {
13
24
  return __awaiter(this, void 0, void 0, function* () {
14
- const { client, base64, name } = assertOptions(options, [
15
- 'client',
16
- 'base64',
17
- 'name',
18
- ]);
19
- const [image] = yield client.emitAndFlattenResponses('images.upload::v2022_05_31', {
25
+ const { base64, name } = assertOptions(options, ['base64', 'name']);
26
+ const [image] = yield this.client.emitAndFlattenResponses('images.upload::v2022_05_31', {
20
27
  payload: {
21
28
  base64Body: base64,
22
29
  name,
@@ -1,2 +1,4 @@
1
1
  export { default as RemoteImageUploader } from './uploading/RemoteImageUploader';
2
2
  export * from './uploading/RemoteImageUploader';
3
+ export { default as FakeImageUploader } from './__tests__/support/FakeImageUploader';
4
+ export * from './__tests__/support/FakeImageUploader';
@@ -17,7 +17,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.RemoteImageUploader = void 0;
20
+ exports.FakeImageUploader = exports.RemoteImageUploader = void 0;
21
21
  var RemoteImageUploader_1 = require("./uploading/RemoteImageUploader");
22
22
  Object.defineProperty(exports, "RemoteImageUploader", { enumerable: true, get: function () { return __importDefault(RemoteImageUploader_1).default; } });
23
23
  __exportStar(require("./uploading/RemoteImageUploader"), exports);
24
+ var FakeImageUploader_1 = require("./__tests__/support/FakeImageUploader");
25
+ Object.defineProperty(exports, "FakeImageUploader", { enumerable: true, get: function () { return __importDefault(FakeImageUploader_1).default; } });
26
+ __exportStar(require("./__tests__/support/FakeImageUploader"), exports);
@@ -1,9 +1,21 @@
1
1
  import { MercuryClient } from '@sprucelabs/mercury-client';
2
+ import { SpruceSchemas } from '@sprucelabs/mercury-types';
3
+ declare type ImageUploaderConstructor = new () => ImageUploader;
2
4
  export default class RemoteImageUploader {
3
- static upload(options: RemoteImageUploadOptions): Promise<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false, never, import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false>>>;
5
+ private client;
6
+ private static UploaderClass?;
7
+ constructor(client: MercuryClient);
8
+ static Uploader(options: {
9
+ client: MercuryClient;
10
+ }): ImageUploader;
11
+ static setClass(Class: ImageUploaderConstructor): void;
12
+ upload(options: ImageUploadOptions): Promise<import("@sprucelabs/schema").SchemaStaticValues<SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false, never, import("@sprucelabs/schema").StaticSchemaAllValues<SpruceSchemas.Images.v2022_05_31.UploadResponsePayloadSchema, false>>>;
4
13
  }
5
- interface RemoteImageUploadOptions {
6
- client: MercuryClient;
14
+ export interface ImageUploader {
15
+ upload(options: ImageUploadOptions): Promise<UploadedImage>;
16
+ }
17
+ export declare type UploadedImage = SpruceSchemas.Images.v2022_05_31.UploadResponsePayload;
18
+ export interface ImageUploadOptions {
7
19
  base64: string;
8
20
  name: string;
9
21
  }
@@ -2,13 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const schema_1 = require("@sprucelabs/schema");
4
4
  class RemoteImageUploader {
5
- static async upload(options) {
6
- const { client, base64, name } = (0, schema_1.assertOptions)(options, [
7
- 'client',
8
- 'base64',
9
- 'name',
10
- ]);
11
- const [image] = await client.emitAndFlattenResponses('images.upload::v2022_05_31', {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ static Uploader(options) {
9
+ var _a;
10
+ const { client } = (0, schema_1.assertOptions)(options, ['client']);
11
+ return new ((_a = this.UploaderClass) !== null && _a !== void 0 ? _a : this)(client);
12
+ }
13
+ static setClass(Class) {
14
+ this.UploaderClass = Class;
15
+ }
16
+ async upload(options) {
17
+ const { base64, name } = (0, schema_1.assertOptions)(options, ['base64', 'name']);
18
+ const [image] = await this.client.emitAndFlattenResponses('images.upload::v2022_05_31', {
12
19
  payload: {
13
20
  base64Body: base64,
14
21
  name,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sprucelabs/spruce-image-utils",
3
3
  "description": "Support for working with images and Sprucebot. 📈",
4
- "version": "1.1.2",
4
+ "version": "2.0.0",
5
5
  "skill": {
6
6
  "namespace": "images"
7
7
  },
@@ -18,6 +18,10 @@
18
18
  "build/uploading/RemoteImageUploader.d.ts",
19
19
  "build/esm/uploading/RemoteImageUploader.js",
20
20
  "build/esm/uploading/RemoteImageUploader.d.ts",
21
+ "build/__tests__/support/FakeImageUploader.js",
22
+ "build/__tests__/support/FakeImageUploader.d.ts",
23
+ "build/esm/__tests__/support/FakeImageUploader.js",
24
+ "build/esm/__tests__/support/FakeImageUploader.d.ts",
21
25
  "build/index-module.js",
22
26
  "build/index-module.d.ts",
23
27
  "build/esm/index-module.js",
@@ -27,8 +31,7 @@
27
31
  "scripts": {
28
32
  "release": "npm publish"
29
33
  },
30
- "dependencies": {
31
- },
34
+ "dependencies": {},
32
35
  "engines": {
33
36
  "node": "16.x",
34
37
  "yarn": "1.x"