@haibun/domain-storage 1.8.3 → 1.8.4

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.
@@ -1,12 +1,19 @@
1
1
  /// <reference types="node" />
2
2
  import { AStepper, TNamed } from "@haibun/core/build/lib/defs";
3
3
  import { TLocationOptions, TMediaType } from "./domain-storage";
4
+ export interface IFile {
5
+ name: string;
6
+ isDirectory: boolean;
7
+ isFile: boolean;
8
+ created: number;
9
+ }
4
10
  export declare abstract class AStorage extends AStepper {
5
11
  abstract readFile(path: string, coding?: string): any;
6
- abstract readdir(dir: string): any;
12
+ abstract readdir(dir: string): Promise<string[]>;
13
+ abstract readdirStat(dir: string): Promise<IFile[]>;
7
14
  abstract writeFileBuffer(file: string, contents: Buffer, mediaType: TMediaType): void;
8
15
  writeFile(file: string, contents: string | Buffer, mediaType: TMediaType): Promise<void>;
9
- abstract stat(dir: string): any;
16
+ latestFrom(dir: string): Promise<any>;
10
17
  abstract mkdir(dir: string): any;
11
18
  abstract mkdirp(dir: string): any;
12
19
  abstract exists(ntt: string): any;
@@ -23,6 +30,10 @@ export declare abstract class AStorage extends AStepper {
23
30
  ensureCaptureLocation(loc: TLocationOptions, app?: string | undefined, fn?: string): Promise<string>;
24
31
  ensureDirExists(dir: string): Promise<void>;
25
32
  steps: {
33
+ setLatest: {
34
+ gwta: string;
35
+ action: ({ where, what }: TNamed, vstep: any) => Promise<import("@haibun/core/build/lib/defs").TOKActionResult>;
36
+ };
26
37
  readFile: {
27
38
  gwta: string;
28
39
  action: ({ where }: TNamed) => Promise<import("@haibun/core/build/lib/defs").TOKActionResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"AStorage.d.ts","sourceRoot":"","sources":["../src/AStorage.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,QAAQ,EAAM,MAAM,EAAiB,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEhE,8BAAsB,QAAS,SAAQ,QAAQ;IAC3C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG;IACrD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAClC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI;IAE/E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,UAAU;IAO9E,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM;IACzB,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM;IAC1B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM;IAC3B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM;IACrB,IAAI,CAAC,GAAG,EAAE,MAAM;IAItB,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE;IAI7D,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE;IAMzD,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM;IAK5D;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAQtD,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,SAAK;IAK9E,eAAe,CAAC,GAAG,EAAE,MAAM;IAUjC,KAAK;;;gCAG6B,MAAM;;;;gCAQN,MAAM;;;;;;MAevC;CACJ"}
1
+ {"version":3,"file":"AStorage.d.ts","sourceRoot":"","sources":["../src/AStorage.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,QAAQ,EAAM,MAAM,EAAiB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,QAAS,SAAQ,QAAQ;IAC3C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG;IACrD,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IACnD,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI;IAE/E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,UAAU;IAMxE,UAAU,CAAC,GAAG,EAAE,MAAM;IAQ5B,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM;IAC1B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM;IAC3B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM;IAErB,IAAI,CAAC,GAAG,EAAE,MAAM;IAItB,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE;IAI7D,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE;IAMzD,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM;IAK5D;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAQtD,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,SAAK;IAK9E,eAAe,CAAC,GAAG,EAAE,MAAM;IAUjC,KAAK;;;sCAGmC,MAAM;;;;gCASZ,MAAM;;;;gCAQN,MAAM;;;;;;MAevC;CACJ"}
package/build/AStorage.js CHANGED
@@ -2,10 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AStorage = void 0;
4
4
  const defs_1 = require("@haibun/core/build/lib/defs");
5
+ const vars_1 = require("@haibun/core/src/steps/vars");
5
6
  class AStorage extends defs_1.AStepper {
6
7
  constructor() {
7
8
  super(...arguments);
8
9
  this.steps = {
10
+ setLatest: {
11
+ gwta: `set {what} to the latest file from {where}`,
12
+ action: async ({ where, what }, vstep) => {
13
+ const latest = await this.latestFrom(where);
14
+ (0, vars_1.setShared)({ what, value: latest.file }, vstep, this.getWorld());
15
+ return defs_1.OK;
16
+ }
17
+ },
9
18
  readFile: {
10
19
  gwta: `read text from {where: STORAGE_ITEM}`,
11
20
  action: async ({ where }) => {
@@ -39,6 +48,12 @@ class AStorage extends defs_1.AStepper {
39
48
  }
40
49
  await this.writeFileBuffer(file, contents, mediaType);
41
50
  }
51
+ async latestFrom(dir) {
52
+ const orderReccentFiles = async (dir) => (await this.readdirStat(dir))
53
+ .filter(f => f.isFile)
54
+ .sort((a, b) => b.created - a.created);
55
+ return orderReccentFiles(dir)[0];
56
+ }
42
57
  async rmrf(dir) {
43
58
  throw Error(`rmrf not implemented at ${dir}`);
44
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AStorage.js","sourceRoot":"","sources":["../src/AStorage.ts"],"names":[],"mappings":";;;AAAA,sDAA2F;AAG3F,MAAsB,QAAS,SAAQ,eAAQ;IAA/C;;QA+DI,UAAK,GAAG;YACJ,QAAQ,EAAE;gBACN,IAAI,EAAE,sCAAsC;gBAC5C,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAU,EAAE,EAAE;oBAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACjD,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjC,OAAO,SAAE,CAAC;gBACd,CAAC;aACJ;YACD,UAAU,EAAE;gBACR,IAAI,EAAE,8BAA8B;gBACpC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAU,EAAE,EAAE;oBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;wBACpB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACxB;oBACD,OAAO,SAAE,CAAC;gBACd,CAAC;aACJ;YACD,aAAa,EAAE;gBACX,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACpB,OAAO,SAAE,CAAC;gBACd,CAAC;aACJ;SACJ,CAAA;IACL,CAAC;IArFG,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,QAAyB,EAAE,SAAqB;QAC1E,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;SACtE;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAkB,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAMD,KAAK,CAAC,IAAI,CAAC,GAAW;QAClB,MAAM,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,mBAAmB,CAAC,SAAqB,EAAE,GAAG,KAAe;QACzD,OAAO,CAAC,KAAK,cAAO,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,GAAqB,EAAE,GAAG,KAA6B;QAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,cAAO,EAAE,OAAO,CAAC,IAAI,IAAI,mBAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;QAC9G,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAqB,EAAE,GAAY;QACxD,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,GAAG,CAAC,UAAU,EAAE,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7H,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAqB,EAAE,CAAS,EAAE,UAAmB;QACxD,IAAI,UAAU,EAAE;YACZ,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SACrC;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,GAAqB,EAAE,GAAwB,EAAE,EAAE,GAAG,EAAE;QAChF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,GAAW;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACnB,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACpB;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA;aACvC;SACJ;IACL,CAAC;CA6BJ;AA1FD,4BA0FC"}
1
+ {"version":3,"file":"AStorage.js","sourceRoot":"","sources":["../src/AStorage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haibun/domain-storage",
3
- "version": "1.8.3",
3
+ "version": "1.8.4",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "main": "build/domain-storage.js",