@calcit/procs 0.8.46 → 0.8.47

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.
@@ -92,7 +92,8 @@ export let load_console_formatter_$x_ = () => {
92
92
  if (obj instanceof CalcitList || obj instanceof CalcitSliceList) {
93
93
  let preview = "";
94
94
  let hasCollection = false;
95
- for (let idx = 0; idx < obj.len(); idx++) {
95
+ let size = obj.len();
96
+ for (let idx = 0; idx < size; idx++) {
96
97
  preview += " ";
97
98
  if (isLiteral(obj.get(idx))) {
98
99
  preview += saveString(obj.get(idx));
package/lib/js-cirru.mjs CHANGED
@@ -68,10 +68,10 @@ export let to_cirru_edn = (x) => {
68
68
  return `|${x}`;
69
69
  }
70
70
  if (typeof x === "number") {
71
- return x.toString();
71
+ return `${x}`;
72
72
  }
73
73
  if (typeof x === "boolean") {
74
- return x.toString();
74
+ return `${x}`;
75
75
  }
76
76
  if (x instanceof CalcitTag) {
77
77
  return x.toString();
@@ -80,8 +80,12 @@ export let to_cirru_edn = (x) => {
80
80
  return x.toString();
81
81
  }
82
82
  if (x instanceof CalcitList || x instanceof CalcitSliceList) {
83
- // TODO can be faster
84
- return ["[]"].concat(x.toArray().map(to_cirru_edn));
83
+ let ret = ["[]"];
84
+ let arr = x.toArray();
85
+ for (let idx = 0; idx < arr.length; idx++) {
86
+ ret.push(to_cirru_edn(arr[idx]));
87
+ }
88
+ return ret;
85
89
  }
86
90
  if (x instanceof CalcitCirruQuote) {
87
91
  return ["quote", x.value];
@@ -126,24 +130,14 @@ export let to_cirru_edn = (x) => {
126
130
  return buffer;
127
131
  }
128
132
  if (x instanceof CalcitRecord) {
129
- let buffer = ["%{}", x.name.toString()];
133
+ let buffer = [];
130
134
  for (let idx = 0; idx < x.fields.length; idx++) {
131
135
  buffer.push([x.fields[idx].toString(), to_cirru_edn(x.values[idx])]);
132
136
  }
133
137
  // placed literals first
134
- buffer.sort((a, b) => {
135
- let a1_literal = isLiteral(a[1]);
136
- let b1_literal = isLiteral(b[1]);
137
- if (a1_literal && !b1_literal) {
138
- return -1;
139
- }
140
- else if (!a1_literal && b1_literal) {
141
- return 1;
142
- }
143
- else {
144
- return _$n_compare(a[0], b[0]);
145
- }
146
- });
138
+ buffer.sort(recordFieldOrder);
139
+ buffer.unshift(x.name.toString());
140
+ buffer.unshift("%{}");
147
141
  return buffer;
148
142
  }
149
143
  if (x instanceof CalcitSet) {
@@ -176,6 +170,19 @@ export let to_cirru_edn = (x) => {
176
170
  console.error(x);
177
171
  throw new Error("Unexpected data to to-cirru-edn");
178
172
  };
173
+ let recordFieldOrder = (a, b) => {
174
+ let a1_literal = isLiteral(a[1]);
175
+ let b1_literal = isLiteral(b[1]);
176
+ if (a1_literal && !b1_literal) {
177
+ return -1;
178
+ }
179
+ else if (!a1_literal && b1_literal) {
180
+ return 1;
181
+ }
182
+ else {
183
+ return _$n_compare(a[0], b[0]);
184
+ }
185
+ };
179
186
  /** makes sure we got string */
180
187
  let extractFieldTag = (x) => {
181
188
  if (x[0] === ":") {
package/lib/js-list.mjs CHANGED
@@ -92,7 +92,8 @@ export class CalcitList {
92
92
  return new CalcitList(ternaryTree.reverse(this.value));
93
93
  }
94
94
  nestedDataInChildren() {
95
- for (let idx = 0; idx < this.len(); idx++) {
95
+ let size = this.len();
96
+ for (let idx = 0; idx < size; idx++) {
96
97
  if (!isLiteral(this.get(idx))) {
97
98
  return true;
98
99
  }
@@ -247,7 +248,8 @@ export class CalcitSliceList {
247
248
  return this.turnListMode().reverse();
248
249
  }
249
250
  nestedDataInChildren() {
250
- for (let idx = 0; idx < this.len(); idx++) {
251
+ let size = this.len();
252
+ for (let idx = 0; idx < size; idx++) {
251
253
  if (!isLiteral(this.get(idx))) {
252
254
  return true;
253
255
  }
@@ -275,7 +277,8 @@ export let foldl = function (xs, acc, f) {
275
277
  }
276
278
  if (xs instanceof CalcitSliceList || xs instanceof CalcitList) {
277
279
  var result = acc;
278
- for (let idx = 0; idx < xs.len(); idx++) {
280
+ let size = xs.len();
281
+ for (let idx = 0; idx < size; idx++) {
279
282
  let item = xs.get(idx);
280
283
  result = f(result, item);
281
284
  }
@@ -316,7 +319,8 @@ export let foldl_shortcut = function (xs, acc, v0, f) {
316
319
  }
317
320
  if (xs instanceof CalcitList || xs instanceof CalcitSliceList) {
318
321
  var state = acc;
319
- for (let idx = 0; idx < xs.len(); idx++) {
322
+ let size = xs.len();
323
+ for (let idx = 0; idx < size; idx++) {
320
324
  let item = xs.get(idx);
321
325
  let pair = f(state, item);
322
326
  if (pair instanceof CalcitTuple) {
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.8.46",
3
+ "version": "0.8.47",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^20.11.28",
@@ -23,6 +23,6 @@
23
23
  "dependencies": {
24
24
  "@calcit/ternary-tree": "0.0.23",
25
25
  "@cirru/parser.ts": "^0.0.6",
26
- "@cirru/writer.ts": "^0.1.4"
26
+ "@cirru/writer.ts": "^0.1.5"
27
27
  }
28
28
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.8.46",
3
+ "version": "0.8.47",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^20.11.28",
@@ -23,6 +23,6 @@
23
23
  "dependencies": {
24
24
  "@calcit/ternary-tree": "0.0.23",
25
25
  "@cirru/parser.ts": "^0.0.6",
26
- "@cirru/writer.ts": "^0.1.4"
26
+ "@cirru/writer.ts": "^0.1.5"
27
27
  }
28
28
  }
@@ -106,7 +106,8 @@ export let load_console_formatter_$x_ = () => {
106
106
  if (obj instanceof CalcitList || obj instanceof CalcitSliceList) {
107
107
  let preview = "";
108
108
  let hasCollection = false;
109
- for (let idx = 0; idx < obj.len(); idx++) {
109
+ let size = obj.len();
110
+ for (let idx = 0; idx < size; idx++) {
110
111
  preview += " ";
111
112
  if (isLiteral(obj.get(idx))) {
112
113
  preview += saveString(obj.get(idx));
@@ -73,10 +73,10 @@ export let to_cirru_edn = (x: CalcitValue): CirruEdnFormat => {
73
73
  return `|${x}`;
74
74
  }
75
75
  if (typeof x === "number") {
76
- return x.toString();
76
+ return `${x}`;
77
77
  }
78
78
  if (typeof x === "boolean") {
79
- return x.toString();
79
+ return `${x}`;
80
80
  }
81
81
  if (x instanceof CalcitTag) {
82
82
  return x.toString();
@@ -85,8 +85,12 @@ export let to_cirru_edn = (x: CalcitValue): CirruEdnFormat => {
85
85
  return x.toString();
86
86
  }
87
87
  if (x instanceof CalcitList || x instanceof CalcitSliceList) {
88
- // TODO can be faster
89
- return (["[]"] as CirruEdnFormat[]).concat(x.toArray().map(to_cirru_edn));
88
+ let ret: CirruEdnFormat[] = ["[]"];
89
+ let arr = x.toArray();
90
+ for (let idx = 0; idx < arr.length; idx++) {
91
+ ret.push(to_cirru_edn(arr[idx]));
92
+ }
93
+ return ret;
90
94
  }
91
95
  if (x instanceof CalcitCirruQuote) {
92
96
  return ["quote", x.value];
@@ -126,22 +130,14 @@ export let to_cirru_edn = (x: CalcitValue): CirruEdnFormat => {
126
130
  return buffer;
127
131
  }
128
132
  if (x instanceof CalcitRecord) {
129
- let buffer: [string, CirruEdnFormat] = ["%{}", x.name.toString()];
133
+ let buffer: [string, CirruEdnFormat][] = [];
130
134
  for (let idx = 0; idx < x.fields.length; idx++) {
131
135
  buffer.push([x.fields[idx].toString(), to_cirru_edn(x.values[idx])]);
132
136
  }
133
137
  // placed literals first
134
- buffer.sort((a, b) => {
135
- let a1_literal = isLiteral(a[1] as CalcitValue);
136
- let b1_literal = isLiteral(b[1] as CalcitValue);
137
- if (a1_literal && !b1_literal) {
138
- return -1;
139
- } else if (!a1_literal && b1_literal) {
140
- return 1;
141
- } else {
142
- return _$n_compare(a[0] as CalcitValue, b[0] as CalcitValue);
143
- }
144
- });
138
+ buffer.sort(recordFieldOrder);
139
+ (buffer as any[]).unshift(x.name.toString());
140
+ (buffer as any[]).unshift("%{}");
145
141
  return buffer;
146
142
  }
147
143
  if (x instanceof CalcitSet) {
@@ -172,6 +168,18 @@ export let to_cirru_edn = (x: CalcitValue): CirruEdnFormat => {
172
168
  throw new Error("Unexpected data to to-cirru-edn");
173
169
  };
174
170
 
171
+ let recordFieldOrder = (a: [string, CirruEdnFormat], b: [string, CirruEdnFormat]) => {
172
+ let a1_literal = isLiteral(a[1] as CalcitValue);
173
+ let b1_literal = isLiteral(b[1] as CalcitValue);
174
+ if (a1_literal && !b1_literal) {
175
+ return -1;
176
+ } else if (!a1_literal && b1_literal) {
177
+ return 1;
178
+ } else {
179
+ return _$n_compare(a[0] as CalcitValue, b[0] as CalcitValue);
180
+ }
181
+ };
182
+
175
183
  /** makes sure we got string */
176
184
  let extractFieldTag = (x: string) => {
177
185
  if (x[0] === ":") {
@@ -107,7 +107,8 @@ export class CalcitList {
107
107
  return new CalcitList(ternaryTree.reverse(this.value));
108
108
  }
109
109
  nestedDataInChildren(): boolean {
110
- for (let idx = 0; idx < this.len(); idx++) {
110
+ let size = this.len();
111
+ for (let idx = 0; idx < size; idx++) {
111
112
  if (!isLiteral(this.get(idx))) {
112
113
  return true;
113
114
  }
@@ -262,7 +263,8 @@ export class CalcitSliceList {
262
263
  return this.turnListMode().reverse();
263
264
  }
264
265
  nestedDataInChildren(): boolean {
265
- for (let idx = 0; idx < this.len(); idx++) {
266
+ let size = this.len();
267
+ for (let idx = 0; idx < size; idx++) {
266
268
  if (!isLiteral(this.get(idx))) {
267
269
  return true;
268
270
  }
@@ -292,7 +294,8 @@ export let foldl = function (xs: CalcitValue, acc: CalcitValue, f: CalcitFn): Ca
292
294
  }
293
295
  if (xs instanceof CalcitSliceList || xs instanceof CalcitList) {
294
296
  var result = acc;
295
- for (let idx = 0; idx < xs.len(); idx++) {
297
+ let size = xs.len();
298
+ for (let idx = 0; idx < size; idx++) {
296
299
  let item = xs.get(idx);
297
300
  result = f(result, item);
298
301
  }
@@ -335,7 +338,8 @@ export let foldl_shortcut = function (xs: CalcitValue, acc: CalcitValue, v0: Cal
335
338
  }
336
339
  if (xs instanceof CalcitList || xs instanceof CalcitSliceList) {
337
340
  var state = acc;
338
- for (let idx = 0; idx < xs.len(); idx++) {
341
+ let size = xs.len();
342
+ for (let idx = 0; idx < size; idx++) {
339
343
  let item = xs.get(idx);
340
344
  let pair = f(state, item);
341
345
  if (pair instanceof CalcitTuple) {